Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
Lora je v posledních letech velmi populární. Modul bezdrátové komunikace využívající tuto technologii je obvykle levný (využívající volné spektrum), má malou velikost, je energeticky účinný a má dlouhou komunikační vzdálenost a používá se hlavně pro vzájemnou komunikaci mezi terminály IoT nebo výměnu dat s hostitelem. Na trhu je mnoho modulů LoRa, například RFM96W, který je vybaven čipem SX1278 (kompatibilní), který je velmi malý. Používám to s MakePython ESP32 jako bránou.
Dále použiji dva uzly LoRa k odeslání údajů o teplotě a vlhkosti do brány a poté je prostřednictvím brány nahraji na internet. Zde se dozvíte, jak přes cloud odesílat vzdálená data více uzlů LoRa do cloudu.
Krok 1: Spotřební materiál
1*MakePython ESP32
MakePython ESP32 je deska ESP32 s integrovaným OLED displejem SSD1306.
2*Rádio Maduino LoRa
Maduino Lora Radio je řešení IoT (internet věcí) založené na MCU a modulu Lora Atmel Atmega328P. Může to být skutečný projekt pro projekty IoT (zejména aplikace s dlouhým dosahem a nízkým výkonem)
2*DHT11
1*MakePython Lora
Krok 2: LoRa Node
Toto je schéma rádia Maduino Lora.
Rádiový modul Arduino Lora jako uzel LoRa, používáme jej k odesílání údajů o teplotě a vlhkosti do brány.
(Tato WiKi uvádí, jak používat rádio Maduino Lora a odesílat a přijímat data)
Krok 3: Připojení uzlu a senzoru
VCC a GND DHT11 jsou připojeny k 3V3 a GND Maduina a pin DATA je připojen k D4 Maduino.
Uzel 0 je v parku, uzel 1 je v kancelářské budově poblíž společnosti, jsou od sebe vzdálené asi 2 kilometry a poté získám údaje o jejich teplotě a vlhkosti doma
Krok 4: Odeslání dat do brány
Stáhněte si TransmitterDHT11.ino, otevřete jej na Arduino IDE.
Při přidávání uzlu odpovídajícím způsobem upravte číslo uzlu. Například nyní použijte 2 uzly, první uzel upravte nodenum = 0 pro spuštění programu, druhý uzel upravte nodenum = 1 pro spuštění programu atd., Můžete přidat další uzel.
int16_t packetnum = 0; // počítadlo paketů, zvyšujeme o xmise
int16_t nodenum = 0; // Upravte číslo uzlu
Shromážděte data a vytiskněte je
Řetězcová zpráva = "#"+(String) nodenum+"Vlhkost:"+(String) vlhkost+"% Teplota:"+(String) teplota+"C"+"num:"+(String) packetnum; Serial.println (zpráva); packetnum ++;
Odeslat zprávu 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);
Otevřete sériový monitor, uvidíte shromážděné údaje o teplotě a vlhkosti a odešlete je.
#0 Vlhkost: 6,00% Teplota: 27,00C číslo: 0
Přenos: Odesílání na server rf95_server Odesílání … Čekání na dokončení paketu … Čekání na odpověď … Žádná odpověď, je kolem posluchač?
Dej to stranou, teď potřebujeme udělat bránu Lora.
Krok 5: MakePython Lora
Toto je odpovídající kolík modulu RFM96W a MakePython ESP32. Aby se usnadnilo propojení s MakePython ESP32, vytvořil jsem desku s obvody s modulem RFM96W. Ano, jsou na něm dva RFM96W, které mohou odesílat a přijímat data současně, ale teď mi stačí jeden.
Krok 6: LoRaWAN Gateway
LoRaWAN je nízkoenergetická širokopásmová síť založená na LoRa, která může poskytnout jednu: nízkou spotřebu energie, škálovatelnost, vysokou kvalitu služeb a bezpečnou bezdrátovou síť na dlouhé vzdálenosti.
Sestavte MakePython Lora a ESP32 a vytvořte bránu, která může přijímat vzdálená data a nahrávat je na internet.
Krok 7: Stáhněte si kód
Stáhněte si všechny soubory „xxx.py“z WiKi a nahrajte je do ESP32.
Otevřete soubor LoRaDuplexCallback.py. Musíte provést nějaké úpravy, aby se váš ESP32 mohl připojit k síti a nahrávat data na server.
Upravte API_KEY, které jste získali v ThingSpeak (jak ho získat, uvedu později)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Upravte SSID a PSW pro připojení WiFi
ssid = "Makerfabs"
pswd = "20160704"
Krok 8: Příjem dat
Vyhledejte funkci on_receive (lora, payload) v souboru LoRaDuplexCallback.py, kde můžete ESP32 sdělit, co má po přijetí dat dělat. Následující kód analyzuje a zobrazuje přijatá data o teplotě a vlhkosti.
def on_receive (lora, užitečné zatížení):
lora.blink_led () rssi = lora.packetRssi () try: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(délka1+1):(délka1+6)] myNum2 = myStr [(délka1+20):(délka1+25)] tisk ("*** Přijatá zpráva *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Sending to network…') node = int (str (užitečné zatížení [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) tisk (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) kromě Exception as e: print (e) print (" with RSSI {} n ".format (rssi))
Při posuzování počtu pro rozlišení uzlů a odesílání dat na internet prostřednictvím adresy URL můžeme vzdálená data různých uzlů kdykoli sledovat. Můžete přidat další uzly a provádět podobné změny v kódu.
if node == 0:
URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) tisk (res.text)
Krok 9: Použijte ThingSpeak IoT
Kroky:
- Zaregistrujte si účet na https://thingspeak.com/. Pokud ji již máte, přihlaste se přímo.
- Kliknutím na Nový kanál vytvoříte nový kanál ThingSpeak.
- Zadejte název, popis, výběr pole 1. Poté kanál uložte na konec.
- Klikněte na možnost API Keys, zkopírujte API klíč, použijeme ho v programu.
Krok 10: Výsledek
Data uzlu 0 a uzlu 1 můžete vidět na obrazovce, přestože jsou od sebe vzdáleny 2 kilometry.
Přihlaste se ke svému účtu ThingSpeak a klikněte na kanál, který jste vytvořili, a uvidíte nahraná data o teplotě a vlhkosti.
Grafy pole1 a grafy pole2 jsou údaje o vlhkosti a teplotě uzlu Lora 0 a grafy pole3 a grafy pole4 jsou údaje o vlhkosti a teplotě uzlu Lora 1.
Doporučuje:
MuMo - LoRa Gateway: 25 kroků (s obrázky)
MuMo-LoRa Gateway: ### UPDATE 10-03-2021 // nejnovější informace/aktualizace budou k dispozici na stránce github: https: //github.com/MoMu-Antwerp/MuMo Co je MuMo? MuMo je spolupráce mezi vývoj produktů (oddělení Univerzity v Antverpách) pod
Stolní pinball s využitím technologie Evive- vestavěná forma založená na Arduinu: 18 kroků (s obrázky)
Stolní Pinball Machine využívající Evive- integrovaná platforma založená na Arduinu: Další víkend, další vzrušující hra! A tentokrát to není nikdo jiný než oblíbená arkádová hra všech - Pinball! Tento projekt vám ukáže, jak si snadno vyrobit svůj vlastní stroj Pinball doma. Vše, co budete potřebovat, jsou komponenty z evive
Robotická paže založená na mikrokontroléru PIC: 6 kroků (s obrázky)
Robotická paže založená na mikrokontroléru PIC: Od montážní linky automobilového průmyslu až po telesurgické roboty ve vesmíru najdete robotické zbraně všude. Mechanismy těchto robotů jsou podobné lidskému, které lze naprogramovat na podobnou funkci a zvyšuje
Domácí automatizace založená na SMS pro Android a Arduino: 5 kroků (s obrázky)
Domácí automatizace založená na SMS pro Android a Arduino:! ! ! OZNÁMENÍ ! ! ! Vzhledem k tomu, že se v mé oblasti aktualizuje místní mobilní věž, tento modul GSM již nemohu používat. Novější věž již nepodporuje zařízení 2G. Proto již nemohu tomuto projektu poskytovat žádnou podporu. Nedávno jsem
LED kostka 3x3 založená na Arduinu: 7 kroků (s obrázky)
Arduino 3x3 LED Cube: Dobrý den, vítejte u mého prvního Instructable. Představuji jednoduchý a úhledný design pro začátečníky 3x3x3 LED kostku. Aby to bylo snazší stavět, poskytuji podrobnosti o vlastní desce plošných spojů, můžete si ji vyrobit nebo koupit, pokyny a můžete, stejně jako já, znovu použít měkký