Lorapromini - Node Lorawan Daya Rendah
Node sensor Lorawan, berdasarkan ATmega328p MCU (Arduino Pro Mini) dan RFM95W/SX1276 Lora Transceiver.

Modul dapat digunakan:
- Kumpulkan berbagai nilai iklim dengan sensor lingkungan. Lihat sensor lingkungan (cuaca/klima)
- Beri tahu apakah operator surat telah memasukkan surat baru di kotak surat Anda. Lihat monitor kotak surat
- Beri tahu jika seseorang membunyikan bel pintu
- Bertindak
- Dan banyak lagi ...
Fitur
- MCU tidur nyenyak dan sensor antara transmisi data
- Dua input interupsi dapat digunakan untuk membangunkan MCU dan sensor dari tidur nyenyak
- Konfirmasi Pesan Data UP yang tidak terkonfirmasi
- Konsumsi Daya Ultra Rendah. Di bawah 10μA dengan semua fitur dan sensor
- Input Daya 3.5-6V:
- Baterai (Li-ion atau Li-Socl2 berfungsi dengan baik)
- Baterai dengan pengisi daya matahari
- Dukungan Sensor
- Bosch BME280 (kelembaban, tekanan barometrik dan suhu sekitar)
- Maxim DS18B20 (+)/DS18S20 (+)/DS1822 Sensor Suhu 1-Kawat
Peringatan
Lorapromini tidak menjaga kepatuhan dengan batasan siklus tugas. Pilih hanya interval transmisi yang berada dalam batas hukum (1%/0,1%). Harap perhatikan juga bahwa input interupsi dapat menyebabkan transmisi tambahan jika fungsi ini diaktifkan.
Pemesanan PCB
☝️ Saya masih memiliki beberapa PCB yang tersisa. Jika Anda tertarik, silakan hubungi saya. Detail kontak dapat ditemukan di sini: https://github.com/foorschtbar atau kunjungi toko Tindie saya:
Contoh aplikasi
Sensor lingkungan (cuaca/klima)
- Unduh Radiation Shield STL
- Beli lampu matahari LED tahan air

Monitor kotak surat
- Unduh Case STL
- Beli sakelar buluh yang biasanya dibuka



Lebih banyak foto


Konfigurasi tumpukan hal -hal
Cara menggunakan
- Memproduksi PCB. Di sini Anda menemukan file Gerber
- Rakit PCB. Di sini Anda menemukan Bill of Material (BOM)
- Perhatian: Versi saat ini (v3.1) dari PCB tidak memiliki header ISP! ATmega328p yang telah dibakar harus dipasang. Saya mendapat satu dari papan mini Arduino Pro (3.3V 8 MHz), karena Arduino yang sepenuhnya dirakit lebih murah daripada satu chip tunggal
- Flash Config Firmware (lihat Cara Flash)
- Mulai kalibrasi tegangan dari menu
- Mulai Konfigurasi Pembangun Konfigurasi Pembangun
- Ukur tegangan dengan multimeter
- Masukkan tegangan multimeter dan nilai analog dalam kalkulator volts-per-bit (VPB) untuk mendapatkan faktor VPB.
- Jika Anda memiliki catu daya yang dapat disesuaikan, cobalah voltase yang berbeda untuk menemukan faktor terbaik. Peringatan: Tegangan maksimum adalah 6 volt
- Isi bidang lain seperti metode aktivasi, kunci sesi dan EUI
- Tulis Konfigurasi ke Eeprom Menggunakan Menu Konfigurasi
- Periksa konfigurasi tertulis melalui menu konfigurasi
- Flash debug atau rilis firmware (lihat cara flash)
- Menyelesaikan
Cara berkedip
avrdude-F -v -c arduino -p atmega328p -P <COM PORT> -b 57600 -D -U flash:w:<FIRMWARE FILE>:i
Contoh:
avrdude -F -v -c arduino -p atmega328p -P COM4 -b 57600 -D -U flash:w:firmware_1.0_config.hex:i
Firmware Changelog
Versi 2.7
- Memperbaiki masalah mengatur ulang pemicu interupsi terlalu dini.
Versi 2.6
- Upaya kedua untuk menyelesaikan penundaan yang tidak perlu karena batasan siklus tugas. Limpahan Timer0 membekukan MCU setelah sekitar 20 transmisi.
Versi 2.5
- Memperbaiki masalah dengan batasan siklus tugas
- Memperbaiki MCU Deepleep Inaccuracy
Versi 2.4
- Interupsi eksternal selama transmisi mengakhiri transmisi dan memulai transmisi baru.
- Mode Pemeriksaan Tautan Diaktifkan
Versi 2.3
- Memperbaiki kesalahan ketik
Versi 2.2
- Penundaan kirim tambahan antara 0 dan 20 -an telah ditambahkan untuk menghindari tumpang tindih antara node yang berbeda dengan interval pengiriman yang sama persis
- Beberapa optimasi memori flash
Versi 2.1
- Peningkatan (debug) logging ke output serial
- BME mengirim -127 ° C (tautan DS18X) Jika tidak ada sensor yang ditemukan
Versi 2.0
- Menambahkan pin bangun trough interrupt
- Opsi tambahan untuk menonaktifkan pin interupsi
- Opsi tambahan untuk uplink yang dikonfirmasi
- Mengubah Pesan Data Lorawan Up
- Menambahkan status pin interupsi
- Gabungan byte versi utama dan minor menjadi satu byte tunggal (4 bit untuk mayor dan 4 bit untuk minor)
Versi 1.1
- Hanya untuk pengujian pipa CI
Versi 1.0
PCB Changelog
Versi 3.2
- Memperbaiki C7 (diganti 10UF dengan 100NF)
Versi 3.1
- Menambahkan bidang putih untuk menentukan id node
Versi 3.0
- Dihapus arduino pro mini dauther pcb
- Menambahkan ATmega328p Langsung ke PCB
- Menambahkan pin untuk GPIO yang tidak digunakan
- Menambahkan D2 dan D3 dengan pulldown dan konektor sebagai interupsi eksternal (perlu FW v2.0 atau lebih tinggi)
Versi 2.2
- Menambahkan pin pertama ke konektor untuk pemrograman
Versi 2.1
- Menambahkan konektor untuk pemrograman
Versi 2.0
- PCB yang lebih kecil
- Tepi bulat
- Memperbaiki masalah dengan pemetaan pin onboard DS18X
Versi 1.0
Formatter payload TTS (sebelumnya TTN Payload Decoder)
function decodeUplink ( input ) {
var bytes = input . bytes ;
var itrTrigger = ( bytes [ 0 ] & 0x1 ) !== 0 ; // Message was triggered from interrupt (bit 0)
var itr0 = ( bytes [ 0 ] & 0x2 ) !== 0 ; // Interrupt 0 (bit 1)
var itr1 = ( bytes [ 0 ] & 0x4 ) !== 0 ; // Interrupt 1 (bit 2)
var bat = ( bytes [ 1 ] << 8 ) | bytes [ 2 ] ; // Battery
var fwversion = ( bytes [ 3 ] >> 4 ) + "." + ( bytes [ 3 ] & 0xf ) ; // Firmware version
var temp1 = ( bytes [ 4 ] & 0x80 ? 0xffff << 16 : 0 ) | ( bytes [ 4 ] << 8 ) | bytes [ 5 ] ; // BME Temperature
var humi1 = ( bytes [ 6 ] << 8 ) | bytes [ 7 ] ; // BME Humidity
var press1 = ( bytes [ 8 ] << 8 ) | bytes [ 9 ] ; // BME Pressure
var temp2 =
( bytes [ 10 ] & 0x80 ? 0xffff << 16 : 0 ) | ( bytes [ 10 ] << 8 ) | bytes [ 11 ] ; // DS18x Temperature
var mbStatus = "UNKNOWN" ;
if ( itr0 ) {
mbStatus = "FULL" ;
} else if ( itr1 ) {
mbStatus = "EMPTY" ;
}
return {
data : {
interrupts : {
itr0 : itr0 ,
itr1 : itr1 ,
itrTrigger : itrTrigger ,
} ,
extra : {
mbStatus : mbStatus ,
mbChanged : itrTrigger ,
} ,
fwversion : fwversion ,
bme : {
temperature : temp1 / 100 ,
humidity : humi1 / 100 ,
pressure : press1 ,
} ,
ds18x : {
temperature : temp2 / 100 ,
} ,
battery : bat / 100 ,
} ,
warnings : [ ] ,
errors : [ ] ,
} ;
} Todo