Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Lora is de laatste jaren erg populair. De draadloze communicatiemodule die gebruik maakt van deze technologie is meestal goedkoop (gebruikt vrij spectrum), klein van formaat, energiezuinig en heeft een grote communicatieafstand, en wordt vooral gebruikt voor onderlinge communicatie tussen IoT-terminals of data-uitwisseling met een host. Er zijn veel LoRa-modules op de markt, zoals RFM96W, die is uitgerust met een SX1278 (compatibele) chip, die erg klein is. Ik gebruik het met MakePython ESP32 als gateway.
Vervolgens zal ik twee LoRa-knooppunten gebruiken om de temperatuur- en vochtigheidsgegevens naar de gateway te sturen en deze vervolgens via de gateway naar internet te uploaden. Hier leert u hoe u externe gegevens van meerdere LoRa-knooppunten via de gateway naar de cloud kunt uploaden.
Stap 1: Benodigdheden
1*Maak Python ESP32
MakePython ESP32 is een ESP32-bord met een geïntegreerd SSD1306 OLED-scherm.
2*Maduino LoRa-radio
Maduino Lora Radio is een IoT-oplossing (Internet of Things) op basis van de Atmega328P MCU en Lora-module van Atmel. Het kan een echt project zijn voor IoT-projecten (vooral langeafstandstoepassing met laag vermogen)
2*DHT11
1*Maak Python Lora
Stap 2: LoRa-knooppunt
Dit is het schema van Maduino Lora Radio.
Arduino Lora Radio-module als LoRa-knooppunt, we gebruiken het om temperatuur- en vochtigheidsgegevens naar de gateway te sturen.
(Deze WiKi introduceert hoe je Maduino Lora Radio gebruikt en gegevens verzendt en ontvangt)
Stap 3: Knooppunt- en sensorverbinding
De VCC en GND van DHT11 zijn verbonden met 3V3 en GND van Maduino, en de DATA-pin is verbonden met D4 van Maduino.
Knooppunt 0 is in het park, knooppunt 1 bevindt zich in het kantoorgebouw bij het bedrijf, ze zijn ongeveer 2 kilometer van elkaar verwijderd, en dan krijg ik hun temperatuur- en vochtigheidsgegevens thuis
Stap 4: Gegevens naar de gateway verzenden
Download TransmitterDHT11.ino, open het op Arduino IDE.
Pas bij het toevoegen van een knooppunt het knooppuntnummer dienovereenkomstig aan. Gebruik nu bijvoorbeeld 2 knooppunten, het eerste knooppunt om het knooppunt = 0 te wijzigen om het programma uit te voeren, het tweede knooppunt om het knooppunt = 1 te wijzigen om het programma uit te voeren, enzovoort, u kunt meer knooppunten toevoegen.
int16_t pakketnummer = 0; // pakketteller, we verhogen per xmission
int16_t knoop = 0; // Wijzig het knooppuntnummer
Gegevens verzamelen en afdrukken
String message ="#"+(String)nodenum+" Vochtigheid:"+(String)humidity+"% Temperatuur:"+(String)temperature+"C"+" num:"+(String)packetnum;Serial.println(message); pakketnummer++;
Stuur een bericht naar rf95_server
uint8_t radioPacket[bericht.length()+1];
message.toCharArray(radioPacket, message.length()+1); radioPacket[bericht.length()+1]= '\0'; rf95.send((uint8_t *)radioPacket, message.length()+1);
Open de seriële monitor, u kunt de verzamelde temperatuur- en vochtigheidsgegevens bekijken en verzenden.
#0 Vochtigheid:6.00% Temperatuur:27.00C num:0
Verzenden: Verzenden naar rf95_server Verzenden… Wachten tot het pakket is voltooid… Wachten op antwoord… Geen antwoord, is er een luisteraar?
Leg het opzij, nu moeten we de Lora Gateway maken.
Stap 5: Maak Python Lora aan
Dit is de corresponderende pin van de RFM96W-module en MakePython ESP32. Om de verbinding met MakePython ESP32 te vergemakkelijken, heb ik een printplaat gemaakt met de RFM96W-module. Ja, er zitten twee RFM96W's op, die tegelijkertijd gegevens kunnen verzenden en ontvangen, maar nu heb ik er maar één nodig.
Stap 6: LoRaWAN-gateway
LoRaWAN is een low-power wide-area netwerk op basis van LoRa, dat één kan bieden: laag stroomverbruik, schaalbaarheid, hoge servicekwaliteit en veilig draadloos langeafstandsnetwerk.
Stel MakePython Lora en ESP32 samen om een gateway te maken die externe gegevens kan ontvangen en naar internet kan uploaden.
Stap 7: Code downloaden
Download alle 'xxx.py'-bestanden van WiKi en upload ze naar ESP32.
Open het bestand LoRaDuplexCallback.py. U moet enkele aanpassingen maken zodat uw ESP32 verbinding kan maken met het netwerk en gegevens naar de server kan uploaden.
Wijzig de API_KEY die u in ThingSpeak hebt verkregen (ik zal later introduceren hoe u deze kunt verkrijgen)
#https://thingspeak.com/channels/1047479
API_KEY='UBHIRHVV9THUJVUI'
Wijzig SSID en PSW om wifi te verbinden
ssid = "Makerfabrieken"
pswd = "20160704"
Stap 8: Gegevens ontvangen
Zoek de functie on_receive (lora, payload) in het bestand LoRaDuplexCallback.py, waar u ESP32 kunt vertellen wat te doen na ontvangst van de gegevens. De volgende code analyseert en toont de ontvangen temperatuur- en vochtigheidsgegevens.
def on_receive(lora, lading):
lora.blink_led() rssi = lora.packetRssi() probeer: length=len(payload)-1 myStr=str((payload[4:length]), 'utf-8') length1=myStr.find(':') myNum1=myStr[(length1+1):(length1+6)] myNum2=myStr[(length1+20):(length1+25)] print("*** Bericht ontvangen ***\n{}". format(payload)) if config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:length])), rssi) if wlan.isconnected(): global msgCount print('Verzenden naar netwerk…') node = int(str(payload[5:6], 'utf-8')) if 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) uitzondering als e: print(e) print("with RSSI {}\n".format(rssi))
Door het aantal te beoordelen om de knooppunten te onderscheiden en de gegevens via de URL naar internet te uploaden, kunnen we de externe gegevens van verschillende knooppunten op elk moment controleren. U kunt meer knooppunten toevoegen en soortgelijke wijzigingen in de code aanbrengen.
als knooppunt == 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
Stappen:
- Maak een account aan op https://thingspeak.com/. Als je er al een hebt, meld je dan direct aan.
- Klik op Nieuw kanaal om een nieuw ThingSpeak-kanaal te maken.
- Voer naam in, Beschrijving, Selecteer veld 1. Sla vervolgens het kanaal onderaan op.
- Klik op de optie API-sleutels, kopieer de API-sleutel, we zullen deze in het programma gebruiken.
Stap 10: Resultaat
Je kunt de gegevens van knooppunt 0 en knooppunt 1 op het scherm zien, hoewel ze 2 kilometer van elkaar verwijderd zijn.
Log in op je ThingSpeak-account en klik op het kanaal dat je hebt gemaakt, je kunt de geüploade temperatuur- en vochtigheidsgegevens zien.
De veld1-grafiek en de veld2-grafieken zijn de vochtigheids- en temperatuurgegevens van het Lora-knooppunt 0, en de veld3-grafiek en de veld4-grafiek zijn de vochtigheids- en temperatuurgegevens van het Lora-knooppunt 1.
Aanbevolen:
Op LoRa gebaseerd visueel bewakingssysteem voor landbouw Iot - Een fronted applicatie ontwerpen met Firebase & Angular: 10 stappen
Op LoRa gebaseerd visueel bewakingssysteem voor landbouw Iot | Een fronted-applicatie ontwerpen met Firebase & Angular: In het vorige hoofdstuk hebben we het gehad over hoe de sensoren werken met de loRa-module om de Firebase Realtime-database te vullen, en we hebben het diagram op zeer hoog niveau gezien hoe ons hele project werkt. In dit hoofdstuk gaan we het hebben over hoe we
Lora Gateway (Dragino LG01-P): 6 stappen
Lora Gateway (Dragino LG01-P): LoRa es een rode LPWAN, por sus siglas en inglés (LOW POWER WIDE AREA NETWORK). Es una red de largo alcance y bajo consumo de energy, ideal para dispositivos IoT. Entre las aplicaciones más comunes se encuentran; Ciudades inteligentes, Landbouw
ESP32 met E32-433T LoRa-module zelfstudie - LoRa Arduino-interface: 8 stappen
ESP32 met E32-433T LoRa-module zelfstudie | LoRa Arduino-interface: Hé, wat is er, jongens! Akarsh hier van CETech. Dit project van mij is een interface met de E32 LoRa-module van eByte, een krachtige 1-watt transceivermodule met een ESP32 met behulp van Arduino IDE. We begrepen de werking van de E32 in onze laatste tutorial
Huishoudelijke apparaten bedienen via LoRa - LoRa in Domotica - LoRa-afstandsbediening: 8 stappen
Huishoudelijke apparaten bedienen via LoRa | LoRa in Domotica | LoRa-afstandsbediening: bedien en automatiseer uw elektrische apparaten vanaf lange afstanden (kilometers) zonder de aanwezigheid van internet. Dit kan via LoRa! Hé, wat is er, jongens? Akarsh hier van CETech. Ook deze print heeft een OLED-display en 3 relais die een
MicroPython IoT Rover gebaseerd op WEMOS D1 (ESP-8266EX): 7 stappen (met afbeeldingen)
MicroPython IoT Rover Gebaseerd op WEMOS D1 (ESP-8266EX): ** Update: ik heb een nieuwe video voor v2 met een lans gepost **Ik organiseer Robotica-workshops voor jonge kinderen en ik ben altijd op zoek naar goedkope platforms om intrigerende projecten te bouwen. Hoewel Arduino-klonen goedkoop zijn, gebruikt het de C / C ++ -taal die kinderen niet zijn