INHOUDSOPGAWE:
- Stap 1: Voorrade
- Stap 2: LoRa Node
- Stap 3: Node- en sensorverbinding
- Stap 4: Stuur data na die gateway
- Stap 5: MakePython Lora
- Stap 6: LoRaWAN Gateway
- Stap 7: Laai kode af
- Stap 8: Ontvang data
- Stap 9: Gebruik ThingSpeak IoT
- Stap 10: Resultaat
Video: Lora Gateway Gebaseer op MicroPython ESP32: 10 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Lora was die afgelope paar jaar baie gewild. Die draadlose kommunikasiemodule wat hierdie tegnologie gebruik, is gewoonlik goedkoop (met gratis spektrum), klein, energie-doeltreffend en het 'n lang kommunikasie-afstand, en word hoofsaaklik gebruik vir onderlinge kommunikasie tussen IoT-terminale of data-uitruil met 'n gasheer. Daar is baie LoRa -modules op die mark, soos RFM96W, wat toegerus is met 'n SX1278 (versoenbare) chip, wat baie klein is. Ek gebruik dit met MakePython ESP32 as 'n poort.
Vervolgens gebruik ek twee LoRa -nodusse om die temperatuur- en humiditeitsdata na die gateway te stuur en dit dan via die gateway na die internet op te laai. Hier leer u hoe u eksterne data van verskeie LoRa -nodusse deur die gateway na die wolk kan oplaai.
Stap 1: Voorrade
1*MakePython ESP32
MakePython ESP32 is 'n ESP32 -bord met 'n geïntegreerde SSD1306 OLED -skerm.
2*Maduino LoRa Radio
Maduino Lora Radio is 'n IoT (Internet of Things) -oplossing gebaseer op die Atmel's Atmega328P MCU en Lora -module. Dit kan 'n werklike projek wees vir IoT-projekte (veral langafstand-toepassings met lae krag)
2*DHT11
1*MakePython Lora
Stap 2: LoRa Node
Dit is die skema van Maduino Lora Radio.
Arduino Lora Radio module as LoRa node, ons gebruik dit om temperatuur- en humiditeitsdata na die gateway te stuur.
(Hierdie WiKi stel bekend hoe u Maduino Lora Radio kan gebruik en data kan stuur en ontvang)
Stap 3: Node- en sensorverbinding
Die VCC en GND van DHT11 is gekoppel aan 3V3 en GND van Maduino, en die DATA -pen is gekoppel aan D4 van Maduino.
Node 0 is in die park, node 1 is in die kantoorgebou naby die onderneming, hulle is ongeveer 2 kilometer van mekaar af, en dan kry ek hul temperatuur- en humiditeitsdata tuis
Stap 4: Stuur data na die gateway
Laai TransmitterDHT11.ino af, maak dit oop op Arduino IDE.
As u 'n knoop byvoeg, moet u die nodienommer dienooreenkomstig verander. Gebruik byvoorbeeld nou 2 nodusse, die eerste knoop om die nodenum = 0 te verander om die program uit te voer, die tweede node om die nodenum = 1 te verander om die program uit te voer, ensovoorts, kan u meer knoop byvoeg.
int16_t packetnum = 0; // pakkieteller, ons vermeerder per gestuur
int16_t nodenum = 0; // Verander die node nommer
Versamel data en druk dit af
Stringboodskap = "#"+(String) nodenum+"Humidity:"+(String) humiditeit+"% Temperatuur:"+(String) temperatuur+"C"+"num:"+(String) packetnum; Serial.println (boodskap); packetnum ++;
Stuur 'n boodskap aan 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);
Maak die seriële monitor oop, u kan die versamelde data oor temperatuur en humiditeit sien en dit stuur.
#0 Humiditeit: 6.00% Temperatuur: 27.00C nommer: 0
Stuur: Stuur na rf95_server Stuur … Wag vir pakkie om te voltooi … Wag vir antwoord … Geen antwoord nie, is daar 'n luisteraar?
Sit dit eenkant, nou moet ons die Lora Gateway maak.
Stap 5: MakePython Lora
Dit is die ooreenstemmende pen van die RFM96W -module en MakePython ESP32. Om die verbinding met MakePython ESP32 te vergemaklik, het ek 'n printplaat gemaak met die RFM96W -module. Ja, daar is twee RFM96W daarop, wat data tegelyk kan stuur en ontvang, maar nou het ek net een nodig.
Stap 6: LoRaWAN Gateway
LoRaWAN is 'n lae-krag wye gebiedsnetwerk gebaseer op LoRa, wat een kan bied: lae kragverbruik, skaalbaarheid, hoë kwaliteit diens en veilige langafstand-draadlose netwerk.
Monteer MakePython Lora en ESP32 om 'n gateway te maak wat eksterne data kan ontvang en na die internet kan oplaai.
Stap 7: Laai kode af
Laai alle ‘xxx.py’ -lêers van WiKi af en laai dit op na ESP32.
Maak die LoRaDuplexCallback.py -lêer oop; u moet 'n paar aanpassings aanbring sodat u ESP32 met die netwerk kan koppel en data na die bediener kan oplaai.
Verander die API_KEY wat u in ThingSpeak verkry het (ek sal u later vertel hoe u dit kan kry)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Verander SSID en PSW om WiFi aan te sluit
ssid = "Makerfabs"
pswd = "20160704"
Stap 8: Ontvang data
Vind die funksie on_receive (lora, payload) in die LoRaDuplexCallback.py -lêer, waar u ESP32 kan vertel wat u moet doen nadat u die data ontvang het. Die volgende kode ontleed en vertoon die ontvangde data oor temperatuur en humiditeit.
def on_receive (lora, loonvrag):
lora.blink_led () rssi = lora.packetRssi () probeer: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(lengte1+1):(lengte1+6)] myNum2 = myStr [(lengte1+20):(lengte1+25)] druk ("*** Ontvangen boodskap *** / n {}". formaat (loonvrag)) as config_lora. IS_LORA_OLED: lora.show_packet (("{}". formaat (laai [4: lengte])), rssi) as wlan.isconnected (): globale msgCount print ('Stuur na netwerk …') node = int (str (payload [5: 6], 'utf-8')) as 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) behalwe Exception as e: print (e) print (" with RSSI {} n ".format (rssi))
As ons die nommer beoordeel om die nodusse te onderskei en die data via die URL na die internet op te laai, kan ons die afstanddata van verskillende nodusse te eniger tyd monitor. U kan meer nodusse byvoeg en soortgelyke veranderinge aan die kode aanbring.
as node == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) print (res.text)
Stap 9: Gebruik ThingSpeak IoT
Stappe:
- Teken 'n rekening aan op https://thingspeak.com/. As u reeds een het, meld direk aan.
- Klik op Nuwe kanaal om 'n nuwe ThingSpeak -kanaal te skep.
- Invoernaam, beskrywing, kies veld 1. Stoor dan die kanaal onderaan.
- Klik op die API sleutels opsie, kopieer die API sleutel, ons sal dit in die program gebruik.
Stap 10: Resultaat
U kan die data van knoop 0 en node 1 op die skerm sien, alhoewel dit 2 kilometer van mekaar is.
Teken in op u ThingSpeak -rekening en klik op die kanaal wat u geskep het, u kan die opgelaaide temperatuur- en humiditeitsdata sien.
Die veld1 -grafiek en die veld2 -grafieke is die humiditeits- en temperatuurdata van die Lora -node 0, en die veld3 -grafiek en die veld4 -grafiek is die humiditeits- en temperatuurdata van die Lora -node 1.
Aanbeveel:
Outomatiese model spoorweguitleg met twee treine (V2.0) - Arduino gebaseer: 15 stappe (met foto's)
Outomatiese model spoorweguitleg met twee treine (V2.0) | Arduino gebaseer: Die outomatisering van model spoorweguitlegte met behulp van Arduino mikrobeheerders is 'n uitstekende manier om mikrobeheerders, programmering en model spoorweë saam te voeg tot een stokperdjie. Daar is 'n klomp projekte beskikbaar om 'n trein outonoom op 'n modelrail te bestuur
MQTT Gebaseer op MicroPython ESP32: 5 stappe
MQTT Gebaseer op MicroPython ESP32: Ek hou daarvan om troeteldierkatte aan te hou. Na 'n dag se intense werk kan die kat my ontspan as ek by die huis kom. Na harde opleiding het hierdie kat 'n goeie gewoonte om gereeld in die " restaurant " elke dag. Maar onlangs moet ek 'n paar dae reis en
GPS -motorsporing met sms -kennisgewing en oplaai van Thingspeak -data, gebaseer op Arduino, tuisautomatisering: 5 stappe (met foto's)
GPS -motoropsporing met SMS -kennisgewing en oplaai van Thingspeak -data, op Arduino gebaseer, tuisautomatisering: ek het hierdie GPS -spoorsnyer verlede jaar gemaak, en aangesien dit goed werk, publiseer ek dit nou op Instructable. Dit is gekoppel aan die bykomstige prop in my bagasiebak. Die GPS -spoorsnyer laai die motor se posisie, spoed, rigting en die gemete temperatuur op via 'n mobiele data
Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield: 8 stappe
Seriële UDP/IP -gateway vir Arduino Gebaseer op ESP8266 Shield: Ek het reeds in 2016 hierdie instruksies gepubliseer "Hoe om jou eie Wifi -gateway te maak om jou Arduino aan IP -netwerk te koppel". Aangesien ek 'n paar kodeverbeterings aangebring het en ek steeds hierdie oplossing gebruik, is daar egter 'n paar ESP8266 -skilde
MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): 7 stappe (met foto's)
MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): ** Opdatering: Ek het 'n nuwe video vir v2 met 'n lans geplaas ** Ek bied Robotics-werkswinkels vir jong kinders aan en ek is altyd op soek na ekonomiese platforms om interessante projekte te bou. Alhoewel Arduino -klone goedkoop is, gebruik dit die C/C ++ taal dat kinders nie