Բովանդակություն:

Lora Gateway MicroPython ESP32- ի հիման վրա. 10 քայլ (նկարներով)
Lora Gateway MicroPython ESP32- ի հիման վրա. 10 քայլ (նկարներով)

Video: Lora Gateway MicroPython ESP32- ի հիման վրա. 10 քայլ (նկարներով)

Video: Lora Gateway MicroPython ESP32- ի հիման վրա. 10 քայլ (նկարներով)
Video: Using Heltec ESP32 OLED Wifi Kit 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 տախտակ է `ինտեգրված SSD1306 OLED էկրանով:

2*Maduino LoRa ռադիո

Maduino Lora Radio- ն IoT (իրերի ինտերնետ) լուծում է, որը հիմնված է Atmel's Atmega328P MCU և Lora մոդուլի վրա: Դա կարող է իրական նախագիծ լինել IoT նախագծերի համար (հատկապես երկարաժամկետ, ցածր էներգիայի կիրառմամբ)

2*DHT11

1*MakePython Lora

Քայլ 2: LoRa հանգույց

LoRa հանգույց
LoRa հանգույց
LoRa հանգույց
LoRa հանգույց

Սա Maduino Lora Radio- ի սխեմատիկ պատկերն է:

Arduino Lora Radio մոդուլը որպես LoRa հանգույց, մենք այն օգտագործում ենք ջերմաստիճանի և խոնավության տվյալները դարպաս ուղարկելու համար:

(Այս WiKi- ն ներկայացնում է, թե ինչպես օգտագործել Maduino Lora ռադիոկայանը և ուղարկել և ստանալ տվյալներ)

Քայլ 3. Հանգույցի և տվիչի միացում

Հանգույցի և տվիչի միացում
Հանգույցի և տվիչի միացում
Հանգույցի և տվիչի միացում
Հանգույցի և տվիչի միացում

DHCC- ի VCC- ն և GND- ը միացված են 3V3- ին և GND- ին Maduino- ին, իսկ DATA- ի կապը միացված է Maduino- ի D4- ին:

Հանգույց 0 -ը այգում է, 1 -ը ՝ գրասենյակին կից գրասենյակի շենքում, դրանք գտնվում են մոտ 2 կիլոմետր հեռավորության վրա, իսկ հետո ես ստանում եմ նրանց ջերմաստիճանի և խոնավության տվյալները տանը

Քայլ 4: Տվյալներ ուղարկեք դարպաս

Ներբեռնեք TransmitterDHT11.ino, բացեք այն Arduino IDE- ում:

Հանգույց ավելացնելիս համապատասխանաբար փոփոխեք հանգույցի համարը: Օրինակ, այժմ օգտագործեք 2 հանգույց, առաջին հանգույցը ՝ nodenum = 0 փոփոխելու համար ծրագիրը գործարկելու համար, երկրորդը ՝ nodenum = 1 փոփոխելու համար ծրագիրը և այլն, և այլն, կարող եք ավելացնել ավելի շատ հանգույց:

int16_t packetnum = 0; // փաթեթների հաշվիչ, մենք ավելացնում ենք մեկ բացթողումը

int16_t nodenum = 0; // Փոփոխել հանգույցի համարը

Հավաքեք տվյալները և տպեք դրանք

Լարային հաղորդագրություն = "#"+(String) nodenum+"Խոնավություն."+(String) խոնավություն+"% peratերմաստիճանը."+(String) ջերմաստիճան+"C"+"num:"+(String) packetnum; Serial.println (հաղորդագրություն); packetnum ++;

Ուղարկեք հաղորդագրություն rf95_server- ին

uint8_t radioPacket [message.length ()+1];

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

Բացեք սերիական մոնիտորը, կարող եք տեսնել հավաքված ջերմաստիճանի և խոնավության տվյալները և ուղարկեք դրանք:

#0 Խոնավություն ՝ 6.00% Temերմաստիճան ՝ 27.00C թվ ՝ 0

Հաղորդում.

Մի կողմ դրեք, հիմա մենք պետք է պատրաստենք Լորայի դարպասը:

Քայլ 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 դարպաս
LoRaWAN դարպաս

LoRaWAN- ը ցածր էներգիայի լայնածավալ ցանց է, որը հիմնված է LoRa- ի վրա, որը կարող է ապահովել մեկը. Ցածր էներգիայի սպառումը, ընդլայնելիությունը, ծառայության բարձր որակը և անվտանգ հեռավոր անլար ցանցը:

Հավաքեք MakePython Lora- ն և ESP32- ը `դարպաս ստեղծելու համար, որը կարող է ստանալ հեռավոր տվյալներ և վերբեռնել դրանք ինտերնետում:

Քայլ 7: Ներբեռնեք ծածկագիրը

Ներբեռնեք բոլոր «xxx.py» ֆայլերը WiKi- ից և վերբեռնեք դրանք ESP32- ում:

Բացեք LoRaDuplexCallback.py ֆայլը: Դուք պետք է որոշ ճշգրտումներ կատարեք, որպեսզի ձեր ESP32- ը կարողանա միանալ ցանցին և տվյալներ վերբեռնել սերվերին:

Փոփոխեք ThingSpeak- ում ձեռք բերված API_KEY- ը (ինչպես կներկայացնեմ, թե ինչպես այն ձեռք բերել ավելի ուշ)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Փոփոխեք SSID- ը և PSW- ն ՝ WiFi- ին միացնելու համար

ssid = "Makerfabs"

pswd = "20160704"

Քայլ 8: Տվյալների ստացում

Գտեք on_receive (lora, payload) գործառույթը LoRaDuplexCallback.py ֆայլում, որտեղ կարող եք ESP32- ին ասել, թե ինչ անել տվյալները ստանալուց հետո: Հետևյալ ծածկագիրը վերլուծում և ցուցադրում է ստացված ջերմաստիճանի և խոնավության տվյալները:

def on_receive (lora, payload):

lora.blink_led () rssi = lora.packetRssi () try: 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 {}" ձևաչափ (բեռնվածություն)) եթե config_lora. IS_LORA_OLED: lora.show_packet (("{}". ձևաչափ (բեռնվածություն [4: երկարություն)), rssi) եթե wlan.isconnected (): global msgCount print ('Sending to network …') node = int (str (payload [5: 6], 'utf-8')) if node == 0: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 = "+myNum1+" & field2 = "+myNum2 res = urequests.get (URL) print (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) տպել (res.text) բացառությամբ բացառության, ինչպես e: print (e) print (" 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 հաշիվ և կտտացրեք ձեր ստեղծած ալիքին, կարող եք տեսնել ջերմաստիճանի և խոնավության վերբեռնված տվյալները:

Դաշտի 1 գրաֆիկը և դաշտի 2 գրաֆիկները Լորա հանգույցի 0 խոնավության և ջերմաստիճանի տվյալներն են, իսկ դաշտի 3 գրաֆիկը և դաշտի 4 գրաֆիկը Լորա հանգույցի 1 խոնավության և ջերմաստիճանի տվյալները:

Խորհուրդ ենք տալիս: