Sisukord:

Lora Gateway, mis põhineb MicroPython ESP32 -l: 10 sammu (koos piltidega)
Lora Gateway, mis põhineb MicroPython ESP32 -l: 10 sammu (koos piltidega)

Video: Lora Gateway, mis põhineb MicroPython ESP32 -l: 10 sammu (koos piltidega)

Video: Lora Gateway, mis põhineb MicroPython ESP32 -l: 10 sammu (koos piltidega)
Video: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, Detsember
Anonim
Lora Gateway põhineb MicroPython ESP32 -l
Lora Gateway põhineb MicroPython ESP32 -l
Lora Gateway põhineb MicroPython ESP32 -l
Lora Gateway põhineb MicroPython ESP32 -l

Lora on viimastel aastatel olnud väga populaarne. Seda tehnoloogiat kasutav traadita side moodul on tavaliselt odav (kasutades vaba spektrit), väikese suurusega, energiasäästlik ja pika sidekaugusega ning seda kasutatakse peamiselt IoT-terminalide vastastikuseks suhtluseks või andmevahetuseks hostiga. Turul on palju LoRa mooduleid, näiteks RFM96W, mis on varustatud kiibiga SX1278 (ühilduv), mis on väga väike. Ma kasutan seda koos MakePython ESP32 -ga lüüsina.

Järgmisena kasutan kahte LoRa sõlme, et saata temperatuuri ja niiskuse andmed lüüsile ning seejärel üles laadida need lüüsi kaudu Internetti. Siit saate teada, kuidas mitme LoRa sõlme kaugandmeid pilve kaudu lüüsi kaudu üles laadida.

Samm: tarvikud

Tarvikud
Tarvikud

1*MakePython ESP32

MakePython ESP32 on ESP32 plaat, millel on integreeritud SSD1306 OLED -ekraan.

2*Maduino LoRa raadio

Maduino Lora raadio on asjade Interneti (asjade internet) lahendus, mis põhineb Atmeli Atmega328P MCU ja Lora moodulil. See võib olla tõeline projekt asjade Interneti-projektide jaoks (eriti pikamaa, väikese energiatarbega rakendus)

2*DHT11

1*MakePython Lora

2. samm: LoRa sõlm

LoRa Sõlm
LoRa Sõlm
LoRa Sõlm
LoRa Sõlm

See on Maduino Lora raadio skeem.

Arduino Lora raadio moodul LoRa sõlmena, kasutame seda temperatuuri ja niiskuse andmete saatmiseks lüüsile.

(See WiKi tutvustab Maduino Lora raadio kasutamist ning andmete saatmist ja vastuvõtmist)

Samm: sõlme ja anduri ühendus

Sõlme ja anduri ühendus
Sõlme ja anduri ühendus
Sõlme ja anduri ühendus
Sõlme ja anduri ühendus

DHT11 VCC ja GND on ühendatud Maduino 3V3 ja GND -ga ning DATA pin on ühendatud Maduino D4 -ga.

Sõlm 0 on pargis, sõlm 1 asub ettevõtte lähedal asuvas büroohoones, nende vahe on umbes 2 kilomeetrit ja siis saan nende temperatuuri ja niiskuse andmed kodus kätte

Samm: saatke andmed lüüsile

Laadige alla TransmitterDHT11.ino, avage see Arduino IDE kaudu.

Sõlme lisamisel muutke sõlme numbrit vastavalt. Näiteks kasutage nüüd 2 sõlme, esimest sõlme, et muuta programmi käivitamiseks nodenum = 0, teist sõlme, et muuta programmi käivitamiseks nodenum = 1, ja nii edasi, saate lisada rohkem sõlme.

int16_t paketi number = 0; // pakettide loendur, suurendame iga xmissiooni kohta

int16_t nodenum = 0; // Muuda sõlme numbrit

Koguge andmed ja printige need

Stringiteade = "#"+(String) nodenum+"Niiskus:"+(String) niiskus+"% Temperatuur:"+(String) temperatuur+"C"+"num:"+(String) pakettnumber; Serial.println (sõnum); pakettnumber ++;

Saada sõnum aadressile 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);

Avage jadamonitor, näete kogutud temperatuuri ja niiskuse andmeid ning saatke need välja.

#0 Niiskus: 6.00% Temperatuur: 27.00C number: 0

Edasta: saadetakse aadressile rf95_server Saadetakse … Oodatakse paketi valmimist … Vastust oodates … Vastust pole, kas kuulajaid on ümberringi?

Pange see kõrvale, nüüd peame tegema Lora värava.

Samm: MakePython Lora

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

See on RFM96W mooduli ja MakePython ESP32 vastav tihvt. MakePython ESP32 -ga ühenduse loomise hõlbustamiseks valmistasin RFM96W mooduliga trükkplaadi. Jah, sellel on kaks RFM96W, mis saavad korraga andmeid saata ja vastu võtta, kuid nüüd on mul vaja ainult ühte.

6. samm: LoRaWAN -i lüüs

LoRaWANi lüüs
LoRaWANi lüüs

LoRaWAN on LoRa-l põhinev väikese võimsusega laivõrk, mis võib pakkuda ühte järgmistest: madal energiatarve, mastaapsus, kõrge teenuse kvaliteet ja turvaline kaugliinide traadita võrk.

Pange MakePython Lora ja ESP32 kokku, et luua lüüs, mis saab kaugandmeid vastu võtta ja Internetti üles laadida.

Samm: laadige kood alla

Laadige WiKi -lt alla kõik xxx.py -failid ja laadige need üles ESP32 -sse.

Avage fail LoRaDuplexCallback.py. Peate tegema mõningaid kohandusi, et teie ESP32 saaks võrguga ühenduse luua ja andmeid serverisse üles laadida.

Muutke ThingSpeakis saadud API_KEY (tutvustan selle hankimist hiljem)

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

API_KEY = 'UBHIRHVV9THUJVUI'

WiFi ühendamiseks muutke SSID -d ja PSW -d

ssid = "Makerfabs"

pswd = "20160704"

8. samm: andmete vastuvõtmine

Leidke failist LoRaDuplexCallback.py funktsioon on_reieve (lora, payload), kus saate ESP32 -le öelda, mida teha pärast andmete saamist. Järgmine kood analüüsib ja kuvab vastuvõetud temperatuuri ja niiskuse andmeid.

def on_recept (lora, kasulik koormus):

lora.blink_led () rssi = lora.packetRssi () proovige: pikkus = len (kasulik koormus) -1 myStr = str ((kasulik koormus [4: pikkus]), 'utf-8') pikkus1 = myStr.find (':') myNum1 = myStr [(pikkus1+1):(pikkus1+6)] myNum2 = myStr [(pikkus1+20):(pikkus1+25)] print ("*** Vastuvõetud sõnum *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Saadetakse võrku …') node = int (str (kasulik koormus [5: 6], 'utf-8'))) kui sõlm == 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), välja arvatud erand kui e: print (e) print (" koos RSSI -ga {} n ".format (rssi))

Otsustades sõlmede eristamise numbrit ja laadides andmed Internetti üles URL -i kaudu, saame igal ajal jälgida erinevate sõlmede kaugandmeid. Saate lisada rohkem sõlme ja teha samasuguseid muudatusi koodis.

kui sõlm == 0:

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

Samm: kasutage ThingSpeak IoT -d

Kasutage ThingSpeak IoT -d
Kasutage ThingSpeak IoT -d
Kasutage ThingSpeak IoT -d
Kasutage ThingSpeak IoT -d
Kasutage ThingSpeak IoT -d
Kasutage ThingSpeak IoT -d

Sammud:

  1. Registreerige konto saidil https://thingspeak.com/. Kui teil see juba on, logige otse sisse.
  2. Uue ThingSpeaki kanali loomiseks klõpsake nuppu Uus kanal.
  3. Sisendi nimi, Kirjeldus, Vali väli 1. Seejärel salvestage kanal allservas.
  4. Klõpsake suvandil API võtmed, kopeerige API võti, me kasutame seda programmis.

10. samm: tulemus

Tulemus
Tulemus
Tulemus
Tulemus
Tulemus
Tulemus

Ekraanil näete sõlme 0 ja sõlme 1 andmeid, kuigi nende vahe on 2 kilomeetrit.

Logige sisse oma ThingSpeaki kontole ja klõpsake loodud kanalil, näete üleslaaditud temperatuuri ja niiskuse andmeid.

Field1 graafik ja field2 graafikud on Lora sõlme 0 niiskuse ja temperatuuri andmed ning field3 graafik ja field4 graafik on Lora sõlme 1 niiskuse ja temperatuuri andmed.

Soovitan: