Sommario:
- Passaggio 1: materiali di consumo
- Passaggio 2: nodo LoRa
- Passaggio 3: collegamento tra nodi e sensori
- Passaggio 4: inviare dati al gateway
- Passaggio 5: MakePython Lora
- Passaggio 6: gateway LoRaWAN
- Passaggio 7: Scarica il codice
- Passaggio 8: ricezione dei dati
- Passaggio 9: utilizzare ThingSpeak IoT
- Passaggio 10: risultato
Video: Lora Gateway basato su MicroPython ESP32: 10 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Lora è stata molto popolare negli ultimi anni. Il modulo di comunicazione wireless che utilizza questa tecnologia è generalmente economico (utilizzando lo spettro libero), di piccole dimensioni, efficiente dal punto di vista energetico e ha una lunga distanza di comunicazione ed è utilizzato principalmente per la comunicazione reciproca tra terminali IoT o lo scambio di dati con un host. Ci sono molti moduli LoRa sul mercato, come RFM96W, che è dotato di chip SX1278 (compatibile), che è molto piccolo. Lo uso con MakePython ESP32 come gateway.
Successivamente, utilizzerò due nodi LoRa per inviare i dati di temperatura e umidità al gateway, quindi caricarli su Internet tramite il gateway. Qui imparerai come caricare i dati remoti di più nodi LoRa nel cloud attraverso il gateway.
Passaggio 1: materiali di consumo
1 * MakePython ESP32
MakePython ESP32 è una scheda ESP32 con display OLED SSD1306 integrato.
2*Maduino LoRa Radio
Maduino Lora Radio è una soluzione IoT (Internet delle cose) basata sull'MCU Atmega328P di Atmel e sul modulo Lora. Può essere un vero progetto per progetti IoT (in particolare applicazioni a lungo raggio e a bassa potenza)
2*DHT11
1 * MakePython Lora
Passaggio 2: nodo LoRa
Questo è lo schema di Radio Maduino Lora.
Modulo Arduino Lora Radio come nodo LoRa, lo usiamo per inviare i dati di temperatura e umidità al gateway.
(Questo WiKi introduce come utilizzare Maduino Lora Radio e inviare e ricevere dati)
Passaggio 3: collegamento tra nodi e sensori
Il VCC e GND di DHT11 sono collegati a 3V3 e GND di Maduino e il pin DATA è collegato a D4 di Maduino.
Il nodo 0 è nel parco, il nodo 1 è nell'edificio degli uffici vicino all'azienda, sono a circa 2 chilometri di distanza, quindi ricevo i loro dati di temperatura e umidità a casa
Passaggio 4: inviare dati al gateway
Scarica TransmitterDHT11.ino, aprilo su Arduino IDE.
Quando si aggiunge un nodo, modificare di conseguenza il numero del nodo. Ad esempio, ora usa 2 nodi, il primo nodo per modificare nodenum = 0 per eseguire il programma, il secondo nodo per modificare nodenum = 1 per eseguire il programma e così via, puoi aggiungere più nodi.
int16_t numeropacchetto = 0; // contatore di pacchetti, incrementiamo per xmission
int16_t numero nodo = 0; //Modifica il numero di nodo
Raccogli i dati e stampali
Stringa messaggio ="#"+(Stringa)nodenum+" Umidità:"+(Stringa)umidità+"% Temperatura:"+(Stringa)temperatura+"C"+" num:"+(Stringa)packetnum;Serial.println(messaggio); numeropacchetto++;
Invia un messaggio a 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);
Apri il monitor seriale, puoi vedere i dati di temperatura e umidità raccolti e inviarli.
#0 Umidità:6,00% Temperatura:27,00C num:0
Trasmissione: Invio a rf95_server Invio… In attesa del completamento del pacchetto… In attesa di risposta… Nessuna risposta, c'è un ascoltatore in giro?
Mettilo da parte, ora dobbiamo realizzare il Lora Gateway.
Passaggio 5: MakePython Lora
Questo è il pin corrispondente del modulo RFM96W e MakePython ESP32. Per facilitare la connessione con MakePython ESP32, ho realizzato un circuito con il modulo RFM96W. Sì, ci sono due RFM96W su di esso, che possono inviare e ricevere dati contemporaneamente, ma ora ne ho bisogno solo uno.
Passaggio 6: gateway LoRaWAN
LoRaWAN è una rete WAN a bassa potenza basata su LoRa, che può fornire uno: basso consumo energetico, scalabilità, alta qualità del servizio e rete wireless sicura a lunga distanza.
Assemblare MakePython Lora ed ESP32 per creare un gateway in grado di ricevere dati remoti e caricarli su Internet.
Passaggio 7: Scarica il codice
Scarica tutti i file "xxx.py" da WiKi e caricali su ESP32.
Apri il file LoRaDuplexCallback.py, devi apportare alcune modifiche in modo che ESP32 possa connettersi alla rete e caricare i dati sul server.
Modifica l'API_KEY che hai ottenuto in ThingSpeak (introdurrò come ottenerla in seguito)
#https://thingspeak.com/channels/1047479
API_KEY='UBHIRHVV9THUJVUI'
Modifica SSID e PSW per connettere WiFi
ssid = "Makerfabs"
pswd = "20160704"
Passaggio 8: ricezione dei dati
Trova la funzione on_receive (lora, payload) nel file LoRaDuplexCallback.py, dove puoi dire a ESP32 cosa fare dopo aver ricevuto i dati. Il codice seguente analizza e visualizza i dati di temperatura e umidità ricevuti.
def on_receive(lora, carico utile):
lora.blink_led() rssi = lora.packetRssi() try: length=len(payload)-1 myStr=str((payload[4:length]), 'utf-8') length1=myStr.find(':') mioNum1=mioStr[(lunghezza1+1):(lunghezza1+6)] mioNum2=mioStr[(lunghezza1+20):(lunghezza1+25)] print("*** Messaggio ricevuto ***\n{}". format(payload)) if config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:length])), rssi) if wlan.isconnected(): global msgCount print('Invio alla rete…') 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) tranne Eccezione come e: print(e) print("with RSSI {}\n".format(rssi))
Giudicando il numero per distinguere i nodi e caricando i dati su Internet tramite l'URL, possiamo monitorare i dati remoti di diversi nodi in qualsiasi momento. Puoi aggiungere più nodi e apportare modifiche simili al codice.
se nodo == 0:
URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1="+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text)
Passaggio 9: utilizzare ThingSpeak IoT
Passaggi:
- Registra un account in https://thingspeak.com/. Se ne hai già uno, accedi direttamente.
- Fare clic su Nuovo canale per creare un nuovo canale ThingSpeak.
- Immettere il nome, la descrizione, selezionare il campo 1. Quindi salvare il canale in basso.
- Fare clic sull'opzione Chiavi API, copiare la chiave API, la useremo nel programma.
Passaggio 10: risultato
Puoi vedere i dati del nodo 0 e del nodo 1 sullo schermo, sebbene siano distanti 2 chilometri.
Accedi al tuo account ThingSpeak e fai clic sul canale che hai creato, puoi vedere i dati di temperatura e umidità caricati.
Il grafico field1 e i grafici field2 sono i dati di umidità e temperatura del nodo Lora 0, e il grafico field3 e il grafico field4 sono i dati di umidità e temperatura del nodo Lora 1.
Consigliato:
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
MicroPython IoT Rover basato su WEMOS D1 (ESP-8266EX): 7 passaggi (con immagini)
MicroPython IoT Rover Basato su WEMOS D1 (ESP-8266EX): **Aggiornamento: ho pubblicato un nuovo video per v2 con una lancia **Ospito laboratori di robotica per bambini piccoli e sono sempre alla ricerca di piattaforme economiche per costruire progetti intriganti. Mentre i cloni di Arduino sono economici, usa il linguaggio C/C++ che i bambini non sono
Orologio con animazione LED SMART connesso al Web con pannello di controllo basato sul Web, server dell'ora sincronizzato: 11 passaggi (con immagini)
Orologio con animazione LED SMART connesso al Web con pannello di controllo basato sul Web, server dell'ora sincronizzato: la storia di questo orologio risale a molto tempo fa, più di 30 anni. Mio padre è stato il pioniere di questa idea quando avevo solo 10 anni, molto prima della rivoluzione dei LED, quando i LED erano 1/1000 della luminosità della loro attuale brillantezza accecante. Un vero
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: 3 passaggi (con immagini)
Come eseguire il flashing del firmware MicroPython su uno smart switch Sonoff basato su ESP8266: cos'è Sonoff? Sonoff è una linea di dispositivi per Smart Home sviluppata da ITEAD. Uno dei dispositivi più flessibili ed economici di quella linea sono Sonoff Basic e Sonoff Dual. Questi sono switch abilitati Wi-Fi basati su un ottimo chip, ESP8266. mentre