สารบัญ:

การสื่อสาร Arduino LoRa อย่างง่าย (มากกว่า 5 กม.): 9 ขั้นตอน
การสื่อสาร Arduino LoRa อย่างง่าย (มากกว่า 5 กม.): 9 ขั้นตอน

วีดีโอ: การสื่อสาร Arduino LoRa อย่างง่าย (มากกว่า 5 กม.): 9 ขั้นตอน

วีดีโอ: การสื่อสาร Arduino LoRa อย่างง่าย (มากกว่า 5 กม.): 9 ขั้นตอน
วีดีโอ: LORA INTRO เทคโนโลยีสื่อสารทางไกลใช้พลังงานต่ำ LoRa 2024, กรกฎาคม
Anonim
การสื่อสาร Arduino LoRa อย่างง่าย (มากกว่า 5km)
การสื่อสาร Arduino LoRa อย่างง่าย (มากกว่า 5km)

เราจะทดสอบ E32-TTL-100 กับห้องสมุดของฉัน เป็นโมดูลตัวรับส่งสัญญาณไร้สาย ทำงานที่ 410 441 MHz (หรือ 868MHz หรือ 915MHz) ตาม RFIC SX1278 ดั้งเดิมจาก SEMTECH มีการส่งแบบโปร่งใส ระดับ TTL โมดูลนี้ใช้เทคโนโลยีการแพร่กระจายคลื่นความถี่ LORA

เสบียง

  • Arduino UNO
  • อุปกรณ์ LoRa e32

ไม่จำเป็น

  • Mischianti Arduino LoRa shield (โอเพ่นซอร์ส)
  • โล่ Mischianti WeMos LoRa (โอเพ่นซอร์ส)

ขั้นตอนที่ 1: ข้อกำหนดอุปกรณ์

โมดูลนี้มีอัลกอริธึมการแก้ไขข้อผิดพลาดไปข้างหน้าของ FEC ซึ่งรับประกันประสิทธิภาพการเข้ารหัสสูงและประสิทธิภาพการแก้ไขที่ดี ในกรณีที่เกิดการรบกวนอย่างกะทันหัน มันสามารถแก้ไขแพ็กเก็ตข้อมูลที่รบกวนโดยอัตโนมัติ เพื่อให้ความน่าเชื่อถือและช่วงการส่งข้อมูลดีขึ้นตามลำดับ แต่ถ้าไม่มี FEC แพ็กเก็ต da te เหล่านั้นสามารถทิ้งได้เท่านั้น และด้วยการเข้ารหัสและถอดรหัสที่เข้มงวด การสกัดกั้นข้อมูลจึงไม่มีประโยชน์ การทำงานของการบีบอัดข้อมูลสามารถลดเวลาการส่งและความน่าจะเป็นของการถูกรบกวน ในขณะเดียวกันก็ปรับปรุงความน่าเชื่อถือและประสิทธิภาพในการรับส่งข้อมูล

  • ขนาดโมดูล: 21*36mm
  • ประเภทเสาอากาศ: SMA-K (อิมพีแดนซ์ 50Ω)
  • ระยะการส่ง: 3000m (สูงสุด)
  • กำลังไฟสูงสุด: 2dB (100mW)
  • อัตราค่าบริการอากาศ: 2.4Kbps (สามารถเลือกได้ 6 ระดับ (0.3, 1.2, 2.4, 4.8, 9.6, 19.2kbps)
  • ความยาวการปล่อย: 512ByteReceive
  • ความยาว: 512Byte
  • อินเทอร์เฟซการสื่อสาร: UART – 8N1, 8E1, 8O1,
  • UART baud Rate แปดชนิดจาก 1200 ถึง 115200bps (ค่าเริ่มต้น: 9600)
  • รองรับ RSSI: ไม่ (การประมวลผลอัจฉริยะในตัว)

ขั้นตอนที่ 2: ประเภทการส่ง

ประเภทเกียร์
ประเภทเกียร์

การส่งแบบโปร่งใสนี่ถือได้ว่าเป็น "โหมดสาธิต" โดยค่าเริ่มต้น คุณสามารถส่งข้อความไปยังอุปกรณ์ทั้งหมดที่มีที่อยู่และช่องที่กำหนดค่าเดียวกันได้

เกียร์ธรรมดา

การส่งประเภทนี้ คุณสามารถระบุที่อยู่และช่องทางที่คุณต้องการส่งข้อความ คุณสามารถส่งข้อความไปที่:

  • อุปกรณ์ที่ระบุด้วย Address Low, Address High และ Channel ที่กำหนดไว้ล่วงหน้า
  • บรอดคาสต์ข้อความไปยังชุดอุปกรณ์ช่องสัญญาณ โหมดปกติ เพียงส่งข้อความ

ขั้นตอนที่ 3: โหมดอุปกรณ์

โหมดปกติเพียงส่งข้อความ

โหมดปลุกและโหมดประหยัดพลังงาน

ตามที่คุณตั้งใจได้หากอุปกรณ์อยู่ในโหมด Wake-up สามารถ "ปลุก" อุปกรณ์หนึ่งเครื่องขึ้นไปที่อยู่ในโหมดประหยัดพลังงานด้วยการสื่อสารแบบนำหน้า

โปรแกรม/โหมดสลีป

ด้วยการกำหนดค่านี้ คุณสามารถเปลี่ยนการกำหนดค่าอุปกรณ์ของคุณได้

ขั้นตอนที่ 4: อุปกรณ์เดินสาย

อุปกรณ์เดินสายไฟ
อุปกรณ์เดินสายไฟ
อุปกรณ์เดินสายไฟ
อุปกรณ์เดินสายไฟ

นี่คือสคีมาของการเชื่อมต่อของอุปกรณ์ นี่คือการเชื่อมต่ออย่างสมบูรณ์ ด้วยการจัดการพิน M0 และ M1 อนุญาตให้เปลี่ยนกิริยาของอุปกรณ์ ดังนั้นคุณสามารถสลับไปยังการกำหนดค่าหรือโหมดปลุกด้วยโปรแกรม ไลบรารีช่วยคุณได้ทั้งหมด การดำเนินการ.

ขั้นตอนที่ 5: การกำหนดค่า

การกำหนดค่า
การกำหนดค่า

มีคำสั่งที่ระบุเพื่อตั้งค่าและรับการกำหนดค่า

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); ล่าช้า (500); // เริ่มต้นพินทั้งหมดและ UART e32ttl100.begin(); ResponseStructContainer ค; c = e32ttl100.getConfiguration(); // สิ่งสำคัญคือต้องได้รับตัวชี้การกำหนดค่าก่อนการดำเนินการอื่นๆ การกำหนดค่าการกำหนดค่า = *(การกำหนดค่า*) c.data; Serial.println(c.status.getResponseDescription()); Serial.println (c.status.code); printParameters (การกำหนดค่า); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation (); // การรับตัวชี้ข้อมูลเป็นสิ่งสำคัญก่อนการดำเนินการอื่น ๆ ทั้งหมด ModuleInformation mi = *(ModuleInformation*)cMi.data; Serial.println(cMi.status.getResponseDescription()); Serial.println (cMi.status.code); printModuleInformation(ไมล์); }

ขั้นตอนที่ 6: ผลการกำหนดค่า

และผลลัพธ์ก็กลายเป็น

Begin Success 1 ---------------------------------------- HEAD BIN: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (ค่าเริ่มต้น) SpeedUARTDataRate BIN: 11 -> 9600bps (ค่าเริ่มต้น) SpeedAirDataRate BIN: 10 -> 2.4kbps (ค่าเริ่มต้น) OptionTrans BIN: 0 - > การส่งแบบโปร่งใส (ค่าเริ่มต้น) OptionPullup BIN: 1 -> TXD, RXD, AUX เป็น push-pulls/pull-ups OptionWakeup BIN: 0 -> 250ms (ค่าเริ่มต้น) OptionFEC BIN: 1 -> เปิดสวิตช์แก้ไขข้อผิดพลาดไปข้างหน้า (ค่าเริ่มต้น) OptionPower BIN: 0 -> 20dBm (ค่าเริ่มต้น) ---------------------------------------- สำเร็จ 1 ---------------------------------------- HEAD BIN: 11000011 195 C3 Model no.: 32 เวอร์ชัน: 44 คุณสมบัติ: 14 ----------------------------------------

ขั้นตอนที่ 7: ส่งข้อความ

ส่งข้อความ
ส่งข้อความ

นี่คือภาพร่างง่ายๆ ในการส่งข้อความไปยังทุกอุปกรณ์ที่เชื่อมต่อกับช่อง

วงเป็นโมฆะ () (// หากมีบางสิ่งที่สามารถใช้ได้หาก (e32ttl100.available ()>1) { // อ่านข้อความสตริง ResponseContainer rc = e32ttl100.receiveMessage (); // เกิดข้อผิดพลาดในการพิมพ์หรือไม่ ถ้า (rc.status.code!=1) { rc.status.getResponseDescription(); }อื่น{ // พิมพ์ข้อมูลที่ได้รับ Serial.println(rc.data); } } if (Serial.available ()) { อินพุตสตริง = Serial.readString (); e32ttl100.sendMessage (อินพุต); } }

ขั้นตอนที่ 8: โล่สำหรับ Arduino

ชิลด์สำหรับ Arduino
ชิลด์สำหรับ Arduino

ฉันสร้างเกราะป้องกันสำหรับ Arduino ที่มีประโยชน์มากสำหรับการสร้างต้นแบบ

และฉันปล่อยมันเป็นโครงการโอเพ่นซอร์สที่นี่

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

ขั้นตอนที่ 9: ห้องสมุด

ห้องสมุด
ห้องสมุด

ที่เก็บ GitHub

ฟอรั่มสนับสนุน

เอกสารเพิ่มเติม

แนะนำ: