Satura rādītājs:

Lora vārteja, kuras pamatā ir MicroPython ESP32: 10 soļi (ar attēliem)
Lora vārteja, kuras pamatā ir MicroPython ESP32: 10 soļi (ar attēliem)

Video: Lora vārteja, kuras pamatā ir MicroPython ESP32: 10 soļi (ar attēliem)

Video: Lora vārteja, kuras pamatā ir MicroPython ESP32: 10 soļi (ar attēliem)
Video: Как использовать ESP32 WiFi и Bluetooth с Arduino IDE, полная информация с примерами и кодом. 2024, Novembris
Anonim
Lora vārteja, kuras pamatā ir MicroPython ESP32
Lora vārteja, kuras pamatā ir MicroPython ESP32
Lora vārteja, kuras pamatā ir MicroPython ESP32
Lora vārteja, kuras pamatā ir MicroPython ESP32

Lora pēdējos gados ir bijusi ļoti populāra. Bezvadu sakaru modulis, kas izmanto šo tehnoloģiju, parasti ir lēts (izmantojot brīvo spektru), maza izmēra, energoefektīvs un tam ir liels sakaru attālums, un to galvenokārt izmanto savstarpējai saziņai starp IoT termināļiem vai datu apmaiņai ar saimniekdatoru. Tirgū ir daudz LoRa moduļu, piemēram, RFM96W, kas ir aprīkots ar SX1278 (saderīgu) mikroshēmu, kas ir ļoti maza. Es to izmantoju kopā ar MakePython ESP32 kā vārteju.

Tālāk es izmantošu divus LoRa mezglus, lai nosūtītu datus par temperatūru un mitrumu uz vārteju, un pēc tam augšupielādētu tos internetā, izmantojot vārteju. Šeit jūs uzzināsit, kā augšupielādēt vairāku LoRa mezglu attālos datus mākonī caur vārteju.

1. solis: Piegādes

Piegādes
Piegādes

1*MakePython ESP32

MakePython ESP32 ir ESP32 tāfele ar integrētu SSD1306 OLED displeju.

2*Maduino LoRa radio

Radio Maduino Lora ir IoT (lietu internets) risinājums, kura pamatā ir Atmel Atmega328P MCU un Lora modulis. Tas var būt īsts IoT projektu projekts (īpaši liela attāluma, mazjaudas lietojumprogramma)

2*DHT11

1*MakePython Lora

2. darbība: LoRa mezgls

LoRa mezgls
LoRa mezgls
LoRa mezgls
LoRa mezgls

Šī ir Maduino Lora radio shēma.

Arduino Lora Radio modulis kā LoRa mezgls, mēs to izmantojam, lai nosūtītu temperatūras un mitruma datus uz vārteju.

(Šis WiKi iepazīstina ar Maduino Lora radio izmantošanu un datu sūtīšanu un saņemšanu)

3. solis: mezgla un sensora savienojums

Mezgla un sensora savienojums
Mezgla un sensora savienojums
Mezgla un sensora savienojums
Mezgla un sensora savienojums

DHT11 VCC un GND ir savienoti ar Maduino 3V3 un GND, un DATA tapa ir pievienota Maduino D4.

Mezgls 0 atrodas parkā, mezgls 1 atrodas biroju ēkā netālu no uzņēmuma, tie atrodas aptuveni 2 kilometru attālumā viens no otra, un tad es saņemu viņu temperatūras un mitruma datus mājās

4. darbība: nosūtiet datus uz vārteju

Lejupielādējiet TransmitterDHT11.ino, atveriet to vietnē Arduino IDE.

Pievienojot mezglu, attiecīgi mainiet mezgla numuru. Piemēram, tagad izmantojiet 2 mezglus, pirmo mezglu, lai modificētu mezglu = 0, lai palaistu programmu, otro mezglu, lai mainītu mezglu = 1, lai palaistu programmu, un tā tālāk, varat pievienot vairāk mezglu.

int16_t pakešu skaits = 0; // pakešu skaitītājs, mēs palielinām par katru izsūtījumu

int16_t nodenum = 0; // Mainīt mezgla numuru

Savāc datus un izdrukā tos

String message = "#"+(String) nodenum+"Mitrums:"+(Stīgu) mitrums+"% Temperatūra:"+(String) temperatūra+"C"+"num:"+(String) paketes numurs; Serial.println (ziņojums); pakešu skaits ++;

Nosūtiet ziņojumu uz 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);

Atveriet seriālo monitoru, jūs varat redzēt savāktos temperatūras un mitruma datus un nosūtīt tos.

#0 Mitrums: 6.00% Temperatūra: 27.00C numurs: 0

Pārraide: tiek sūtīts uz rf95_server Sūta… Gaida paketes pabeigšanu… Gaida atbildi … Nav atbildes, vai apkārt ir klausītājs?

Nolieciet to malā, tagad mums ir jāizveido Lora vārti.

5. darbība. MakePython Lora

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

Šī ir atbilstošā RFM96W moduļa un MakePython ESP32 tapa. Lai atvieglotu savienojumu ar MakePython ESP32, es izveidoju shēmas plati ar RFM96W moduli. Jā, uz tā ir divi RFM96W, kas var vienlaikus nosūtīt un saņemt datus, bet tagad man vajag tikai vienu.

6. darbība: LoRaWAN vārteja

LoRaWAN vārteja
LoRaWAN vārteja

LoRaWAN ir mazjaudas platjoslas tīkls, kura pamatā ir LoRa, un tas var nodrošināt vienu: zemu enerģijas patēriņu, mērogojamību, augstu pakalpojumu kvalitāti un drošu tālsatiksmes bezvadu tīklu.

Salieciet MakePython Lora un ESP32, lai izveidotu vārteju, kas var saņemt attālos datus un augšupielādēt tos internetā.

7. darbība: lejupielādējiet kodu

Lejupielādējiet visus “xxx.py” failus no WiKi un augšupielādējiet tos ESP32.

Atveriet failu LoRaDuplexCallback.py. Jums jāveic daži pielāgojumi, lai jūsu ESP32 varētu izveidot savienojumu ar tīklu un augšupielādēt datus serverī.

Pārveidojiet ThingSpeak iegūto API_KEY (es iepazīstināšu ar to, kā to iegūt vēlāk)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Lai izveidotu savienojumu ar WiFi, mainiet SSID un PSW

ssid = "Makerfabs"

pswd = "20160704"

8. darbība: saņemiet datus

Failā LoRaDuplexCallback.py atrodiet funkciju on_reieve (lora, payload), kur varat pateikt ESP32, kas jādara pēc datu saņemšanas. Šis kods analizē un parāda saņemtos temperatūras un mitruma datus.

def on_recept (lora, lietderīgā slodze):

lora.blink_led () rssi = lora.packetRssi () mēģiniet: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(garums1+1):(garums1+6)] myNum2 = myStr [(garums1+20):(garums1+25)] print ("*** Saņemtais ziņojums *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Sūta tīklam …') mezgls = int (str (lietderīgā slodze [5: 6], 'utf-8'))), ja mezgls == 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) drukāt (res.text), izņemot izņēmumu kā e: print (e) print (" ar RSSI {} n ".format (rssi))

Spriežot pēc numura, lai atšķirtu mezglus, un augšupielādējot datus internetā, izmantojot URL, mēs varam jebkurā laikā uzraudzīt dažādu mezglu attālos datus. Jūs varat pievienot vairāk mezglu un veikt līdzīgas izmaiņas kodā.

ja mezgls == 0:

URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) drukāt (res.text)

9. darbība. Izmantojiet ThingSpeak IoT

Izmantojiet ThingSpeak IoT
Izmantojiet ThingSpeak IoT
Izmantojiet ThingSpeak IoT
Izmantojiet ThingSpeak IoT
Izmantojiet ThingSpeak IoT
Izmantojiet ThingSpeak IoT

Soļi:

  1. Reģistrējiet kontu vietnē https://thingspeak.com/. Ja jums tāds jau ir, pierakstieties tieši.
  2. Noklikšķiniet uz Jauns kanāls, lai izveidotu jaunu ThingSpeak kanālu.
  3. Ievadiet nosaukumu, aprakstu, atlasiet lauku 1. Pēc tam saglabājiet kanālu apakšā.
  4. Noklikšķiniet uz opcijas API atslēgas, nokopējiet API atslēgu, mēs to izmantosim programmā.

10. solis: rezultāts

Rezultāts
Rezultāts
Rezultāts
Rezultāts
Rezultāts
Rezultāts

Ekrānā var redzēt 0. mezgla un 1. mezgla datus, lai gan tie atrodas 2 kilometru attālumā viens no otra.

Piesakieties savā ThingSpeak kontā un noklikšķiniet uz izveidotā kanāla, lai redzētu augšupielādētos temperatūras un mitruma datus.

Lauka 1 grafiks un lauka 2 grafiks ir Loras mezgla 0 mitruma un temperatūras dati, un lauka 3 grafiks un lauka 4 grafiks ir Loras mezgla 1 mitruma un temperatūras dati.

Ieteicams: