Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
Lora a fost foarte populară în ultimii ani. Modulul de comunicație fără fir care utilizează această tehnologie este de obicei ieftin (utilizând spectru liber), de dimensiuni reduse, eficient din punct de vedere energetic și are o distanță mare de comunicare și este utilizat în principal pentru comunicarea reciprocă între terminalele IoT sau schimbul de date cu o gazdă. Există multe module LoRa pe piață, cum ar fi RFM96W, care este echipat cu cip SX1278 (compatibil), care este foarte mic. Îl folosesc cu MakePython ESP32 ca gateway.
Apoi, voi folosi două noduri LoRa pentru a trimite datele de temperatură și umiditate către gateway și apoi le voi încărca pe Internet prin gateway. Aici veți afla cum să încărcați date de la distanță ale mai multor noduri LoRa în cloud prin gateway.
Pasul 1: consumabile
1 * MakePython ESP32
MakePython ESP32 este o placă ESP32 cu un display SSD1306 OLED integrat.
2 * Maduino LoRa Radio
Maduino Lora Radio este o soluție IoT (Internet of Things) bazată pe modulul Atmel’s Atmega328P MCU și modulul Lora. Poate fi un proiect real pentru proiecte IoT (în special aplicații cu rază lungă de acțiune, cu consum redus de energie)
2 * DHT11
1 * MakePython Lora
Pasul 2: nodul LoRa
Aceasta este schema Radio Maduino Lora.
Modulul Arduino Lora Radio ca nod LoRa, îl folosim pentru a trimite date de temperatură și umiditate la gateway.
(Acest WiKi introduce modul de utilizare a Radio Maduino Lora și de trimitere și primire de date)
Pasul 3: Conexiune nod și senzor
VCC și GND din DHT11 sunt conectate la 3V3 și GND din Maduino, iar pinul DATA este conectat la D4 din Maduino.
Nodul 0 este în parc, nodul 1 se află în clădirea de birouri din apropierea companiei, sunt la aproximativ 2 kilometri distanță, iar apoi le primesc datele de temperatură și umiditate acasă
Pasul 4: Trimiteți date către Gateway
Descărcați TransmitterDHT11.ino, deschideți-l pe Arduino IDE.
Când adăugați un nod, modificați numărul nodului în consecință. De exemplu, utilizați acum 2 noduri, primul nod pentru a modifica nodenum = 0 pentru a rula programul, al doilea nod pentru a modifica nodenum = 1 pentru a rula programul și așa mai departe, puteți adăuga mai multe noduri.
int16_t packetnum = 0; // contor de pachete, creștem per xmission
int16_t nodenum = 0; // Modificați numărul nodului
Colectați date și imprimați-le
String message = "#" + (String) nodenum + "Umiditate:" + (String) umiditate + "% Temperatura:" + (String) temperature + "C" + "num:" + (String) packetnum; Serial.println (message); packetnum ++;
Trimiteți un mesaj către 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);
Deschideți monitorul serial, puteți vedea datele colectate de temperatură și umiditate și le puteți trimite.
# 0 Umiditate: 6.00% Temperatură: 27.00C num: 0
Transmit: Trimiterea către rf95_server Trimiterea … Se așteaptă finalizarea pachetului … Se așteaptă răspuns … Fără răspuns, există un ascultător în jur?
Lasă-l deoparte, acum trebuie să facem Lora Gateway.
Pasul 5: MakePython Lora
Acesta este pinul corespunzător al modulului RFM96W și al MakePython ESP32. Pentru a facilita conexiunea cu MakePython ESP32, am realizat o placă cu modulul RFM96W. Da, există două RFM96W pe el, care pot trimite și primi date în același timp, dar acum am nevoie doar de unul.
Pasul 6: Gateway LoRaWAN
LoRaWAN este o rețea cu suprafață redusă de consum redus, bazată pe LoRa, care poate oferi unul: consum redus de energie, scalabilitate, calitate ridicată a serviciului și rețea wireless sigură pe distanțe lungi.
Asamblați MakePython Lora și ESP32 pentru a crea un gateway care poate primi date la distanță și le poate încărca pe Internet.
Pasul 7: Descărcați codul
Descărcați toate fișierele ‘xxx.py’ din WiKi și încărcați-le în ESP32.
Deschideți fișierul LoRaDuplexCallback.py, trebuie să faceți unele ajustări, astfel încât ESP32 să se poată conecta la rețea și să încarce date pe server.
Modificați API_KEY pe care l-ați obținut în ThingSpeak (vă voi prezenta cum să îl obțineți mai târziu)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Modificați SSID și PSW pentru a conecta WiFi
ssid = "Makerfabs"
pswd = "20160704"
Pasul 8: Primiți date
Găsiți funcția on_receive (lora, payload) în fișierul LoRaDuplexCallback.py, unde puteți spune ESP32 ce trebuie să faceți după primirea datelor. Următorul cod analizează și afișează datele de temperatură și umiditate primite.
def on_receive (lora, sarcină utilă):
lora.blink_led () rssi = lora.packetRssi () try: 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 ("*** Mesaj primit *** / n {}". format (încărcare utilă)) dacă config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (încărcare utilă [4: lungime])), rssi) dacă wlan.isconnected (): msgCount global print ('Trimiterea către rețea …') nod = 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) nod elif == 1: URL =" https://api.thingspeak.com/update?api_key= "+ API_KEY +" & field3 = "+ myNum1 +" & field4 = "+ myNum2 res = urequests.get (URL) print (res.text) cu excepția excepției ca e: print (e) print (" cu RSSI {} n ".format (rssi))
Judecând numărul pentru a distinge nodurile și încărcând datele pe internet prin URL, putem monitoriza oricând datele de la distanță ale diferitelor noduri. Puteți adăuga mai multe noduri și puteți face modificări similare codului.
dacă nod == 0:
URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 =" + myNum1 + "& field2 =" + myNum2 res = urequests.get (URL) print (res.text)
Pasul 9: utilizați ThingSpeak IoT
Pași:
- Înscrieți-vă un cont în https://thingspeak.com/. Dacă aveți deja unul, conectați-vă direct.
- Faceți clic pe Canal nou pentru a crea un nou canal ThingSpeak.
- Numele de intrare, Descriere, Selectați câmpul 1. Apoi salvați canalul în partea de jos.
- Faceți clic pe opțiunea Chei API, copiați cheia API, o vom folosi în program.
Pasul 10: Rezultat
Puteți vedea datele nodului 0 și nodului 1 pe ecran, deși sunt la 2 kilometri distanță.
Conectați-vă la contul dvs. ThingSpeak și faceți clic pe canalul pe care l-ați creat, puteți vedea datele de temperatură și umiditate încărcate.
Graficul câmp1 și graficul câmp2 sunt datele privind umiditatea și temperatura nodului Lora 0, iar graficul câmp3 și graficul câmp4 sunt datele privind umiditatea și temperatura nodului Lora 1.
Recomandat:
MQTT Bazat pe MicroPython ESP32: 5 pași
MQTT Bazat pe MicroPython ESP32: Îmi place să păstrez pisici de companie. După o zi de muncă intensă, pisica mă poate relaxa când ajung acasă. După o antrenament intens, această pisică are un obicei bun de a mânca regulat în „restaurant”. în fiecare zi. Dar recent trebuie să călătoresc câteva zile și
Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield: 8 pași
Gateway UDP / IP serial pentru Arduino Bazat pe ESP8266 Shield: Am publicat deja în 2016 acest instructabil „Cum să-ți faci propriul gateway Wifi pentru a-ți conecta Arduino la rețeaua IP”. De când am făcut unele îmbunătățiri ale codului și încă mai folosesc această soluție. Cu toate acestea, există acum niște scuturi ESP8266 t
Generator de muzică bazat pe vreme (Generator Midi bazat pe ESP8266): 4 pași (cu imagini)
Generator de muzică bazat pe vreme (Generator midi bazat pe ESP8266): Bună, astăzi vă voi explica cum să vă creați propriul generator de muzică bazat pe vreme. Se bazează pe un ESP8266, care este un fel ca un Arduino și răspunde la temperatură, ploaie și intensitatea luminii. Nu vă așteptați să producă melodii întregi sau programe de acord
MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX): 7 pași (cu imagini)
MicroPython IoT Rover Bazat pe WEMOS D1 (ESP-8266EX): ** Actualizare: Am postat un nou videoclip pentru v2 cu o lance ** Găzduiesc ateliere de robotică pentru copii mici și sunt mereu în căutare de platforme economice pentru a construi proiecte interesante. În timp ce clonele Arduino sunt ieftine, folosește limbajul C / C ++ pe care copiii nu sunt
Cum să flashezi firmware-ul MicroPython pe un comutator inteligent Sonoff bazat pe ESP8266: 3 pași (cu imagini)
Cum să blochez firmware-ul MicroPython pe un switch inteligent Sonoff bazat pe ESP8266: Ce Sonoff Sonoff este o linie de dispozitive pentru Smart Home dezvoltată de ITEAD. Unul dintre cele mai flexibile și mai ieftine dispozitive din acea linie sunt Sonoff Basic și Sonoff Dual. Acestea sunt comutatoare activate Wi-Fi bazate pe un cip excelent, ESP8266. În timp ce