Sadržaj:

Lora Gateway temeljen na MicroPythonu ESP32: 10 koraka (sa slikama)
Lora Gateway temeljen na MicroPythonu ESP32: 10 koraka (sa slikama)

Video: Lora Gateway temeljen na MicroPythonu ESP32: 10 koraka (sa slikama)

Video: Lora Gateway temeljen na MicroPythonu ESP32: 10 koraka (sa slikama)
Video: Internet de las cosas || ESP32 Y MQTT 2024, Srpanj
Anonim
Lora Gateway temeljen na MicroPythonu ESP32
Lora Gateway temeljen na MicroPythonu ESP32
Lora Gateway temeljen na MicroPythonu ESP32
Lora Gateway temeljen na MicroPythonu ESP32

Lora je posljednjih godina vrlo popularna. Bežični komunikacijski modul koji koristi ovu tehnologiju obično je jeftin (pomoću slobodnog spektra), malih dimenzija, energetski učinkovit i ima veliku komunikacijsku udaljenost, a uglavnom se koristi za međusobnu komunikaciju između IoT terminala ili razmjenu podataka s domaćinom. Na tržištu postoji mnogo LoRa modula, poput RFM96W, koji je opremljen SX1278 (kompatibilnim) čipom, koji je vrlo mali. Koristim ga s MakePython ESP32 kao pristupnikom.

Zatim ću koristiti dva LoRa čvora za slanje podataka o temperaturi i vlažnosti na pristupnik, a zatim ih prenijeti na Internet putem pristupnika. Ovdje ćete naučiti kako prenijeti udaljene podatke više LoRa čvorova u oblak putem pristupnika.

Korak 1: Opskrba

Pribor
Pribor

1*MakePython ESP32

MakePython ESP32 je ESP32 ploča s integriranim SSD1306 OLED zaslonom.

2*Radio Maduino LoRa

Maduino Lora Radio je IoT (Internet of Things) rješenje temeljeno na Atmelovom Atmega328P MCU -u i modulu Lora. To može biti pravi projekt za IoT projekte (osobito aplikacije dugog dometa, male snage)

2*DHT11

1*MakePython Lora

Korak 2: LoRa čvor

LoRa čvor
LoRa čvor
LoRa čvor
LoRa čvor

Ovo je shema radija Maduino Lora.

Arduino Lora Radio modul kao LoRa čvor, koristimo ga za slanje podataka o temperaturi i vlažnosti na pristupnik.

(Ovaj WiKi predstavlja kako se koristi Maduino Lora Radio i šalju i primaju podaci)

Korak 3: Povezivanje čvora i senzora

Veza čvora i senzora
Veza čvora i senzora
Veza čvora i senzora
Veza čvora i senzora

VCC i GND DHT11 spojeni su na 3V3 i GND u Maduinu, a DATA pin je spojen na D4 u Maduinu.

Čvor 0 je u parku, čvor 1 je u poslovnoj zgradi u blizini tvrtke, udaljeni su oko 2 kilometra, a onda dobivam njihove podatke o temperaturi i vlažnosti kod kuće

Korak 4: Pošaljite podatke na pristupnik

Preuzmite TransmitterDHT11.ino, otvorite ga na Arduino IDE.

Prilikom dodavanja čvora, prema tome izmijenite broj čvora. Na primjer, sada koristite 2 čvora, prvi čvor za izmjenu nodenum = 0 za pokretanje programa, drugi čvor za izmjenu nodenum = 1 za pokretanje programa, i tako dalje, možete dodati još čvora.

int16_t broj paketa = 0; // brojač paketa, povećavamo po xmission -u

int16_t nodenum = 0; // Izmjena broja čvora

Prikupite podatke i ispišite ih

Poruka niza = "#"+(Niz) nodenum+"Vlažnost:"+(Niz) vlažnost+"% Temperatura:"+(Niz) temperatura+"C"+"broj:"+(Niz) paketni broj; Serial.println (poruka); paketni broj ++;

Pošaljite poruku na 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);

Otvorite serijski monitor, možete vidjeti prikupljene podatke o temperaturi i vlažnosti i poslati ih.

#0 Vlažnost: 6,00% Temperatura: 27,00C Broj: 0

Prijenos: Slanje na rf95_server Slanje … Čeka se završetak paketa … Čeka se odgovor … Nema odgovora, ima li slušatelja u blizini?

Ostavite to sa strane, sada moramo napraviti Lora Gateway.

Korak 5: MakePython Lora

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

Ovo je odgovarajući pin RFM96W modula i MakePython ESP32. Kako bih olakšao povezivanje s MakePythonom ESP32, napravio sam pločicu s modulom RFM96W. Da, na njemu se nalaze dva RFM96W koji mogu slati i primati podatke u isto vrijeme, ali sada mi treba samo jedan.

Korak 6: LoRaWAN pristupnik

LoRaWAN pristupnik
LoRaWAN pristupnik

LoRaWAN je širokopojasna mreža male snage koja se temelji na LoRa-i, a koja može pružiti jednu: nisku potrošnju energije, skalabilnost, visoku kvalitetu usluge i sigurnu bežičnu mrežu na velike udaljenosti.

Sastavite MakePython Lora i ESP32 kako biste napravili pristupnik koji može primati udaljene podatke i učitavati ih na Internet.

Korak 7: Preuzmite kôd

Preuzmite sve datoteke ‘xxx.py’ s WiKi i prenesite ih na ESP32.

Otvorite datoteku LoRaDuplexCallback.py. Morate napraviti neke prilagodbe kako bi se vaš ESP32 mogao povezati s mrežom i prenijeti podatke na poslužitelj.

Izmijenite API_KEY koji ste dobili u ThingSpeaku (kasnije ću predstaviti kako ga dobiti)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Izmijenite SSID i PSW za povezivanje WiFi -ja

ssid = "Proizvođači"

pswd = "20160704"

Korak 8: Primite podatke

Pronađite funkciju on_receive (lora, korisni teret) u datoteci LoRaDuplexCallback.py, gdje možete reći ESP32 što učiniti nakon primitka podataka. Sljedeći kôd analizira i prikazuje primljene podatke o temperaturi i vlažnosti.

def on_receive (lora, korisni teret):

lora.blink_led () rssi = lora.packetRssi () try: length = len (korisni teret) -1 myStr = str ((korisni teret [4: dužina]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Primljena poruka *** / n {}". format (korisni teret)) ako je config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (korisni teret [4: dužina])), rssi) ako je wlan.isconnected (): globalni msgCount ispis ('Slanje na mrežu …') čvor = int (str (korisni teret [5: 6], 'utf-8')) ako je čvor == 0: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& polje1 = "+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) print (res.text) osim iznimke kao e: print (e) print (" sa RSSI {} n ".format (rssi))

Procjenjujući broj za razlikovanje čvorova i učitavajući podatke na Internet putem URL -a, u svakom trenutku možemo nadzirati udaljene podatke različitih čvorova. Možete dodati još čvorova i napraviti slične izmjene u kodu.

ako je čvor == 0:

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

Korak 9: Upotrijebite ThingSpeak IoT

Koristite ThingSpeak IoT
Koristite ThingSpeak IoT
Koristite ThingSpeak IoT
Koristite ThingSpeak IoT
Koristite ThingSpeak IoT
Koristite ThingSpeak IoT

Koraci:

  1. Registrirajte račun na https://thingspeak.com/. Ako ga već imate, prijavite se izravno.
  2. Pritisnite Novi kanal da biste stvorili novi ThingSpeak kanal.
  3. Unesite naziv, opis, odaberite polje 1. Zatim spremite kanal na dnu.
  4. Kliknite opciju API ključevi, kopirajte API ključ, koristit ćemo ga u programu.

Korak 10: Rezultat

Proizlaziti
Proizlaziti
Proizlaziti
Proizlaziti
Proizlaziti
Proizlaziti

Na ekranu možete vidjeti podatke čvora 0 i čvora 1, iako su udaljeni 2 kilometra.

Prijavite se na svoj ThingSpeak račun i kliknite na kanal koji ste stvorili, možete vidjeti učitane podatke o temperaturi i vlažnosti.

Graf polja1 i grafikona polja2 su podaci o vlažnosti i temperaturi čvora Lora 0, a grafikon polja 3 i grafikon polja4 su podaci o vlažnosti i temperaturi čvora Lora 1.

Preporučeni: