Sadržaj:

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

Lora je posljednjih godina vrlo popularna. Bežični komunikacijski modul koji koristi ovu tehnologiju obično je jeftin (koristi slobodni spektar), male je veličine, 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 sa MakePython ESP32 kao gateway.

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

Korak 1: Potrošni materijal

Supplies
Supplies

1*MakePython ESP32

MakePython ESP32 je ESP32 ploča sa integrisanim SSD1306 OLED ekranom.

2*Maduino LoRa Radio

Maduino Lora Radio je IoT (Internet stvari) rješenje zasnovano na Atmelovom Atmega328P MCU i Lora modulu. To može biti pravi projekt za IoT projekte (posebno 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 koristiti Maduino Lora Radio i slati i primati podatke)

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 kompanije, udaljeni su oko 2 kilometra, a zatim dobijam 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 emisiji

int16_t nodenum = 0; // Izmjena broja čvora

Prikupite podatke i odštampajte ih

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

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

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

Ostavite to po strani, 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 Gateway
LoRaWAN Gateway

LoRaWAN je širokopojasna mreža male snage zasnovana na LoRa-i, 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 da napravite pristupnik koji može primati udaljene podatke i postavljati ih na Internet.

Korak 7: Preuzmite kôd

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

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

Izmijenite API_KEY koji ste dobili u ThingSpeaku (kasnije ću vam 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 šta treba 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 (): globalno 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) ispis (res.text) elif čvor == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) print (res.text) osim izuzetka 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) print (res.text)

Korak 9: Koristite 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/. Prijavite se izravno ako ga već imate.
  2. Pritisnite Novi kanal da kreirate novi ThingSpeak kanal.
  3. Unesite naziv, opis, odaberite polje 1. Zatim spremite kanal na dnu.
  4. Kliknite opciju API ključevi, kopirajte API ključ, mi ćemo ga koristiti u programu.

Korak 10: Rezultat

Rezultat
Rezultat
Rezultat
Rezultat
Rezultat
Rezultat

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.

Grafikon polja 1 i grafikona polja 2 su podaci o vlažnosti i temperaturi Lora čvora 0, a grafikon polja 3 i grafikon polja 4 su podaci o vlažnosti i temperaturi čvora 1 Lora.

Preporučuje se: