Innehållsförteckning:
- Steg 1: Tillbehör
- Steg 2: LoRa -nod
- Steg 3: Nod- och sensoranslutning
- Steg 4: Skicka data till gatewayen
- Steg 5: MakePython Lora
- Steg 6: LoRaWAN Gateway
- Steg 7: Ladda ner koden
- Steg 8: Ta emot data
- Steg 9: Använd ThingSpeak IoT
- Steg 10: Resultat
Video: Lora Gateway Baserat på MicroPython ESP32: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Lora har varit mycket populär de senaste åren. Den trådlösa kommunikationsmodulen som använder denna teknik är vanligtvis billig (använder fritt spektrum), liten i storlek, energieffektiv och har ett långt kommunikationsavstånd och används främst för ömsesidig kommunikation mellan IoT-terminaler eller datautbyte med en värd. Det finns många LoRa -moduler på marknaden, till exempel RFM96W, som är utrustad med SX1278 (kompatibelt) chip, som är mycket litet. Jag använder den med MakePython ESP32 som en gateway.
Därefter kommer jag att använda två LoRa -noder för att skicka temperatur- och luftfuktighetsdata till gatewayen och sedan ladda upp den till Internet via gatewayen. Här lär du dig hur du laddar upp fjärrdata för flera LoRa -noder till molnet genom gatewayen.
Steg 1: Tillbehör
1*MakePython ESP32
MakePython ESP32 är ett ESP32 -kort med en integrerad SSD1306 OLED -skärm.
2*Maduino LoRa Radio
Maduino Lora Radio är en IoT (sakernas internet) lösning baserad på Atmels Atmega328P MCU och Lora -modul. Det kan vara ett riktigt projekt för IoT-projekt (särskilt applikationer med lång räckvidd och låg effekt)
2*DHT11
1*MakePython Lora
Steg 2: LoRa -nod
Detta är schemat över Maduino Lora Radio.
Arduino Lora Radio -modul som LoRa -nod, vi använder den för att skicka temperatur- och luftfuktighetsdata till gatewayen.
(Denna WiKi introducerar hur man använder Maduino Lora Radio och skickar och tar emot data)
Steg 3: Nod- och sensoranslutning
VCC och GND för DHT11 är anslutna till 3V3 och GND för Maduino, och DATA -stiftet är anslutet till D4 i Maduino.
Nod 0 är i parken, nod 1 ligger i kontorsbyggnaden nära företaget, de är ungefär 2 kilometer från varandra, och då får jag deras temperatur- och luftfuktighetsdata hemma
Steg 4: Skicka data till gatewayen
Ladda ner TransmitterDHT11.ino, öppna den på Arduino IDE.
När du lägger till en nod, ändra nodnumret i enlighet därmed. Till exempel, använd nu 2 noder, den första noden för att ändra nodenum = 0 för att köra programmet, den andra noden för att ändra nodenum = 1 för att köra programmet, och så vidare kan du lägga till mer nod.
int16_t packetnum = 0; // paketräknare, vi ökar per xmission
int16_t nodenum = 0; // Ändra nodnumret
Samla in data och skriv ut dem
Strängmeddelande = "#"+(String) nodenum+"Luftfuktighet:"+(Sträng) luftfuktighet+"% Temperatur:"+(String) temperatur+"C"+"num:"+(String) packetnum; Serial.println (meddelande); packetnum ++;
Skicka ett meddelande till rf95_server
uint8_t radioPacket [meddelande.längd ()+1];
message.toCharArray (radioPacket, message.length ()+1); radioPacket [message.length ()+1] = '\ 0'; rf95.send ((uint8_t *) radioPacket, message.length ()+1);
Öppna den seriella bildskärmen, du kan se de samlade temperatur- och luftfuktighetsdata och skicka ut den.
#0 Luftfuktighet: 6,00% Temperatur: 27,00C num: 0
Skicka: Skickar till rf95_server Skickar … Väntar på att paketet ska slutföras … Väntar på svar … Inget svar, finns det en lyssnare i närheten?
Lägg det åt sidan, nu måste vi göra Lora Gateway.
Steg 5: MakePython Lora
Detta är motsvarande stift för RFM96W -modulen och MakePython ESP32. För att underlätta anslutningen till MakePython ESP32 gjorde jag ett kretskort med RFM96W -modulen. Ja, det finns två RFM96W på den, som kan skicka och ta emot data samtidigt, men nu behöver jag bara en.
Steg 6: LoRaWAN Gateway
LoRaWAN är ett lågeffektsnät med stort område baserat på LoRa, som kan ge ett: låg energiförbrukning, skalbarhet, hög servicekvalitet och ett säkert trådlöst nätverk över långa avstånd.
Montera MakePython Lora och ESP32 för att skapa en gateway som kan ta emot fjärrdata och ladda upp den till Internet.
Steg 7: Ladda ner koden
Ladda ner alla xxx.py -filer från WiKi och ladda upp dem till ESP32.
Öppna LoRaDuplexCallback.py -filen. Du måste göra några justeringar så att din ESP32 kan ansluta till nätverket och ladda upp data till servern.
Ändra API_KEY som du fick i ThingSpeak (jag kommer att presentera hur du får det senare)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Ändra SSID och PSW för att ansluta WiFi
ssid = "Makerfabs"
pswd = "20160704"
Steg 8: Ta emot data
Hitta on_receive (lora, nyttolast) -funktionen i filen LoRaDuplexCallback.py, där du kan berätta för ESP32 vad du ska göra efter att ha tagit emot data. Följande kod analyserar och visar data om mottagen temperatur och luftfuktighet.
def on_receive (lora, nyttolast):
lora.blink_led () rssi = lora.packetRssi () försök: length = len (nyttolast) -1 myStr = str ((nyttolast [4: längd]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** mottaget meddelande *** / n {}". format (nyttolast)) om config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (nyttolast [4: längd])), rssi) om wlan.isconnected (): global msgCount print ('Skickar till nätverk …') nod = int (str (nyttolast [5: 6], 'utf-8')) om nod == 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) utom Undantag som e: print (e) print (" med RSSI {} n ".format (rssi))
Att döma antalet för att skilja noder och ladda upp data till Internet via URL: en, vi kan när som helst övervaka fjärrdata från olika noder. Du kan lägga till fler noder och göra liknande ändringar i koden.
om nod == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) print (res.text)
Steg 9: Använd ThingSpeak IoT
Steg:
- Registrera ett konto på https://thingspeak.com/. Om du redan har en, logga in direkt.
- Klicka på Ny kanal för att skapa en ny ThingSpeak -kanal.
- Inmatningsnamn, Beskrivning, Välj fält 1. Spara sedan kanalen längst ner.
- Klicka på alternativet API -nycklar, kopiera API -nyckeln, vi använder den i programmet.
Steg 10: Resultat
Du kan se data för nod 0 och nod 1 på skärmen, även om de är 2 kilometer från varandra.
Logga in på ditt ThingSpeak -konto och klicka på kanalen du skapade, du kan se uppladdade temperatur- och luftfuktighetsdata.
Fält1 -grafen och fält2 -graferna är luft- och temperaturdata för Lora -noden 0, och fält3 -grafen och fält4 -grafen är luft- och temperaturdata för Lora -noden 1.
Rekommenderad:
LoRa-baserat visuellt övervakningssystem för jordbruk Iot - Designa en frontad applikation med Firebase & Angular: 10 steg
LoRa-baserat visuellt övervakningssystem för jordbruk Iot | Designa en frontad applikation med Firebase & Angular: I föregående kapitel talar vi om hur sensorerna arbetar med loRa -modulen för att fylla i Firebase Realtime -databasen, och vi såg diagrammet på mycket hög nivå hur hela vårt projekt fungerar. I det här kapitlet kommer vi att prata om hur vi kan
MQTT Baserat på MicroPython ESP32: 5 steg
MQTT Baserat på MicroPython ESP32: Jag gillar att hålla huskatter. Efter en dag med intensivt arbete kan katten koppla av mig när jag kommer hem. Efter hård träning har den här katten en god vana att äta regelbundet i " restaurangen " varje dag. Men nyligen måste jag resa några dagar och
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: 8 steg
Seriell UDP/IP -gateway för Arduino Baserat på ESP8266 Shield: Jag publicerade redan 2016 denna instruerbara " Hur man gör din egen Wifi -gateway för att ansluta din Arduino till IP -nätverk ". Eftersom jag gjorde några kodförbättringar och jag fortfarande använder den här lösningen. Ändå finns det nu några ESP8266 -sköldar
MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX): 7 steg (med bilder)
MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX): ** Uppdatering: Jag lade upp en ny video för v2 med en lans ** Jag är värd för Robotics-workshops för små barn och jag letar alltid efter ekonomiska plattformar för att bygga spännande projekt. Medan Arduino -kloner är billiga använder den C/C ++ -språket som barn inte är
R-PiAlerts: Bygg ett WiFi-baserat säkerhetssystem med hallonpis: 8 steg (med bilder)
R-PiAlerts: Bygg ett WiFi-baserat säkerhetssystem med hallonpis: När du arbetar vid ditt skrivbord hör du plötsligt ett långt avstånd. Kom någon nyss hem? Min bil står parkerad framför mitt hus, har någon brutit sig in i min bil? Önskar du inte att du fick aviseringar på din telefon eller vid skrivbordet så att du kan bestämma var