Innholdsfortegnelse:

Lora Gateway Basert på MicroPython ESP32: 10 trinn (med bilder)
Lora Gateway Basert på MicroPython ESP32: 10 trinn (med bilder)

Video: Lora Gateway Basert på MicroPython ESP32: 10 trinn (med bilder)

Video: Lora Gateway Basert på MicroPython ESP32: 10 trinn (med bilder)
Video: Using Heltec ESP32 OLED Wifi Kit 2024, November
Anonim
Lora Gateway Basert på MicroPython ESP32
Lora Gateway Basert på MicroPython ESP32
Lora Gateway Basert på MicroPython ESP32
Lora Gateway Basert på MicroPython ESP32

Lora har vært veldig populær de siste årene. Den trådløse kommunikasjonsmodulen som bruker denne teknologien er vanligvis billig (bruker fritt spektrum), liten i størrelse, energieffektiv og har en lang kommunikasjonsavstand, og brukes hovedsakelig til gjensidig kommunikasjon mellom IoT-terminaler eller datautveksling med en vert. Det er mange LoRa -moduler på markedet, for eksempel RFM96W, som er utstyrt med SX1278 (kompatibel) chip, som er veldig liten. Jeg bruker den med MakePython ESP32 som en gateway.

Deretter vil jeg bruke to LoRa -noder til å sende temperatur- og fuktighetsdata til gatewayen, og deretter laste dem opp til Internett via gatewayen. Her lærer du hvordan du laster opp eksterne data for flere LoRa -noder til skyen gjennom gatewayen.

Trinn 1: Rekvisita

Rekvisita
Rekvisita

1*MakePython ESP32

MakePython ESP32 er et ESP32 -kort med integrert SSD1306 OLED -skjerm.

2*Maduino LoRa Radio

Maduino Lora Radio er en IoT (tingenes internett) løsning basert på Atmels Atmega328P MCU og Lora modul. Det kan være et reelt prosjekt for IoT-prosjekter (spesielt applikasjoner med lang rekkevidde, lav effekt)

2*DHT11

1*MakePython Lora

Trinn 2: LoRa Node

LoRa Node
LoRa Node
LoRa Node
LoRa Node

Dette er skjematisk over Maduino Lora Radio.

Arduino Lora Radio -modul som LoRa -node, vi bruker den til å sende temperatur- og fuktighetsdata til gatewayen.

(Denne WiKi introduserer hvordan du bruker Maduino Lora Radio og sender og mottar data)

Trinn 3: Tilkobling av node og sensor

Node- og sensortilkobling
Node- og sensortilkobling
Node- og sensortilkobling
Node- og sensortilkobling

VCC og GND for DHT11 er koblet til 3V3 og GND for Maduino, og DATA -pinnen er koblet til D4 på Maduino.

Node 0 er i parken, node 1 er i kontorbygningen i nærheten av selskapet, de er omtrent 2 kilometer fra hverandre, og så får jeg data om temperatur og fuktighet hjemme

Trinn 4: Send data til gatewayen

Last ned TransmitterDHT11.ino, åpne den på Arduino IDE.

Når du legger til en node, må du endre nodenummeret tilsvarende. For eksempel, bruk nå 2 noder, den første noden for å endre nodenum = 0 for å kjøre programmet, den andre noden for å endre nodenum = 1 for å kjøre programmet, og så videre, kan du legge til flere noder.

int16_t packetnum = 0; // pakkteller, vi øker per sending

int16_t nodenum = 0; // Endre nodenummeret

Samle inn data og skriv dem ut

String melding = "#"+(String) nodenum+"Fuktighet:"+(streng) fuktighet+"% temperatur:"+(streng) temperatur+"C"+"num:"+(streng) pakkenummer; Serial.println (melding); packetnum ++;

Send en melding til rf95_server

uint8_t radioPacket [melding.lengde ()+1];

message.toCharArray (radioPacket, message.length ()+1); radioPacket [message.length ()+1] = '\ 0'; rf95.send ((uint8_t *) radioPacket, message.length ()+1);

