Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Lora je posljednjih godina vrlo popularna. Bežični komunikacijski modul koji koristi ovu tehnologiju obično je jeftin (koristi slobodni spektar), male je veličine, energetski učinkovit i ima veliku komunikacijsku udaljenost, a uglavnom se koristi za međusobnu komunikaciju između IoT terminala ili razmjenu podataka s domaćinom. Na tržištu postoji mnogo LoRa modula, poput RFM96W, koji je opremljen SX1278 (kompatibilnim) čipom, koji je vrlo mali. Koristim ga sa MakePython ESP32 kao gateway.
Zatim ću koristiti dva LoRa čvora za slanje podataka o temperaturi i vlažnosti na gateway, a zatim ih učitati na Internet kroz gateway. Ovdje ćete naučiti kako učitati udaljene podatke više LoRa čvorova u oblak kroz gateway.
Korak 1: Potrošni materijal
1*MakePython ESP32
MakePython ESP32 je ESP32 ploča sa integrisanim SSD1306 OLED ekranom.
2*Maduino LoRa Radio
Maduino Lora Radio je IoT (Internet stvari) rješenje zasnovano na Atmelovom Atmega328P MCU i Lora modulu. To može biti pravi projekt za IoT projekte (posebno aplikacije dugog dometa, male snage)
2*DHT11
1*MakePython Lora
Korak 2: LoRa čvor
Ovo je shema radija Maduino Lora.
Arduino Lora Radio modul kao LoRa čvor, koristimo ga za slanje podataka o temperaturi i vlažnosti na pristupnik.
(Ovaj WiKi predstavlja kako koristiti Maduino Lora Radio i slati i primati podatke)
Korak 3: Povezivanje čvora i senzora
VCC i GND DHT11 spojeni su na 3V3 i GND u Maduinu, a DATA pin je spojen na D4 u Maduinu.
Čvor 0 je u parku, čvor 1 je u poslovnoj zgradi u blizini kompanije, udaljeni su oko 2 kilometra, a zatim dobijam njihove podatke o temperaturi i vlažnosti kod kuće
Korak 4: Pošaljite podatke na pristupnik
Preuzmite TransmitterDHT11.ino, otvorite ga na Arduino IDE.
Prilikom dodavanja čvora, prema tome izmijenite broj čvora. Na primjer, sada koristite 2 čvora, prvi čvor za izmjenu nodenum = 0 za pokretanje programa, drugi čvor za izmjenu nodenum = 1 za pokretanje programa, i tako dalje, možete dodati još čvora.
int16_t broj paketa = 0; // brojač paketa, povećavamo po emisiji
int16_t nodenum = 0; // Izmjena broja čvora
Prikupite podatke i odštampajte ih
Niz poruka = "#"+(Niz) nodenum+"Vlažnost:"+(Niz) vlažnost+"% Temperatura:"+(Niz) temperatura+"C"+"broj:"+(Niz) paketni broj; Serial.println (poruka); packetnum ++;
Pošaljite poruku na 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);
Otvorite serijski monitor, možete vidjeti prikupljene podatke o temperaturi i vlažnosti i poslati ih.
#0 Vlažnost: 6.00% Temperatura: 27.00C Broj: 0
Prenos: Slanje na rf95_server Slanje … Čeka se završetak paketa … Čeka se odgovor … Nema odgovora, ima li slušalaca u blizini?
Ostavite to po strani, sada moramo napraviti Lora Gateway.
Korak 5: MakePython Lora
Ovo je odgovarajući pin RFM96W modula i MakePython ESP32. Kako bih olakšao povezivanje s MakePythonom ESP32, napravio sam pločicu s modulom RFM96W. Da, na njemu se nalaze dva RFM96W, koji mogu slati i primati podatke u isto vrijeme, ali sada mi treba samo jedan.
Korak 6: LoRaWAN pristupnik
LoRaWAN je širokopojasna mreža male snage zasnovana na LoRa-i, koja može pružiti jednu: nisku potrošnju energije, skalabilnost, visoku kvalitetu usluge i sigurnu bežičnu mrežu na velike udaljenosti.
Sastavite MakePython Lora i ESP32 da napravite pristupnik koji može primati udaljene podatke i postavljati ih na Internet.
Korak 7: Preuzmite kôd
Preuzmite sve datoteke ‘xxx.py’ s WiKi -a i prenesite ih na ESP32.
Otvorite datoteku LoRaDuplexCallback.py. Morate napraviti neke prilagodbe kako bi se vaš ESP32 mogao povezati s mrežom i učitati podatke na poslužitelj.
Izmijenite API_KEY koji ste dobili u ThingSpeaku (kasnije ću vam predstaviti kako ga dobiti)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Izmijenite SSID i PSW za povezivanje WiFi -ja
ssid = "Proizvođači"
pswd = "20160704"
Korak 8: Primite podatke
Pronađite funkciju on_receive (lora, korisni teret) u datoteci LoRaDuplexCallback.py, gdje možete reći ESP32 šta treba učiniti nakon primitka podataka. Sljedeći kôd analizira i prikazuje primljene podatke o temperaturi i vlažnosti.
def on_receive (lora, korisni teret):
lora.blink_led () rssi = lora.packetRssi () try: length = len (korisni teret) -1 myStr = str ((korisni teret [4: dužina]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Primljena poruka *** / n {}". format (korisni teret)) ako je config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (korisni teret [4: dužina])), rssi) ako je wlan.isconnected (): globalno msgCount ispis ('Slanje na mrežu …') čvor = int (str (korisni teret [5: 6], 'utf-8')) ako je čvor == 0: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& polje1 = "+myNum1+" & field2 = "+myNum2 res = urequests.get (URL) ispis (res.text) elif čvor == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) print (res.text) osim izuzetka kao e: print (e) print (" sa RSSI {} n ".format (rssi))
Procjenjujući broj za razlikovanje čvorova i učitavajući podatke na Internet putem URL -a, u svakom trenutku možemo nadzirati udaljene podatke različitih čvorova. Možete dodati još čvorova i napraviti slične izmjene u kodu.
ako je čvor == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) print (res.text)
Korak 9: Koristite ThingSpeak IoT
Koraci:
- Registrirajte račun na https://thingspeak.com/. Prijavite se izravno ako ga već imate.
- Pritisnite Novi kanal da kreirate novi ThingSpeak kanal.
- Unesite naziv, opis, odaberite polje 1. Zatim spremite kanal na dnu.
- Kliknite opciju API ključevi, kopirajte API ključ, mi ćemo ga koristiti u programu.
Korak 10: Rezultat
Na ekranu možete vidjeti podatke čvora 0 i čvora 1, iako su udaljeni 2 kilometra.
Prijavite se na svoj ThingSpeak račun i kliknite na kanal koji ste stvorili, možete vidjeti učitane podatke o temperaturi i vlažnosti.
Grafikon polja 1 i grafikona polja 2 su podaci o vlažnosti i temperaturi Lora čvora 0, a grafikon polja 3 i grafikon polja 4 su podaci o vlažnosti i temperaturi čvora 1 Lora.
Preporučuje se:
Raketni bacač na bazi Alexa baziran na glasu: 9 koraka (sa slikama)
Raketni bacač na bazi Alexa baziran na glasu: Kako se približava zimska sezona; dolazi to doba godine kada se slavi festival svetla. Da, govorimo o Diwaliju koji je pravi indijski festival koji se slavi širom svijeta. Ove godine, Diwali je već završen i videće ljude
Telegram Bot baziran na ESP32: 7 koraka
Telegram Bot baziran na ESP32: Telegram je posvećen slobodi i otvorenim izvorima, najavio je novi Telegram bot API 2015. godine, koji je omogućio trećim stranama da stvore telegram botove za ESP32 koji koriste aplikaciju za razmjenu poruka kao svoje glavno komunikacijsko sučelje. To znači da smo
MQTT baziran na MicroPythonu ESP32: 5 koraka
MQTT Na osnovu MicroPythona ESP32: Volim držati kućne mačke. Nakon dana intenzivnog rada, mačka me može opustiti kad dođem kući. Nakon napornog treninga, ova mačka ima dobru naviku da redovno jede u " restoranu " svaki dan. Ali nedavno moram putovati na nekoliko dana i
Space Invaders u Micropythonu na Micro: bit: 5 koraka
Space Invaders u Micropythonu na Micro -u: bit: U našim prethodnim člancima istraživali smo izradu igara na GameGo -u, prenosivoj konzoli za igranje koju je razvilo TinkerGen obrazovanje. Igre koje smo napravili podsjećale su na stare Nintendo igre. U današnjem članku idemo korak unatrag do
ESP32 baziran M5Stack M5stick C Monitor vremena sa DHT11 - Pratite indeks vlažnosti i topline temperature na M5stick-C s DHT11: 6 koraka
ESP32 baziran M5Stack M5stick C Monitor vremena sa DHT11 | Pratite indeks vlažnosti i topline temperature na M5stick-C s DHT11: Zdravo momci, u ovom uputstvu naučit ćemo kako spojiti DHT11 osjetnik temperature s m5stick-C (razvojna ploča od m5stack) i prikazati ga na ekranu m5stick-C. Stoga ćemo u ovom vodiču čitati temperaturu, vlažnost i pojačanje; zagrijavam