สารบัญ:
- ขั้นตอนที่ 1: วัสดุสิ้นเปลือง
- ขั้นตอนที่ 2: โหนด LoRa
- ขั้นตอนที่ 3: การเชื่อมต่อโหนดและเซ็นเซอร์
- ขั้นตอนที่ 4: ส่งข้อมูลไปยังเกตเวย์
- ขั้นตอนที่ 5: MakePython Lora
- ขั้นตอนที่ 6: เกตเวย์ LoRaWAN
- ขั้นตอนที่ 7: ดาวน์โหลดรหัส
- ขั้นตอนที่ 8: รับข้อมูล
- ขั้นตอนที่ 9: ใช้ ThingSpeak IoT
- ขั้นตอนที่ 10: ผลลัพธ์
วีดีโอ: Lora Gateway ที่ใช้ MicroPython ESP32: 10 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ลอร่าได้รับความนิยมอย่างมากในช่วงไม่กี่ปีที่ผ่านมา โมดูลการสื่อสารไร้สายที่ใช้เทคโนโลยีนี้มักจะมีราคาถูก (โดยใช้คลื่นความถี่อิสระ) ขนาดเล็ก ประหยัดพลังงาน และมีระยะการสื่อสารที่ยาวนาน และส่วนใหญ่ใช้สำหรับการสื่อสารระหว่างเทอร์มินัล 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
นี่คือพินที่สอดคล้องกันของโมดูล RFM96W และ MakePython ESP32 เพื่อความสะดวกในการเชื่อมต่อกับ MakePython ESP32 ฉันจึงสร้างแผงวงจรด้วยโมดูล RFM96W ใช่ มี RFM96W อยู่สองตัว ซึ่งสามารถส่งและรับข้อมูลได้พร้อมกัน แต่ตอนนี้ฉันต้องการเพียงอันเดียว
ขั้นตอนที่ 6: เกตเวย์ LoRaWAN
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
ขั้นตอน:
- ลงทะเบียนบัญชีใน https://thingspeak.com/ หากคุณมีอยู่แล้ว ให้ลงชื่อเข้าใช้โดยตรง
- คลิก ช่องใหม่ เพื่อสร้างช่อง ThingSpeak ใหม่
- ใส่ชื่อ คำอธิบาย เลือกฟิลด์ 1 จากนั้นบันทึกช่องที่ด้านล่าง
- คลิกตัวเลือกคีย์ API คัดลอกคีย์ API เราจะใช้ในโปรแกรม
ขั้นตอนที่ 10: ผลลัพธ์
คุณสามารถดูข้อมูลของโหนด 0 และโหนด 1 บนหน้าจอ แม้ว่าจะห่างกัน 2 กิโลเมตร
เข้าสู่ระบบบัญชี ThingSpeak ของคุณและคลิกที่ช่องที่คุณสร้าง คุณสามารถดูข้อมูลอุณหภูมิและความชื้นที่อัปโหลด
กราฟ field1 และกราฟ field2 คือข้อมูลความชื้นและอุณหภูมิของโหนด Lora 0 และกราฟ field3 และกราฟ field4 คือข้อมูลความชื้นและอุณหภูมิของโหนด Lora 1
แนะนำ:
นาฬิกา LED ที่ใช้ Neopixels: 4 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกา LED ที่ใช้ Neopixels: ยินดีต้อนรับสู่คำแนะนำของฉันเกี่ยวกับวิธีสร้างนาฬิกา LED โดยใช้ 60 Neopixels คุณจะพบไฟล์ PDF 3 ไฟล์ที่แนบมา ไฟล์หนึ่งสำหรับส่วนของนาฬิกา อีกอันสำหรับฐาน และอันสุดท้ายคือเทมเพลตเพื่อช่วยในการติดกาว ส่วนต่างๆ เข้าด้วยกัน เพื่อคอม
ATTiny84 ไดร์เวอร์ LED 3A Step-Down ที่ใช้ ATTiny84: 7 ขั้นตอน (พร้อมรูปภาพ)
ATTiny84 ไดร์เวอร์ LED 3A Step-Down ที่ใช้ ATTiny84: หากคุณต้องการจ่ายไฟ LED 10W คุณสามารถใช้ไดรเวอร์ 3A LED นี้ได้ ด้วย LED Cree XPL 3 ดวง คุณสามารถบรรลุ 3000 ลูเมน
Pixel Kit ที่ใช้ MicroPython: ขั้นตอนแรก: 7 ขั้นตอน
Pixel Kit ที่ใช้ MicroPython: ก้าวแรก: การเดินทางเพื่อปลดล็อกศักยภาพสูงสุดของ Pixel ของ Kano เริ่มต้นด้วยการแทนที่เฟิร์มแวร์จากโรงงานด้วย MicroPython แต่นั่นเป็นเพียงจุดเริ่มต้นเท่านั้น ในการโค้ดบน Pixel Kit เราต้องเชื่อมต่อคอมพิวเตอร์ของเราเข้ากับมัน บทช่วยสอนนี้จะอธิบายว่า
เครื่องกำเนิดเพลงตามสภาพอากาศ (เครื่องกำเนิด Midi ที่ใช้ ESP8266): 4 ขั้นตอน (พร้อมรูปภาพ)
เครื่องกำเนิดเพลงตามสภาพอากาศ (เครื่องกำเนิด Midi ที่ใช้ ESP8266): สวัสดี วันนี้ฉันจะอธิบายวิธีสร้างเครื่องกำเนิดเพลงตามสภาพอากาศของคุณเอง โดยใช้ ESP8266 ซึ่งคล้ายกับ Arduino และตอบสนองต่ออุณหภูมิ ฝน และความเข้มของแสง อย่าคาดหวังว่าจะทำให้ทั้งเพลงหรือคอร์ดโปรแกรม
หน่วยควบคุมระยะไกล GSM/SMS ที่ใช้ Arduino: 16 ขั้นตอน (พร้อมรูปภาพ)
ยูนิตควบคุมระยะไกล GSM/SMS ที่ใช้ Arduino: ! ! ! สังเกต ! ! !เนื่องจากมีการอัพเกรดเสาสัญญาณโทรศัพท์มือถือในพื้นที่ของฉัน ฉันจึงไม่สามารถใช้โมดูล GSM นี้ได้อีกต่อไป หอคอยที่ใหม่กว่าไม่รองรับอุปกรณ์ 2G อีกต่อไป ดังนั้นฉันจึงไม่สามารถให้การสนับสนุนโครงการนี้ได้อีกต่อไปด้วยวิ