Innholdsfortegnelse:
- Trinn 1: Rekvisita
- Trinn 2: LoRa Node
- Trinn 3: Tilkobling av node og sensor
- Trinn 4: Send data til gatewayen
- Trinn 5: MakePython Lora
- Trinn 6: LoRaWAN Gateway
- Trinn 7: Last ned kode
- Trinn 8: Motta data
- Trinn 9: Bruk ThingSpeak IoT
- Trinn 10: Resultat
Video: Lora Gateway Basert på MicroPython ESP32: 10 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
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
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
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 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
Trinn:
- Registrer deg på https://thingspeak.com/. Hvis du allerede har en, logger du på direkte.
- Klikk Ny kanal for å opprette en ny ThingSpeak -kanal.
- Inntastingsnavn, Beskrivelse, Velg felt 1. Lagre deretter kanalen nederst.
- Klikk på API Keys -alternativet, kopier API -nøkkelen, vi bruker den i programmet.
Trinn 10: 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:
MQTT Basert på MicroPython ESP32: 5 trinn
MQTT Basert på MicroPython ESP32: Jeg liker å holde kjæledyr. Etter en dag med intens arbeid kan katten slappe av når jeg kommer hjem. Etter hard trening har denne katten en god vane med å spise regelmessig i " restauranten " hver dag. Men nylig må jeg reise i noen dager og
Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: 8 trinn
Seriell UDP/IP -gateway for Arduino Basert på ESP8266 Shield: Jeg publiserte allerede i 2016 denne instruerbare "Hvordan lage din egen Wifi -gateway for å koble Arduino til IP -nettverk". Siden jeg gjorde noen kodeforbedringer og jeg fortsatt bruker denne løsningen. Likevel er det nå noen ESP8266 -skjold for
Arduino -basert ikke -kontakt infrarødt termometer - IR -basert termometer ved bruk av Arduino: 4 trinn
Arduino -basert ikke -kontakt infrarødt termometer | IR -basert termometer ved bruk av Arduino: Hei folkens i denne instruksjonsboken vil vi lage et kontaktfritt termometer ved hjelp av arduino. Siden noen ganger temperaturen på væsken/faststoffet er for høy eller for lav, og da er det vanskelig å få kontakt med det og lese dets temperaturen da i den situasjonen
MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): 7 trinn (med bilder)
MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): ** Oppdatering: Jeg la ut en ny video for v2 med en lanse ** Jeg er vert for Robotics-workshops for små barn, og jeg ser alltid etter økonomiske plattformer for å bygge spennende prosjekter. Selv om Arduino -kloner er billige, bruker de C/C ++ -språket om at barn ikke er
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch: 3 trinn (med bilder)
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch: Hva er Sonoff? Sonoff er en enhetslinje for Smart Home utviklet av ITEAD. En av de mest fleksible og rimelige enhetene fra den linjen er Sonoff Basic og Sonoff Dual. Dette er Wi-Fi-aktiverte brytere basert på en flott chip, ESP8266. Mens