สารบัญ:

Lora Gateway ที่ใช้ MicroPython ESP32: 10 ขั้นตอน (พร้อมรูปภาพ)
Lora Gateway ที่ใช้ MicroPython ESP32: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Lora Gateway ที่ใช้ MicroPython ESP32: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Lora Gateway ที่ใช้ MicroPython ESP32: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: โปรเจค LoRa 433MHZ SX1278 + ESP32 วัดค่า pm 2.5 แบบไร้สาย 3 จุด ส่งค่าขึ้น Web Dashboard 2024, พฤศจิกายน
Anonim
Lora Gateway ที่ใช้ MicroPython ESP32
Lora Gateway ที่ใช้ MicroPython ESP32
Lora Gateway ที่ใช้ MicroPython ESP32
Lora Gateway ที่ใช้ MicroPython ESP32

ลอร่าได้รับความนิยมอย่างมากในช่วงไม่กี่ปีที่ผ่านมา โมดูลการสื่อสารไร้สายที่ใช้เทคโนโลยีนี้มักจะมีราคาถูก (โดยใช้คลื่นความถี่อิสระ) ขนาดเล็ก ประหยัดพลังงาน และมีระยะการสื่อสารที่ยาวนาน และส่วนใหญ่ใช้สำหรับการสื่อสารระหว่างเทอร์มินัล IoT หรือการแลกเปลี่ยนข้อมูลกับโฮสต์เป็นหลัก มีโมดูล LoRa มากมายในตลาด เช่น RFM96W ซึ่งติดตั้งชิป SX1278 (เข้ากันได้) ซึ่งมีขนาดเล็กมาก ฉันใช้กับ MakePython ESP32 เป็นเกตเวย์

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

ขั้นตอนที่ 1: วัสดุสิ้นเปลือง

เสบียง
เสบียง

1*MakePython ESP32

MakePython ESP32 เป็นบอร์ด ESP32 ที่มีจอแสดงผล OLED SSD1306 ในตัว

2 * วิทยุ Maduino LoRa

Maduino Lora Radio เป็นโซลูชัน IoT (Internet of Things) โดยอิงจาก Atmega328P MCU และโมดูล Lora ของ Atmel อาจเป็นโครงการจริงสำหรับโครงการ IoT (โดยเฉพาะแอปพลิเคชันระยะยาวและใช้พลังงานต่ำ)

2*DHT11

1*MakePython Lora

ขั้นตอนที่ 2: โหนด LoRa

โหนดโลร่า
โหนดโลร่า
โหนดโลร่า
โหนดโลร่า

นี่คือแผนผังของ Maduino Lora Radio

โมดูล Arduino Lora Radio เป็นโหนด LoRa เราใช้เพื่อส่งข้อมูลอุณหภูมิและความชื้นไปยังเกตเวย์

(WiKi นี้แนะนำวิธีใช้ Maduino Lora Radio และส่งและรับข้อมูล)

ขั้นตอนที่ 3: การเชื่อมต่อโหนดและเซ็นเซอร์

การเชื่อมต่อโหนดและเซ็นเซอร์
การเชื่อมต่อโหนดและเซ็นเซอร์
การเชื่อมต่อโหนดและเซ็นเซอร์
การเชื่อมต่อโหนดและเซ็นเซอร์

VCC และ GND ของ DHT11 เชื่อมต่อกับ 3V3 และ GND ของ Maduino และพิน DATA เชื่อมต่อกับ D4 ของ Maduino

โหนด 0 อยู่ในสวนสาธารณะ โหนด 1 อยู่ในอาคารสำนักงานใกล้กับบริษัท โดยอยู่ห่างกันประมาณ 2 กิโลเมตร จากนั้นฉันจะรับข้อมูลอุณหภูมิและความชื้นที่บ้าน

ขั้นตอนที่ 4: ส่งข้อมูลไปยังเกตเวย์

ดาวน์โหลด TransmitterDHT11.ino เปิดบน Arduino IDE

เมื่อเพิ่มโหนด ให้แก้ไขหมายเลขโหนดตามนั้น ตัวอย่างเช่น ตอนนี้ใช้ 2 โหนด โหนดแรกเพื่อแก้ไข nodenum = 0 เพื่อรันโปรแกรม โหนดที่สองเพื่อแก้ไข nodenum = 1 เพื่อรันโปรแกรม และอื่นๆ คุณสามารถเพิ่มโหนดเพิ่มเติมได้

int16_t packetnum = 0; // ตัวนับแพ็กเก็ต เราเพิ่มขึ้นต่อ xmission

int16_t nodenum = 0; //แก้ไขหมายเลขโหนด

รวบรวมข้อมูลและพิมพ์

ข้อความสตริง ="#"+(สตริง)nodenum+" ความชื้น:"+(สตริง)ความชื้น+"% อุณหภูมิ:"+(สตริง)อุณหภูมิ+"C"+" num:"+(สตริง)packetnum;Serial.println(ข้อความ); แพ็กเก็ตนัม++;

ส่งข้อความถึง rf95_server

uint8_t radioPacket[ข้อความ.ความยาว()+1];

message.toCharArray(radioPacket, message.length()+1); radioPacket[message.length()+1]= '\0'; rf95.send((uint8_t *)radioPacket, message.length()+1);

เปิดจอภาพอนุกรม คุณสามารถดูข้อมูลอุณหภูมิและความชื้นที่รวบรวมไว้ และส่งออกได้

#0 ความชื้น:6.00% อุณหภูมิ:27.00C num:0

