Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:08
Lora je v zadnjih letih zelo priljubljena. Brezžični komunikacijski modul, ki uporablja to tehnologijo, je običajno poceni (z uporabo prostega spektra), majhen, energetsko učinkovit in ima veliko komunikacijsko razdaljo ter se uporablja predvsem za medsebojno komunikacijo med terminali IoT ali izmenjavo podatkov z gostiteljem. Na trgu je veliko modulov LoRa, na primer RFM96W, ki je opremljen s SX1278 (združljivim) čipom, ki je zelo majhen. Uporabljam ga z MakePython ESP32 kot prehodom.
Nato bom uporabil dve vozlišči LoRa za pošiljanje podatkov o temperaturi in vlažnosti na prehod in jih nato naložil na internet prek prehoda. Tu se boste naučili, kako naložiti oddaljene podatke več vozlišč LoRa v oblak skozi prehod.
1. korak: Zaloge
1*MakePython ESP32
MakePython ESP32 je plošča ESP32 z vgrajenim zaslonom OLED SSD1306.
2*Radio Maduino LoRa
Maduino Lora Radio je IoT (Internet of Things) rešitev, ki temelji na Atmelovem Atmega328P MCU in modulu Lora. To je lahko resničen projekt za projekte IoT (zlasti za aplikacije z nizko porabo na dolge razdalje)
2*DHT11
1*MakePython Lora
2. korak: vozlišče LoRa
To je shema radia Maduino Lora.
Arduino Lora Radio modul kot vozlišče LoRa, ga uporabljamo za pošiljanje podatkov o temperaturi in vlažnosti do prehoda.
(Ta WiKi uvaja, kako uporabljati radio Maduino Lora in pošiljati ter prejemati podatke)
3. korak: Povezava vozlišča in senzorja
VCC in GND DHT11 sta priključena na 3V3 in GND v Maduinu, pin DATA pa na D4 v Maduinu.
Vozlišče 0 je v parku, vozlišče 1 je v poslovni stavbi v bližini podjetja, oddaljena sta približno 2 kilometra, nato pa doma dobim njihove podatke o temperaturi in vlažnosti
4. korak: Pošljite podatke na prehod
Prenesite TransmitterDHT11.ino, odprite ga v Arduino IDE.
Ko dodajate vozlišče, ustrezno spremenite številko vozlišča. Zdaj na primer uporabite 2 vozlišča, prvo vozlišče za spreminjanje nodenum = 0 za zagon programa, drugo vozlišče za spreminjanje nodenum = 1 za zagon programa in tako naprej, lahko dodate še eno vozlišče.
int16_t številka paketa = 0; // števec paketov, prirast na xmission
int16_t nodenum = 0; // Spremenite številko vozlišča
Zberite podatke in jih natisnite
Sporočilo o nizu = "#"+(String) nodenum+"Vlažnost:"+(String) vlažnost+"% Temperatura:"+(String) temperatura+"C"+"num:"+(String) paketno število; Serial.println (sporočilo); packetnum ++;
Pošljite sporočilo na strežnik 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);
Odprite serijski monitor in si oglejte zbrane podatke o temperaturi in vlažnosti ter jih pošljite.
#0 Vlažnost: 6,00% Temperatura: 27,00C Število: 0
Oddaja: Pošiljanje na rf95_server Pošiljanje … Čakanje na dokončanje paketa … Čakanje na odgovor … Brez odgovora, ali je poslušalec v bližini?
Odložimo, zdaj moramo narediti Lora Gateway.
5. korak: MakePython Lora
To je ustrezen pin modula RFM96W in MakePython ESP32. Da bi olajšal povezavo z MakePython ESP32, sem izdelal vezje z modulom RFM96W. Da, na njem sta dva RFM96W, ki lahko pošiljata in prejemata podatke hkrati, zdaj pa potrebujem le enega.
6. korak: LoRaWAN prehod
LoRaWAN je širokopasovno omrežje z nizko porabo energije, ki temelji na LoRa, kar lahko zagotovi: nizko porabo energije, razširljivost, visoko kakovost storitev in varno brezžično omrežje na dolge razdalje.
Sestavite MakePython Lora in ESP32, da naredite prehod, ki bo lahko sprejemal oddaljene podatke in jih naložil v internet.
7. korak: Prenesite kodo
Prenesite vse datoteke »xxx.py« iz WiKi in jih naložite v ESP32.
Odprite datoteko LoRaDuplexCallback.py. Morate narediti nekaj prilagoditev, da se lahko vaš ESP32 poveže z omrežjem in naloži podatke na strežnik.
Spremenite API_KEY, ki ste ga pridobili v ThingSpeaku (kasneje bom predstavil, kako ga pridobiti)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Za povezavo WiFi spremenite SSID in PSW
ssid = "Makerfabs"
pswd = "20160704"
8. korak: Prejemanje podatkov
Poiščite funkcijo on_receive (lora, koristna obremenitev) v datoteki LoRaDuplexCallback.py, kjer lahko ESP32 poveste, kaj naj stori po prejemu podatkov. Naslednja koda razčleni in prikaže prejete podatke o temperaturi in vlažnosti.
def on_receive (lora, koristna obremenitev):
lora.blink_led () rssi = lora.packetRssi () poskus: dolžina = len (koristna obremenitev) -1 myStr = str ((koristna obremenitev [4: dolžina]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Prejeto sporočilo *** / n {}". format (koristna obremenitev)), če config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (koristna obremenitev [4: dolžina])), rssi), če wlan.isconnected (): globalno msgCount tiskanje ('Pošiljanje v omrežje …') vozlišče = int (str (koristna obremenitev [5: 6], 'utf-8')), če je vozlišče == 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) razen izjeme kot e: print (e) print (" z RSSI {} n ".format (rssi))
Sodeč po številu za razlikovanje vozlišč in nalaganju podatkov v internet prek URL -ja lahko kadar koli spremljamo oddaljene podatke različnih vozlišč. Dodate lahko več vozlišč in podobno spremenite kodo.
če je vozlišče == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) print (res.text)
9. korak: Uporabite ThingSpeak IoT
Koraki:
- Prijavite se na https://thingspeak.com/. Če ga že imate, se prijavite neposredno.
- Kliknite Nov kanal, da ustvarite nov kanal ThingSpeak.
- Vnesite ime, opis, izberite polje 1. Nato shranite kanal na dnu.
- Kliknite možnost Ključi API, kopirajte ključ API, uporabili ga bomo v programu.
10. korak: Rezultat
Na zaslonu si lahko ogledate podatke vozlišča 0 in vozlišča 1, čeprav sta 2 km narazen.
Prijavite se v svoj račun ThingSpeak in kliknite na kanal, ki ste ga ustvarili, da si ogledate naložene podatke o temperaturi in vlažnosti.
Graf polja1 in grafa polja2 sta podatka o vlažnosti in temperaturi vozlišča Lora 0, graf polja3 in graf polja4 pa sta podatka o vlažnosti in temperaturi vozlišča Lora 1.
Priporočena:
Avtomatiziran model železniške razporeditve dveh vlakov (V2.0) - Arduino temelji: 15 korakov (s slikami)
Avtomatiziran model železniške razporeditve dveh vlakov (V2.0) | Arduino temelji: Avtomatizacija postavitev železniških modelov z uporabo mikrokrmilnikov Arduino je odličen način za združevanje mikrokrmilnikov, programiranje in modeliranje železnic v en hobi. Na voljo je veliko projektov za avtonomno vožnjo vlaka na modelu railroa
Space Invaders v Micropythonu na Micro: bit: 5 korakov
Space Invaders v Micropythonu na Micro: bit: V prejšnjih člankih smo raziskovali ustvarjanje iger na prenosni igralni konzoli GameGo, ki jo je razvilo izobraževanje TinkerGen. Igre, ki smo jih naredili, so spominjale na stare igre Nintendo. V današnjem članku bomo naredili korak nazaj do
[15min] Ura Weasley / Kazalec kdo je doma - temelji na TR -064 (beta): 4 koraki (s slikami)
[15min] Ura Weasley / Kazalec Kdo je doma-temelji na TR-064 (beta): UPDATE: Glej korak 3. Dolga zgodba (TL; DR spodaj): Pred časom sem na svoj računalnik napisal majhen bash-skript poiščite omrežje za registrirane naprave in primerjajte njihova imena gostiteljev s seznamom s povezanimi imeni. Vsakič, ko bi se naprava prijavila
Optičnemu merilniku vrtljajev, ki temelji na Arduinu, CNC usmerjevalniku: 34 korakov (s slikami)
Optičnemu merilniku vrtljajev na osnovi Arduina dodajte CNC usmerjevalniku: Zgradite optični indikator vrtljajev za vaš CNC usmerjevalnik z Arduino Nano, IR LED/IR fotodiodnim senzorjem in zaslonom OLED za manj kot 30 USD. Navdihnil me je eletro18's Measure RPM - Optic Tachometer Instructable in želel sem dodati tahometer
SEER- Inteligentni osebni pomočnik, ki temelji na internetu: 12 korakov (s slikami)
SEER-Inteligentni osebni pomočnik, ki temelji na internetu: Seer je naprava, ki bo igrala vlogo ojačevalca na področju pametnih domov in avtomatizacije. V bistvu je aplikacija interneta stvari. SEER je 9-palčni brezžični zvočnik za prostoročno telefoniranje Raspberry Pi 3 model B z vgrajeno kamero