Turinys:
- 1 žingsnis: reikmenys
- 2 žingsnis: „LoRa“mazgas
- 3 žingsnis: mazgų ir jutiklių prijungimas
- 4 žingsnis: Siųskite duomenis į „Gateway“
- 5 žingsnis: „MakePython Lora“
- 6 veiksmas: „LoRaWAN Gateway“
- 7 veiksmas: atsisiųskite kodą
- 8 veiksmas: gaukite duomenis
- 9 veiksmas: naudokite „ThingSpeak IoT“
- 10 žingsnis: rezultatas
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:58
Lora pastaraisiais metais buvo labai populiari. Belaidžio ryšio modulis, naudojant šią technologiją, paprastai yra pigus (naudojant laisvą spektrą), mažo dydžio, efektyvus energijos vartojimui ir turi didelį ryšio atstumą, daugiausia naudojamas abipusiam ryšiui tarp daiktų interneto terminalų arba keistis duomenimis su pagrindiniu kompiuteriu. Rinkoje yra daug „LoRa“modulių, pvz., RFM96W, kuriame yra labai mažas SX1278 (suderinamas) lustas. Aš naudoju jį su „MakePython ESP32“kaip vartai.
Toliau aš naudosiu du „LoRa“mazgus, norėdamas nusiųsti temperatūros ir drėgmės duomenis į šliuzą, o po to įkelsiu juos į internetą per šliuzą. Čia jūs sužinosite, kaip įkelti debesį per „Latea“kelių LoRa mazgų nuotolinius duomenis.
1 žingsnis: reikmenys
1*„MakePython ESP32“
„MakePython ESP32“yra ESP32 plokštė su integruotu SSD1306 OLED ekranu.
2*„Maduino LoRa“radijas
„Maduino Lora“radijas yra daiktų interneto (daiktų interneto) sprendimas, pagrįstas „Atmel“„Atmega328P MCU“ir „Lora“moduliais. Tai gali būti tikras IoT projektų projektas (ypač didelio nuotolio, mažos galios programa)
2*DHT11
1*„MakePython Lora“
2 žingsnis: „LoRa“mazgas
Tai yra „Maduino Lora“radijo schema.
„Arduino Lora“radijo modulį kaip „LoRa“mazgą, mes jį naudojame temperatūros ir drėgmės duomenims siųsti į vartus.
(Šiame „WiKi“pristatoma, kaip naudotis „Maduino Lora“radiju ir siųsti bei gauti duomenis)
3 žingsnis: mazgų ir jutiklių prijungimas
DHT11 VCC ir GND yra prijungti prie Maduino 3V3 ir GND, o DATA kaištis prijungtas prie Maduino D4.
Node 0 yra parke, 1 mazgas yra biurų pastate netoli įmonės, jie yra maždaug 2 kilometrų atstumu, tada aš gaunu jų temperatūros ir drėgmės duomenis namuose
4 žingsnis: Siųskite duomenis į „Gateway“
Atsisiųskite „TransmitterDHT11.ino“, atidarykite jį „Arduino IDE“.
Pridėdami mazgą, atitinkamai pakeiskite mazgo numerį. Pavyzdžiui, dabar naudokite 2 mazgus, pirmąjį mazgą, skirtą modifikuoti mazgą = 0, kad paleistumėte programą, antrąjį mazgą, kad pakeistumėte mazgą = 1, kad paleistumėte programą ir pan., Galite pridėti daugiau mazgų.
int16_t paketo numeris = 0; // paketų skaitiklis, mes didiname kiekvieną kartą
int16_t nodenum = 0; // Keisti mazgo numerį
Surinkite duomenis ir atsispausdinkite
Stygos pranešimas = "#"+(Styginių) mazgas+"Drėgmė:"+(Styginių) drėgmė+"% Temperatūra:"+(Styginių) temperatūra+"C"+"num:"+(String) paketo numeris; Serial.println (pranešimas); paketo numeris ++;
Siųskite pranešimą į 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);
Atidarykite serijinį monitorių, galite matyti surinktus temperatūros ir drėgmės duomenis ir juos išsiųsti.
#0 Drėgmė: 6.00% Temperatūra: 27.00C num: 0
Persiųsti: siunčiama į rf95_server Siunčiama … Laukiama, kol paketas bus baigtas … Laukiama atsakymo … Nėra atsakymo, ar šalia yra klausytojas?
Atidėkite jį, dabar turime padaryti „Lora Gateway“.
5 žingsnis: „MakePython Lora“
Tai yra atitinkamas RFM96W modulio ir „MakePython ESP32“kaištis. Kad būtų lengviau prisijungti prie „MakePython ESP32“, sukūriau plokštę su RFM96W moduliu. Taip, jame yra du RFM96W, kurie vienu metu gali siųsti ir gauti duomenis, bet dabar man reikia tik vieno.
6 veiksmas: „LoRaWAN Gateway“
„LoRaWAN“yra mažos galios plačiajuostis tinklas, pagrįstas „LoRa“, kuris gali suteikti vieną: mažos energijos sąnaudos, mastelio keitimas, aukšta paslaugų kokybė ir saugus tolimojo ryšio belaidis tinklas.
Surinkite „MakePython Lora“ir „ESP32“, kad sukurtumėte vartus, kurie galėtų priimti nuotolinius duomenis ir įkelti juos į internetą.
7 veiksmas: atsisiųskite kodą
Atsisiųskite visus „xxx.py“failus iš „WiKi“ir įkelkite juos į ESP32.
Atidarykite failą LoRaDuplexCallback.py. Turite atlikti kai kuriuos pakeitimus, kad jūsų ESP32 galėtų prisijungti prie tinklo ir įkelti duomenis į serverį.
Pakeiskite „ThingSpeak“gautą API_KEY (vėliau pristatysiu, kaip jį gauti)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Norėdami prijungti „WiFi“, pakeiskite SSID ir PSW
ssid = "Gamintojai"
pswd = "20160704"
8 veiksmas: gaukite duomenis
„LoRaDuplexCallback.py“faile raskite funkciją on_recept (lora, payload), kur galite nurodyti ESP32, ką daryti gavus duomenis. Šis kodas analizuoja ir rodo gautus temperatūros ir drėgmės duomenis.
def on_recept (lora, naudingoji apkrova):
lora.blink_led () rssi = lora.packetRssi () pabandykite: length = len (payload) -1 myStr = str ((naudingoji apkrova [4: ilgis]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(ilgis1+1):(ilgis1+6)] myNum2 = myStr [(ilgis1+20):(ilgis1+25)] print ("*** Gautas pranešimas *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Siunčiamas tinklui …') mazgas = int (str (naudingoji apkrova [5: 6], 'utf-8'))) jei mazgas == 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) spausdinti (res.text), išskyrus išimtį kaip e: print (e) print (" su RSSI {} n ".format (rssi))
Sprendžiant pagal skaičių, kad būtų galima atskirti mazgus, ir įkeliant duomenis į internetą per URL, mes galime bet kuriuo metu stebėti nuotolinius skirtingų mazgų duomenis. Galite pridėti daugiau mazgų ir atlikti panašius kodo pakeitimus.
jei mazgas == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) spausdinti (res.text)
9 veiksmas: naudokite „ThingSpeak IoT“
Žingsniai:
- Užregistruokite paskyrą https://thingspeak.com/. Jei jau turite, prisijunkite tiesiogiai.
- Spustelėkite Naujas kanalas, kad sukurtumėte naują „ThingSpeak“kanalą.
- Įvesties pavadinimas, Aprašymas, Pasirinkite 1 lauką. Tada išsaugokite kanalą apačioje.
- Spustelėkite parinktį API raktai, nukopijuokite API raktą, mes jį naudosime programoje.
10 žingsnis: rezultatas
Ekrane galite matyti 0 ir 1 mazgo duomenis, nors jie yra 2 kilometrų atstumu.
Prisijunkite prie „ThingSpeak“paskyros ir spustelėkite kanalą, kurį sukūrėte, ir pamatysite įkeltus temperatūros ir drėgmės duomenis.
Lauko 1 grafikas ir lauko 2 grafikas yra „Lora“mazgo 0 drėgmės ir temperatūros duomenys, o 3 lauko ir 4 lauko grafikas - 1 „Loros“mazgo drėgmės ir temperatūros duomenys.
Rekomenduojamas:
„Apple HomeKit“belaidis sausintuvas, pagrįstas ESP8266?: 6 žingsniai (su paveikslėliais)
„Apple HomeKit“„Wi-Fi“sausintuvas, pagrįstas ESP8266?: Deja, yra tik vienas ar du sausintuvai, palaikantys „Apple HomeKit“, tačiau jų kainos yra tikrai didelės (300 USD+). Taigi aš nusprendžiau sukurti savo „Wi-Fi“palaikantį „Apple HomeKit“sausintuvą pagal pigų, kurį jau turiu? Aš
MQTT, pagrįstas „MicroPython ESP32“: 5 žingsniai
MQTT Remiantis „MicroPython ESP32“: man patinka laikyti namines kates. Po intensyvaus darbo dienos katė gali mane atpalaiduoti, kai grįšiu namo. Po sunkios treniruotės ši katė turi gerą įprotį reguliariai valgyti " restorane " kiekvieną dieną. Tačiau pastaruoju metu turiu keliauti kelias dienas ir
Naudokite „Homie“programinę įrangą „Sonoff“jungiklio moduliui vairuoti (pagrįstas ESP8266): 5 žingsniai (su paveikslėliais)
Naudokite „Homie“programinę įrangą „Sonoff“jungiklio moduliui vairuoti (pagrįstas ESP8266): tai yra tolesnis nurodymas, kurį parašiau šiek tiek po to, kai sukūrėte „Homie“įrenginius, skirtus daiktų internetui ar namų automatizavimui “. Vėliau buvo sutelktas dėmesys į pagrindinį stebėjimą (DHT22, DS18B20, šviesa) aplink D1 Mini plokštes. Šį kartą norėčiau parodyti, kaip
„MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): 7 žingsniai (su nuotraukomis)
„MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): ** Atnaujinimas: paskelbiau naują vaizdo įrašą, skirtą „v2“su lankstu ** Aš vedu robotų dirbtuves mažiems vaikams ir visada ieškau ekonomiškų platformų įdomiems projektams kurti. Nors „Arduino“klonai yra pigūs, jie naudoja C/C ++ kalbą, kuria vaikai nėra
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba: 6 žingsniai (su paveikslėliais)
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba: Šis 3D skaitytuvas buvo pagamintas naudojant pigius įprastus elementus, tokius kaip vaizdo projektorius ir internetinės kameros. Struktūrinės šviesos 3D skaitytuvas yra 3D nuskaitymo įrenginys, skirtas išmatuoti trimatę objekto formą, naudojant projektuojamus šviesos modelius ir fotoaparato sistemą