ส่ง: กำลังส่งไปที่ rf95_server กำลังส่ง… รอให้แพ็คเก็ตเสร็จสิ้น… รอการตอบกลับ… ไม่มีการตอบกลับ มีผู้ฟังอยู่หรือไม่

เลิกกัน ตอนนี้เราต้องสร้าง Lora Gateway

ขั้นตอนที่ 5: MakePython Lora

MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora

นี่คือพินที่สอดคล้องกันของโมดูล RFM96W และ MakePython ESP32 เพื่อความสะดวกในการเชื่อมต่อกับ MakePython ESP32 ฉันจึงสร้างแผงวงจรด้วยโมดูล RFM96W ใช่ มี RFM96W อยู่สองตัว ซึ่งสามารถส่งและรับข้อมูลได้พร้อมกัน แต่ตอนนี้ฉันต้องการเพียงอันเดียว

ขั้นตอนที่ 6: เกตเวย์ LoRaWAN

LoRaWAN Gateway
LoRaWAN Gateway

LoRaWAN เป็นเครือข่ายบริเวณกว้างที่ใช้พลังงานต่ำซึ่งใช้ LoRa ซึ่งสามารถให้บริการอย่างใดอย่างหนึ่ง: ใช้พลังงานต่ำ ปรับขนาดได้ บริการคุณภาพสูง และเครือข่ายไร้สายระยะไกลที่ปลอดภัย

ประกอบ MakePython Lora และ ESP32 เพื่อสร้างเกตเวย์ที่สามารถรับข้อมูลระยะไกลและอัปโหลดไปยังอินเทอร์เน็ตได้

ขั้นตอนที่ 7: ดาวน์โหลดรหัส

ดาวน์โหลดไฟล์ 'xxx.py' ทั้งหมดจาก WiKi แล้วอัปโหลดไปยัง ESP32

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

แก้ไข API_KEY ที่คุณได้รับใน ThingSpeak (ฉันจะแนะนำวิธีรับในภายหลัง)

#https://thingspeak.com/channels/1047479

API_KEY='UBHIRHVV9THUJVUI'

แก้ไข SSID และ PSW เพื่อเชื่อมต่อ WiFi

ssid = "ผู้ผลิต"

pswd = "20160704"

ขั้นตอนที่ 8: รับข้อมูล

ค้นหาฟังก์ชัน on_receive (lora, payload) ในไฟล์ LoRaDuplexCallback.py ซึ่งคุณสามารถบอก ESP32 ว่าต้องทำอย่างไรหลังจากได้รับข้อมูล รหัสต่อไปนี้แยกวิเคราะห์และแสดงข้อมูลอุณหภูมิและความชื้นที่ได้รับ

def on_receive (ลอร่า, เพย์โหลด):

lora.blink_led() rssi = lora.packetRssi() ลอง: length=len(payload)-1 myStr=str((payload[4:length]), 'utf-8') length1=myStr.find(':') myNum1=myStr[(length1+1):(length1+6)] myNum2=myStr[(length1+20):(length1+25)] พิมพ์ ("*** ข้อความที่ได้รับ ***\n{}" format(payload)) if config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:length])), rssi) if wlan.isconnected(): global msgCount print('กำลังส่งไปยังเครือข่าย…') node = int(str(payload[5:6], 'utf-8')) ถ้าโหนด == 0: URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1= "+myNum1+"&field2="+myNum2 res=urequests.get(URL) พิมพ์ (res.text) โหนด elif == 1: URL="https://api.thingspeak.com/update?api_key="+API_KEY+" &field3="+myNum1+"&field4="+myNum2 res=urequests.get(URL) print(res.text) ยกเว้นข้อยกเว้นเช่น e: print(e) print("with RSSI {}\n".format(rssi))

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

ถ้าโหนด == 0:

URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1="+myNum1+"&field2="+myNum2 res=urequests.get(URL) พิมพ์ (res.text)

ขั้นตอนที่ 9: ใช้ ThingSpeak IoT

ใช้ ThingSpeak IoT
ใช้ ThingSpeak IoT
ใช้ ThingSpeak IoT
ใช้ ThingSpeak IoT
ใช้ ThingSpeak IoT
ใช้ ThingSpeak IoT

ขั้นตอน:

  1. ลงทะเบียนบัญชีใน https://thingspeak.com/ หากคุณมีอยู่แล้ว ให้ลงชื่อเข้าใช้โดยตรง
  2. คลิก ช่องใหม่ เพื่อสร้างช่อง ThingSpeak ใหม่
  3. ใส่ชื่อ คำอธิบาย เลือกฟิลด์ 1 จากนั้นบันทึกช่องที่ด้านล่าง
  4. คลิกตัวเลือกคีย์ API คัดลอกคีย์ API เราจะใช้ในโปรแกรม

ขั้นตอนที่ 10: ผลลัพธ์

ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์

คุณสามารถดูข้อมูลของโหนด 0 และโหนด 1 บนหน้าจอ แม้ว่าจะห่างกัน 2 กิโลเมตร

เข้าสู่ระบบบัญชี ThingSpeak ของคุณและคลิกที่ช่องที่คุณสร้าง คุณสามารถดูข้อมูลอุณหภูมิและความชื้นที่อัปโหลด

กราฟ field1 และกราฟ field2 คือข้อมูลความชื้นและอุณหภูมิของโหนด Lora 0 และกราฟ field3 และกราฟ field4 คือข้อมูลความชื้นและอุณหภูมิของโหนด Lora 1

แนะนำ: