Brána Lora založená na MicroPython ESP32: 10 krokov (s obrázkami)
Brána Lora založená na MicroPython ESP32: 10 krokov (s obrázkami)
Anonim
Brána Lora založená na MicroPython ESP32
Brána Lora založená na MicroPython ESP32
Brána Lora založená na MicroPython ESP32
Brána Lora založená na MicroPython ESP32

Lora je v posledných rokoch veľmi obľúbená. Bezdrôtový komunikačný modul využívajúci túto technológiu je zvyčajne lacný (využíva voľné spektrum), má malú veľkosť, je energeticky účinný a má veľkú komunikačnú vzdialenosť a používa sa predovšetkým na vzájomnú komunikáciu medzi terminálmi IoT alebo na výmenu údajov s hostiteľom. Na trhu je veľa modulov LoRa, napríklad RFM96W, ktorý je vybavený čipom SX1278 (kompatibilným), ktorý je veľmi malý. Používam ho s bránou MakePython ESP32.

Ďalej použijem dva uzly LoRa na odoslanie údajov o teplote a vlhkosti do brány a potom ich prostredníctvom brány odovzdám na internet. Tu sa naučíte, ako prostredníctvom brány nahrať do cloudu vzdialené údaje z viacerých uzlov LoRa.

Krok 1: Spotrebný materiál

Zásoby
Zásoby

1*MakePython ESP32

MakePython ESP32 je doska ESP32 s integrovaným OLED displejom SSD1306.

2*Rádio Maduino LoRa

Maduino Lora Radio je riešenie internetu vecí (IoT) založené na module Atmega Atmega328P MCU a Lora spoločnosti Atmel. Môže to byť skutočný projekt pre projekty internetu vecí (najmä aplikácie s dlhým dosahom a nízkym výkonom)

2*DHT11

1*MakePython Lora

Krok 2: Uzol LoRa

Uzol LoRa
Uzol LoRa
Uzol LoRa
Uzol LoRa

Toto je schéma rádia Maduino Lora.

Rádiový modul Arduino Lora ako uzol LoRa, používame ho na odosielanie údajov o teplote a vlhkosti do brány.

(Táto WiKi uvádza, ako používať rádio Maduino Lora a odosielať a prijímať údaje)

Krok 3: Pripojenie uzla a senzora

Pripojenie uzla a senzora
Pripojenie uzla a senzora
Pripojenie uzla a senzora
Pripojenie uzla a senzora

VCC a GND DHT11 sú pripojené k 3V3 a GND Maduina a pin DATA je pripojený k D4 Maduino.

Uzol 0 je v parku, uzol 1 je v administratívnej budove blízko spoločnosti, sú od seba vzdialené asi 2 kilometre a potom dostanem údaje o ich teplote a vlhkosti doma

Krok 4: Odoslanie údajov do brány

Stiahnite si TransmitterDHT11.ino, otvorte ho na Arduino IDE.

Pri pridávaní uzla zodpovedajúcim spôsobom upravte číslo uzla. Teraz napríklad použite 2 uzly, prvý uzol na úpravu nodena = 0 na spustenie programu, druhý uzol na úpravu nodenum = 1 na spustenie programu a podobne, môžete pridať ďalší uzol.

int16_t packetnum = 0; // počítadlo paketov, zvyšujeme o xmise

int16_t nodenum = 0; // Upravte číslo uzla

Zhromažďujte údaje a vytlačte ich

Reťazcová správa = "#"+(Reťazec) nodenum+"Vlhkosť:"+(Reťazec) vlhkosť+"% Teplota:"+(Reťazec) teplota+"C"+"číslo:"+(Reťazec) packetnum; Serial.println (správa); packetnum ++;

Pošlite sprá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);

Otvorte sériový monitor, môžete vidieť zhromaždené údaje o teplote a vlhkosti a odoslať ich.

#0 Vlhkosť: 6,00% Teplota: 27,00C číslo: 0

Vysielanie: Odosielanie na server rf95_server Odosielanie … Čaká sa na dokončenie paketu … Čaká sa na odpoveď … Žiadna odpoveď, je tu prítomný poslucháč?

Odložte to, teraz musíme urobiť bránu Lora.

Krok 5: MakePython Lora

MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora
MakePython Lora

Toto je zodpovedajúci kolík modulu RFM96W a MakePython ESP32. Aby som zaistil spojenie s MakePython ESP32, vyrobil som dosku s obvodmi s modulom RFM96W. Áno, sú na ňom dva RFM96W, ktoré môžu odosielať a prijímať údaje súčasne, ale teraz mi stačí jeden.

Krok 6: Brána LoRaWAN

Brána LoRaWAN
Brána LoRaWAN

LoRaWAN je nízkoenergetická širokopásmová sieť založená na LoRa, ktorá môže poskytnúť jednu z nich: nízka spotreba energie, škálovateľnosť, vysoká kvalita služieb a bezpečná bezdrôtová sieť na dlhé vzdialenosti.

Zostavte MakePython Lora a ESP32 a vytvorte bránu, ktorá dokáže prijímať vzdialené údaje a odosielať ich na internet.

Krok 7: Stiahnite si kód

Stiahnite si všetky súbory „xxx.py“z WiKi a nahrajte ich do ESP32.

Otvorte súbor LoRaDuplexCallback.py. Musíte vykonať určité úpravy, aby sa váš ESP32 mohol pripojiť k sieti a odosielať údaje na server.

Upravte API_KEY, ktoré ste získali v ThingSpeak (ako ho získam, uvediem neskôr)

#https://thingspeak.com/channels/1047479

API_KEY = 'UBHIRHVV9THUJVUI'

Zmeňte SSID a PSW na pripojenie WiFi

ssid = "Makerfabs"

pswd = "20160704"

Krok 8: Príjem údajov

Nájdite funkciu on_receive (lora, payload) v súbore LoRaDuplexCallback.py, kde ESP32 poviete, čo má robiť po prijatí údajov. Nasledujúci kód analyzuje a zobrazuje prijaté údaje o teplote a vlhkosti.

def on_receive (lora, užitočné zaťaženie):

lora.blink_led () rssi = lora.packetRssi () try: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(dĺžka1+1):(dĺžka1+6)] myNum2 = myStr [(dĺžka1+20):(dĺžka1+25)] tlač ("*** Prijatá sprá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žitočné zaťaženie [5: 6], 'utf-8'))) ak uzol == 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) okrem Exception as e: print (e) print (" with RSSI {} n ".format (rssi))

Pri posudzovaní počtu na rozlíšenie uzlov a odosielaní údajov na internet prostredníctvom adresy URL môžeme vzdialené údaje rôznych uzlov kedykoľvek monitorovať. Môžete pridať ďalšie uzly a vykonať podobné zmeny v kóde.

ak uzol == 0:

URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 ="+myNum1+"& field2 ="+myNum2 res = urequests.get (URL) tlač (res.text)

Krok 9: Použite IoT ThingSpeak

Použite IoT ThingSpeak
Použite IoT ThingSpeak
Použite IoT ThingSpeak
Použite IoT ThingSpeak
Použite IoT ThingSpeak
Použite IoT ThingSpeak

Kroky:

  1. Zaregistrujte si účet na https://thingspeak.com/. Ak ho už máte, prihláste sa priamo.
  2. Kliknutím na Nový kanál vytvoríte nový kanál ThingSpeak.
  3. Zadajte názov, popis, výber poľa 1. Potom uložte kanál v spodnej časti.
  4. Kliknite na možnosť API Keys, skopírujte API kľúč, použijeme ho v programe.

Krok 10: Výsledok

Výsledok
Výsledok
Výsledok
Výsledok
Výsledok
Výsledok

Údaje uzla 0 a uzla 1 môžete vidieť na obrazovke, aj keď sú od seba vzdialené 2 kilometre.

Prihláste sa do svojho účtu ThingSpeak a kliknite na kanál, ktorý ste vytvorili, môžete si pozrieť nahrané údaje o teplote a vlhkosti.

Grafy field1 a grafy field2 sú údaje o vlhkosti a teplote uzla Lora 0 a grafy field3 a field4 graf sú údaje o vlhkosti a teplote uzla Lora 1.

Odporúča: