Kazalo:

Lora Gateway, ki temelji na MicroPythonu ESP32: 10 korakov (s slikami)
Lora Gateway, ki temelji na MicroPythonu ESP32: 10 korakov (s slikami)

Video: Lora Gateway, ki temelji na MicroPythonu ESP32: 10 korakov (s slikami)

Video: Lora Gateway, ki temelji na MicroPythonu ESP32: 10 korakov (s slikami)
Video: В ПОГОНЕ ЗА СИЛОЙ. Сексуальные силовые практики | Откровение оккультиста 2024, Julij
Anonim
Lora Gateway, ki temelji na MicroPythonu ESP32
Lora Gateway, ki temelji na MicroPythonu ESP32
Lora Gateway, ki temelji na MicroPythonu ESP32
Lora Gateway, ki temelji na MicroPythonu ESP32

Lora je v zadnjih letih zelo priljubljena. Brezžični komunikacijski modul, ki uporablja to tehnologijo, je običajno poceni (z uporabo prostega spektra), majhen, energetsko učinkovit in ima veliko komunikacijsko razdaljo ter se uporablja predvsem za medsebojno komunikacijo med terminali IoT ali izmenjavo podatkov z gostiteljem. Na trgu je veliko modulov LoRa, na primer RFM96W, ki je opremljen s SX1278 (združljivim) čipom, ki je zelo majhen. Uporabljam ga z MakePython ESP32 kot prehodom.

Nato bom uporabil dve vozlišči LoRa za pošiljanje podatkov o temperaturi in vlažnosti na prehod in jih nato naložil na internet prek prehoda. Tu se boste naučili, kako naložiti oddaljene podatke več vozlišč LoRa v oblak skozi prehod.

1. korak: Zaloge

Zaloge
Zaloge

1*MakePython ESP32

MakePython ESP32 je plošča ESP32 z vgrajenim zaslonom OLED SSD1306.

2*Radio Maduino LoRa

Maduino Lora Radio je IoT (Internet of Things) rešitev, ki temelji na Atmelovem Atmega328P MCU in modulu Lora. To je lahko resničen projekt za projekte IoT (zlasti za aplikacije z nizko porabo na dolge razdalje)

2*DHT11

1*MakePython Lora

2. korak: vozlišče LoRa

Vozlišče LoRa
Vozlišče LoRa
Vozlišče LoRa
Vozlišče LoRa

To je shema radia Maduino Lora.

Arduino Lora Radio modul kot vozlišče LoRa, ga uporabljamo za pošiljanje podatkov o temperaturi in vlažnosti do prehoda.

(Ta WiKi uvaja, kako uporabljati radio Maduino Lora in pošiljati ter prejemati podatke)

3. korak: Povezava vozlišča in senzorja

Povezava vozlišča in senzorja
Povezava vozlišča in senzorja
Povezava vozlišča in senzorja
Povezava vozlišča in senzorja

VCC in GND DHT11 sta priključena na 3V3 in GND v Maduinu, pin DATA pa na D4 v Maduinu.

Vozlišče 0 je v parku, vozlišče 1 je v poslovni stavbi v bližini podjetja, oddaljena sta približno 2 kilometra, nato pa doma dobim njihove podatke o temperaturi in vlažnosti

4. korak: Pošljite podatke na prehod

Prenesite TransmitterDHT11.ino, odprite ga v Arduino IDE.

Ko dodajate vozlišče, ustrezno spremenite številko vozlišča. Zdaj na primer uporabite 2 vozlišča, prvo vozlišče za spreminjanje nodenum = 0 za zagon programa, drugo vozlišče za spreminjanje nodenum = 1 za zagon programa in tako naprej, lahko dodate še eno vozlišče.

int16_t številka paketa = 0; // števec paketov, prirast na xmission

int16_t nodenum = 0; // Spremenite številko vozlišča

Zberite podatke in jih natisnite

Sporočilo o nizu = "#"+(String) nodenum+"Vlažnost:"+(String) vlažnost+"% Temperatura:"+(String) temperatura+"C"+"num:"+(String) paketno število; Serial.println (sporočilo); packetnum ++;

Pošljite sporočilo na strežnik 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);

Odprite serijski monitor in si oglejte zbrane podatke o temperaturi in vlažnosti ter jih pošljite.

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

Oddaja: Pošiljanje na rf95_server Pošiljanje … Čakanje na dokončanje paketa … Čakanje na odgovor … Brez odgovora, ali je poslušalec v bližini?

Odložimo, zdaj moramo narediti Lora Gateway.

5. korak: MakePython Lora

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

To je ustrezen pin modula RFM96W in MakePython ESP32. Da bi olajšal povezavo z MakePython ESP32, sem izdelal vezje z modulom RFM96W. Da, na njem sta dva RFM96W, ki lahko pošiljata in prejemata podatke hkrati, zdaj pa potrebujem le enega.

6. korak: LoRaWAN prehod

LoRaWAN prehod
LoRaWAN prehod

LoRaWAN je širokopasovno omrežje z nizko porabo energije, ki temelji na LoRa, kar lahko zagotovi: nizko porabo energije, razširljivost, visoko kakovost storitev in varno brezžično omrežje na dolge razdalje.

Sestavite MakePython Lora in ESP32, da naredite prehod, ki bo lahko sprejemal oddaljene podatke in jih naložil v internet.

7. korak: Prenesite kodo

Prenesite vse datoteke »xxx.py« iz WiKi in jih naložite v ESP32.

Odprite datoteko LoRaDuplexCallback.py. Morate narediti nekaj prilagoditev, da se lahko vaš ESP32 poveže z omrežjem in naloži podatke na strežnik.

Spremenite API_KEY, ki ste ga pridobili v ThingSpeaku (kasneje bom predstavil, kako ga pridobiti)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Za povezavo WiFi spremenite SSID in PSW

ssid = "Makerfabs"

pswd = "20160704"

8. korak: Prejemanje podatkov

Poiščite funkcijo on_receive (lora, koristna obremenitev) v datoteki LoRaDuplexCallback.py, kjer lahko ESP32 poveste, kaj naj stori po prejemu podatkov. Naslednja koda razčleni in prikaže prejete podatke o temperaturi in vlažnosti.

def on_receive (lora, koristna obremenitev):

lora.blink_led () rssi = lora.packetRssi () poskus: dolžina = len (koristna obremenitev) -1 myStr = str ((koristna obremenitev [4: dolžina]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Prejeto sporočilo *** / n {}". format (koristna obremenitev)), če config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (koristna obremenitev [4: dolžina])), rssi), če wlan.isconnected (): globalno msgCount tiskanje ('Pošiljanje v omrežje …') vozlišče = int (str (koristna obremenitev [5: 6], 'utf-8')), če je vozlišče == 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) print (res.text) razen izjeme kot e: print (e) print (" z RSSI {} n ".format (rssi))

Sodeč po številu za razlikovanje vozlišč in nalaganju podatkov v internet prek URL -ja lahko kadar koli spremljamo oddaljene podatke različnih vozlišč. Dodate lahko več vozlišč in podobno spremenite kodo.

če je vozlišče == 0:

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

9. korak: Uporabite ThingSpeak IoT

Uporabite ThingSpeak IoT
Uporabite ThingSpeak IoT
Uporabite ThingSpeak IoT
Uporabite ThingSpeak IoT
Uporabite ThingSpeak IoT
Uporabite ThingSpeak IoT

Koraki:

  1. Prijavite se na https://thingspeak.com/. Če ga že imate, se prijavite neposredno.
  2. Kliknite Nov kanal, da ustvarite nov kanal ThingSpeak.
  3. Vnesite ime, opis, izberite polje 1. Nato shranite kanal na dnu.
  4. Kliknite možnost Ključi API, kopirajte ključ API, uporabili ga bomo v programu.

10. korak: Rezultat

Rezultat
Rezultat
Rezultat
Rezultat
Rezultat
Rezultat

Na zaslonu si lahko ogledate podatke vozlišča 0 in vozlišča 1, čeprav sta 2 km narazen.

Prijavite se v svoj račun ThingSpeak in kliknite na kanal, ki ste ga ustvarili, da si ogledate naložene podatke o temperaturi in vlažnosti.

Graf polja1 in grafa polja2 sta podatka o vlažnosti in temperaturi vozlišča Lora 0, graf polja3 in graf polja4 pa sta podatka o vlažnosti in temperaturi vozlišča Lora 1.

Priporočena: