Lorapromini - โหนด Lorawan พลังงานต่ำ
โหนดเซ็นเซอร์ Lorawan ซึ่งขึ้นอยู่กับ ATMEGA328P MCU (Arduino Pro Mini) และ RFM95W/SX1276 LORA Transceiver

สามารถใช้โมดูลได้:
- รวบรวมค่าภูมิอากาศที่หลากหลายด้วยเซ็นเซอร์สิ่งแวดล้อม ดูเซ็นเซอร์สิ่งแวดล้อม (สภาพอากาศ/clima)
- บอกว่าผู้ให้บริการจดหมายได้ใส่ตัวอักษรใหม่ในกล่องจดหมายของคุณหรือไม่ ดู Mailbox Monitor
- แจ้งว่ามีคนดังกริ่งประตู
- ทำตามปุ่มที่ไร้สาย
- และอีกมากมาย ...
คุณสมบัติ
- Deep Sleep MCU และเซ็นเซอร์ระหว่างการส่งข้อมูล
- อินพุตอินเตอร์รัปต์สองตัวสามารถใช้เพื่อปลุก MCU และเซ็นเซอร์จากการนอนหลับลึก
- ยืนยันข้อความ unconfarmend up ข้อความ
- การใช้พลังงานต่ำเป็นพิเศษ ต่ำกว่า10μAพร้อมคุณสมบัติและเซ็นเซอร์ทั้งหมด
- อินพุตพลังงาน 3.5-6V:
- แบตเตอรี่ (li-ion หรือ li-socl2 ทำงานได้ดี)
- แบตเตอรี่พร้อมเครื่องชาร์จพลังงานแสงอาทิตย์
- การสนับสนุนเซ็นเซอร์
- BOSCH BME280 (ความชื้นความดันบารอมิเตอร์และอุณหภูมิแวดล้อม)
- Maxim DS18B20 (+)/DS18S20 (+)/DS1822 เซ็นเซอร์อุณหภูมิ 1 สาย
คำเตือน
Lorapromini ไม่ได้ดูแลการปฏิบัติตามข้อ จำกัด รอบการทำงาน โปรดเลือกเฉพาะช่วงการส่งที่อยู่ในขอบเขตทางกฎหมาย (1%/0.1%) โปรดทราบว่าอินพุตขัดจังหวะอาจทำให้เกิดการส่งสัญญาณเพิ่มเติมหากเปิดใช้งานฟังก์ชั่นนี้
การสั่งซื้อ PCB
☝ฉันยังเหลือ PCBs อีกไม่กี่ตัว หากคุณสนใจโปรดติดต่อฉัน รายละเอียดการติดต่อสามารถดูได้ที่นี่: https://github.com/foorschtbar หรือเยี่ยมชมร้าน Tindie ของฉัน:
ตัวอย่างแอปพลิเคชัน
เซ็นเซอร์สิ่งแวดล้อม (สภาพอากาศ/clima)
- ดาวน์โหลด Radiation Shield STL
- ซื้อแสงอาทิตย์ LED กันน้ำกันน้ำ

มอนิเตอร์กล่องจดหมาย
- ดาวน์โหลดเคส STL
- ซื้อสวิตช์กกที่เปิดตามปกติ



ภาพเพิ่มเติม


การกำหนดค่าสแต็ก
- Lorawan เวอร์ชัน
MAC V1.0.3
วิธีใช้
- ผลิต PCB ที่นี่คุณพบไฟล์ gerber
- ประกอบ PCB ที่นี่คุณพบใบเรียกเก็บเงิน (BOM)
- ความสนใจ: เวอร์ชันปัจจุบัน (v3.1) ของ PCB ไม่มีส่วนหัว ISP! ต้องติดตั้ง ATMEGA328P ที่ถูกเผาล่วงหน้า ฉันได้รับหนึ่งจากบอร์ด Arduino Pro Mini (3.3V 8 MHz) เพราะ Arduino ที่ประกอบอย่างสมบูรณ์นั้นถูกกว่าชิปเดียว
- Flash Config Firmware (ดูวิธีการแฟลช)
- เริ่มการสอบเทียบแรงดันไฟฟ้าจากเมนู
- เริ่มสร้างตัวสร้างการกำหนดค่าตัวสร้างการกำหนดค่า
- วัดแรงดันไฟฟ้าด้วยมัลติมิเตอร์
- แทรกแรงดันไฟฟ้ามัลติมิเตอร์และค่าอะนาล็อกในเครื่องคิดเลข Volts-per-bit (VPB) เพื่อรับปัจจัย VPB
- หากคุณมีแหล่งจ่ายไฟที่ปรับได้ให้ลองแรงดันไฟฟ้าที่แตกต่างกันเพื่อค้นหาปัจจัยที่ดีที่สุด คำเตือน: แรงดันไฟฟ้าสูงสุดคือ 6 โวลต์
- เติมฟิลด์อื่น ๆ เช่นการเปิดใช้งาน methode, คีย์เซสชันและ EUIS
- เขียนการกำหนดค่าเป็น EEPROM โดยใช้เมนูการกำหนดค่า
- ตรวจสอบการกำหนดค่าเป็นลายลักษณ์อักษรผ่านเมนูการกำหนดค่า
- แฟลชดีบั๊กหรือเฟิร์มแวร์ปล่อย (ดูวิธีการแฟลช)
- เสร็จ
วิธีแฟลช
avrdude-F -v -c arduino -p atmega328p -P <COM PORT> -b 57600 -D -U flash:w:<FIRMWARE FILE>:i
ตัวอย่าง:
avrdude -F -v -c arduino -p atmega328p -P COM4 -b 57600 -D -U flash:w:firmware_1.0_config.hex:i
การเปลี่ยนแปลงเฟิร์มแวร์
เวอร์ชัน 2.7
- แก้ไขปัญหาการรีเซ็ตทริกเกอร์ขัดจังหวะเร็วเกินไป
เวอร์ชัน 2.6
- ความพยายามครั้งที่สองในการแก้ปัญหาความล่าช้าที่ไม่จำเป็นเนื่องจากข้อ จำกัด รอบการทำงาน ล้นของตัวจับเวลา 0 แช่แข็ง MCU หลังจากส่งสัญญาณประมาณ 20 ครั้ง
เวอร์ชัน 2.5
- ปัญหาคงที่เกี่ยวกับข้อ จำกัด รอบการทำงาน
- แก้ไขความไม่ถูกต้องของ MCU Deepsleep
เวอร์ชัน 2.4
- การขัดจังหวะภายนอกในระหว่างการส่งสัญญาณจะสิ้นสุดการส่งและเริ่มการส่งสัญญาณใหม่
- โหมดตรวจสอบลิงค์เปิดใช้งาน
เวอร์ชัน 2.3
เวอร์ชัน 2.2
- มีการเพิ่มความล่าช้าในการส่งเพิ่มเติมระหว่าง 0 ถึง 20s เพื่อหลีกเลี่ยงการทับซ้อนระหว่างโหนดต่าง ๆ ที่มีช่วงเวลาการส่งเดียวกันทั้งหมด
- การเพิ่มประสิทธิภาพหน่วยความจำแฟลชบางอย่าง
เวอร์ชัน 2.1
- ปรับปรุง (ดีบัก) เข้าสู่ระบบเอาท์พุทอนุกรม
- BME ส่ง -127 ° C (ลิงก์ DS18X) หากไม่พบเซ็นเซอร์
เวอร์ชัน 2.0
- เพิ่มหมุดขัดจังหวะ Trough
- เพิ่มตัวเลือกสำหรับปิดการใช้งานพินอินเตอร์รัปต์
- เพิ่มตัวเลือกสำหรับอัปลิงค์ที่ได้รับการยืนยัน
- เปลี่ยนข้อความข้อมูล LORAWAN
- เพิ่มสถานะของหมุดขัดจังหวะ
- รวมรุ่นใหญ่และรุ่นรองไบต์เป็นไบต์เดียว (4 บิตสำหรับ Major และ 4 Bits สำหรับผู้เยาว์)
เวอร์ชัน 1.1
- สำหรับการทดสอบไปป์ไลน์ CI เท่านั้น
เวอร์ชัน 1.0
PCB Changelog
เวอร์ชัน 3.2
- แก้ไข C7 (แทนที่ 10UF ด้วย 100nf)
เวอร์ชัน 3.1
- เพิ่มฟิลด์สีขาวเพื่อระบุรหัสโหนด
เวอร์ชัน 3.0
- ลบ Arduino Pro Mini Dauther PCB
- เพิ่ม Atmega328p โดยตรงไปยัง PCB
- เพิ่มพินสำหรับ GPIO ที่ไม่ได้ใช้
- เพิ่ม D2 และ D3 ด้วย pulldowns และตัวเชื่อมต่อเป็นอินเตอร์รัปต์ภายนอก (ต้องการ FW v2.0 หรือสูงกว่า)
เวอร์ชัน 2.2
- เพิ่ม RST PIN ไปยังตัวเชื่อมต่อสำหรับการเขียนโปรแกรม
เวอร์ชัน 2.1
- เพิ่มขั้วต่อสำหรับการเขียนโปรแกรม
เวอร์ชัน 2.0
- PCB ที่เล็กกว่า
- ขอบโค้งมน
- แก้ไขปัญหาด้วยการแมปพินออนบอร์ด DS18X
เวอร์ชัน 1.0
TTS Payload Formatter (เดิมคือ 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 : [ ] ,
} ;
} สิ่งที่ต้องทำ