Åpne den serielle skjermen, du kan se de innsamlede temperatur- og fuktighetsdataene, og sende dem ut.

#0 Fuktighet: 6,00% Temperatur: 27,00C nummer: 0

Send: Sender til rf95_server Sender … Venter på at pakken skal fullføres … Venter på svar … Ingen svar, er det en lytter rundt?

Legg det til side, nå må vi lage Lora Gateway.

Trinn 5: MakePython Lora

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

Dette er den tilsvarende pinnen til RFM96W -modulen og MakePython ESP32. For å lette tilkoblingen til MakePython ESP32, laget jeg et kretskort med RFM96W -modulen. Ja, det er to RFM96W på den, som kan sende og motta data samtidig, men nå trenger jeg bare en.

Trinn 6: LoRaWAN Gateway

LoRaWAN Gateway
LoRaWAN Gateway

LoRaWAN er et lavt strømnettverksnettverk basert på LoRa, som kan gi ett: lavt strømforbruk, skalerbarhet, høy kvalitet på tjenesten og et trygt trådløst langdistanse nettverk.

Sett sammen MakePython Lora og ESP32 for å lage en gateway som kan motta eksterne data og laste dem opp til Internett.

Trinn 7: Last ned kode

Last ned alle ‘xxx.py’ -filene fra WiKi og last dem opp til ESP32.

Åpne LoRaDuplexCallback.py -filen. Du må gjøre noen justeringer slik at ESP32 kan koble til nettverket og laste opp data til serveren.

Endre API_KEY du fikk i ThingSpeak (jeg vil presentere hvordan du får det senere)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Endre SSID og PSW for å koble til WiFi

ssid = "Makerfabs"

pswd = "20160704"

Trinn 8: Motta data

Finn funksjonen on_receive (lora, nyttelast) i LoRaDuplexCallback.py -filen, der du kan fortelle ESP32 hva du skal gjøre etter å ha mottatt dataene. Følgende kode analyserer og viser mottatte temperatur- og fuktighetsdata.

def on_receive (lora, nyttelast):

lora.blink_led () rssi = lora.packetRssi () prøve: length = len (nyttelast) -1 myStr = str ((nyttelast [4: lengde]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Mottatt melding *** / n {}". format (nyttelast)) hvis config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (nyttelast [4: lengde])), rssi) hvis wlan.isconnected (): global msgCount print ('Sender til nettverk …') node = int (str (nyttelast [5: 6], 'utf-8')) hvis node == 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) unntatt Unntak som e: print (e) print (" med RSSI {} n ".format (rssi))

Når vi skal dømme antallet for å skille noder og laste opp dataene til Internett via URL -en, kan vi når som helst overvåke fjerndataene til forskjellige noder. Du kan legge til flere noder og gjøre lignende endringer i koden.

hvis node == 0:

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

Trinn 9: Bruk ThingSpeak IoT

Bruk ThingSpeak IoT
Bruk ThingSpeak IoT
Bruk ThingSpeak IoT
Bruk ThingSpeak IoT
Bruk ThingSpeak IoT
Bruk ThingSpeak IoT

Trinn:

  1. Registrer deg på https://thingspeak.com/. Hvis du allerede har en, logger du på direkte.
  2. Klikk Ny kanal for å opprette en ny ThingSpeak -kanal.
  3. Inntastingsnavn, Beskrivelse, Velg felt 1. Lagre deretter kanalen nederst.
  4. Klikk på API Keys -alternativet, kopier API -nøkkelen, vi bruker den i programmet.

Trinn 10: Resultat

Resultat
Resultat
Resultat
Resultat
Resultat
Resultat

Du kan se dataene for node 0 og node 1 på skjermen, selv om de er 2 kilometer fra hverandre.

Logg deg på ThingSpeak -kontoen din og klikk på kanalen du opprettet, du kan se de opplastede temperatur- og fuktighetsdataene.

Field1 -grafen og field2 -grafene er fuktighets- og temperaturdataene til Lora -noden 0, og field3 -grafen og field4 -grafen er fuktighets- og temperaturdataene til Lora -noden 1.

Anbefalt: