Obsah:

Lora Gateway založená na MicroPython ESP32: 10 kroků (s obrázky)
Lora Gateway založená na MicroPython ESP32: 10 kroků (s obrázky)

Video: Lora Gateway založená na MicroPython ESP32: 10 kroků (s obrázky)

Video: Lora Gateway založená na MicroPython ESP32: 10 kroků (s obrázky)
Video: lorawan gateways tutorial | lora LoraWAN | What are LoRaWAN gateways? 2024, Červenec
Anonim
Lora Gateway založená na MicroPython ESP32
Lora Gateway založená na MicroPython ESP32
Lora Gateway založená na MicroPython ESP32
Lora Gateway založená na MicroPython ESP32

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

Zásoby
Zásoby

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

LoRa Node
LoRa Node
LoRa Node
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

Připojení uzlu a senzoru
Připojení uzlu a senzoru
Připojení uzlu a senzoru
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

MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
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

Brána LoRaWAN
Brána LoRaWAN

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

Použijte IoT ThingSpeak
Použijte IoT ThingSpeak
Použijte IoT ThingSpeak
Použijte IoT ThingSpeak
Použijte IoT ThingSpeak
Použijte IoT ThingSpeak

Kroky:

  1. Zaregistrujte si účet na https://thingspeak.com/. Pokud ji již máte, přihlaste se přímo.
  2. Kliknutím na Nový kanál vytvoříte nový kanál ThingSpeak.
  3. Zadejte název, popis, výběr pole 1. Poté kanál uložte na konec.
  4. Klikněte na možnost API Keys, zkopírujte API klíč, použijeme ho v programu.

Krok 10: Výsledek

Výsledek
Výsledek
Výsledek
Výsledek
Výsledek
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: