Obsah:

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)

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

Video: Brána Lora založená na MicroPython ESP32: 10 krokov (s obrázkami)
Video: Zlatá brána 2024, Júl
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: