Sisällysluettelo:

Lora Gateway perustuu MicroPython ESP32: 10 askelta (kuvilla)
Lora Gateway perustuu MicroPython ESP32: 10 askelta (kuvilla)

Video: Lora Gateway perustuu MicroPython ESP32: 10 askelta (kuvilla)

Video: Lora Gateway perustuu MicroPython ESP32: 10 askelta (kuvilla)
Video: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, Heinäkuu
Anonim
Lora Gateway perustuu MicroPython ESP32: een
Lora Gateway perustuu MicroPython ESP32: een
Lora Gateway perustuu MicroPython ESP32: een
Lora Gateway perustuu MicroPython ESP32: een

Lora on ollut erittäin suosittu viime vuosina. Tätä tekniikkaa käyttävä langaton viestintämoduuli on yleensä halpa (käyttäen vapaata taajuutta), kooltaan pieni, energiatehokas ja sillä on pitkä tiedonsiirtoetäisyys, ja sitä käytetään pääasiassa IoT-päätelaitteiden väliseen viestintään tai tiedonsiirtoon isännän kanssa. Markkinoilla on monia LoRa -moduuleja, kuten RFM96W, joka on varustettu SX1278 (yhteensopiva) sirulla, joka on hyvin pieni. Käytän sitä MakePython ESP32: n kanssa yhdyskäytävänä.

Seuraavaksi käytän kahta LoRa -solmua lähettääksesi lämpötila- ja kosteustiedot yhdyskäytävälle ja lataan sen sitten Internetiin yhdyskäytävän kautta. Tässä opit kuinka ladata useiden LoRa -solmujen etätietoja pilveen yhdyskäytävän kautta.

Vaihe 1: Tarvikkeet

Tarvikkeet
Tarvikkeet

1*MakePython ESP32

MakePython ESP32 on ESP32 -kortti, jossa on integroitu SSD1306 OLED -näyttö.

2*Maduino LoRa -radio

Maduino Lora Radio on IoT (esineiden internet) -ratkaisu, joka perustuu Atmelin Atmega328P MCU- ja Lora -moduuliin. Se voi olla todellinen projekti IoT-projekteille (erityisesti pitkän kantaman, pienitehoinen sovellus)

2*DHT11

1*MakePython Lora

Vaihe 2: LoRa -solmu

LoRa -solmu
LoRa -solmu
LoRa -solmu
LoRa -solmu

Tämä on Maduino Lora Radion kaavio.

Arduino Lora -moduuli LoRa -solmuna, käytämme sitä lämpö- ja kosteustietojen lähettämiseen yhdyskäytävään.

(Tämä WiKi esittelee Maduino Lora Radion käytön ja datan lähettämisen ja vastaanottamisen)

Vaihe 3: Solmu- ja anturiliitäntä

Solmu- ja anturiliitäntä
Solmu- ja anturiliitäntä
Solmu- ja anturiliitäntä
Solmu- ja anturiliitäntä

DHT11: n VCC ja GND on kytketty Maduinon 3V3: een ja GND: hen, ja DATA -nasta on kytketty Maduinon D4: ään.

Solmu 0 on puistossa, solmu 1 on toimistorakennuksessa yrityksen lähellä, ne ovat noin 2 kilometrin päässä toisistaan, ja sitten saan heidän lämpötila- ja kosteustietonsa kotona

Vaihe 4: Lähetä tiedot yhdyskäytävälle

Lataa TransmitterDHT11.ino, avaa se Arduino IDE: llä.

Kun lisäät solmun, muuta solmun numeroa vastaavasti. Käytä esimerkiksi nyt kahta solmua, ensimmäistä solmua muokataksesi solmua = 0 ohjelman suorittamiseksi, toista solmua muokataksesi solmua = 1 ohjelman suorittamiseksi ja niin edelleen, voit lisätä solmuja.

int16_t pakettinumero = 0; // pakettilaskuri, lisäämme lähetystä kohti

int16_t nodenum = 0; // Muokkaa solmun numeroa

Kerää tiedot ja tulosta ne

String message = "#"+(String) nodenum+"Kosteus:"+(String) kosteus+"% Lämpötila:"+(String) lämpötila+"C"+"num:"+(String) pakettinumero; Serial.println (message); pakettinumero ++;

Lähetä viesti osoitteeseen 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);

Avaa sarjamonitori, näet kerätyt lämpötila- ja kosteustiedot ja lähetä ne.

#0 Kosteus: 6.00% Lämpötila: 27.00C num: 0

Lähetys: Lähetetään rf95_serverille Lähetetään… Odotetaan paketin valmistumista… Odotetaan vastausta… Ei vastausta, onko kuuntelijaa lähellä?

Jätä se syrjään, nyt meidän on tehtävä Lora Gateway.

Vaihe 5: MakePython Lora

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

Tämä on RFM96W -moduulin ja MakePython ESP32: n vastaava nasta. MakePython ESP32 -yhteyden helpottamiseksi tein piirilevyn RFM96W -moduulilla. Kyllä, siinä on kaksi RFM96W -laitetta, jotka voivat lähettää ja vastaanottaa tietoja samanaikaisesti, mutta nyt tarvitsen vain yhden.

Vaihe 6: LoRaWAN -yhdyskäytävä

LoRaWAN -yhdyskäytävä
LoRaWAN -yhdyskäytävä

LoRaWAN on LoRa-pohjainen pienitehoinen laaja-alainen verkko, joka voi tarjota yhden: alhaisen virrankulutuksen, skaalautuvuuden, korkean palvelun laadun ja turvallisen pitkän matkan langattoman verkon.

Kokoa MakePython Lora ja ESP32 luodaksesi yhdyskäytävän, joka voi vastaanottaa etätietoja ja ladata sen Internetiin.

Vaihe 7: Lataa koodi

Lataa kaikki xxx.py -tiedostot WiKistä ja lähetä ne ESP32: een.

Avaa LoRaDuplexCallback.py -tiedosto. Sinun on tehtävä joitain muutoksia, jotta ESP32 voi muodostaa yhteyden verkkoon ja ladata tietoja palvelimelle.

Muokkaa ThingSpeakissa saamaasi API_KEY (esittelen sen hankkimisen myöhemmin)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Muokkaa SSID: tä ja PSW: tä yhdistääksesi WiFi -yhteyden

ssid = "Valmistajat"

pswd = "20160704"

Vaihe 8: Vastaanota tietoja

Etsi LoRaDuplexCallback.py -tiedostosta on_recept (lora, payload) -toiminto, jossa voit kertoa ESP32: lle, mitä tehdä tietojen vastaanottamisen jälkeen. Seuraava koodi jäsentää ja näyttää vastaanotetut lämpötila- ja kosteustiedot.

def on_recept (lora, hyötykuorma):

lora.blink_led () rssi = lora.packetRssi () try: length = len (hyötykuorma) -1 myStr = str ((hyötykuorma [4: pituus]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(pituus1+1):(pituus1+6)] myNum2 = myStr [(pituus1+20):(pituus1+25)] print ("*** Vastaanotettu viesti *** / n {}". muoto (hyötykuorma)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (hyötykuorma [4: pituus])), rssi) jos wlan.isconnected (): global msgCount print ('Lähetetään verkkoon…') node = int (str (hyötykuorma [5: 6], 'utf-8'))) jos node == 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) paitsi poikkeus e: print (e) print (" RSSI {} n ".format (rssi))

Arvioimalla solmujen erottavan numeron ja lataamalla tiedot Internetiin URL -osoitteen kautta, voimme seurata eri solmujen etätietoja milloin tahansa. Voit lisätä solmuja ja tehdä samanlaisia muutoksia koodiin.

jos solmu == 0:

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

Vaihe 9: Käytä ThingSpeak IoT: tä

Käytä ThingSpeak IoT: tä
Käytä ThingSpeak IoT: tä
Käytä ThingSpeak IoT: tä
Käytä ThingSpeak IoT: tä
Käytä ThingSpeak IoT: tä
Käytä ThingSpeak IoT: tä

Askeleet:

  1. Luo tili osoitteessa https://thingspeak.com/. Jos sinulla on jo sellainen, kirjaudu sisään suoraan.
  2. Luo uusi ThingSpeak -kanava napsauttamalla Uusi kanava.
  3. Syötön nimi, Kuvaus, Valitse kenttä 1. Tallenna sitten kanava alareunaan.
  4. Napsauta API -avaimet -vaihtoehtoa, kopioi API -avain, käytämme sitä ohjelmassa.

Vaihe 10: Tulos

Tulos
Tulos
Tulos
Tulos
Tulos
Tulos

Näet solmun 0 ja solmun 1 tiedot näytöllä, vaikka ne ovat 2 kilometrin päässä toisistaan.

Kirjaudu ThingSpeak -tiliisi ja napsauta luomasi kanavaa, niin näet ladatut lämpötila- ja kosteustiedot.

Kenttä1 -kuvaaja ja kenttä2 -kaaviot ovat Lora -solmun 0 kosteus- ja lämpötilatietoja ja kenttä3 -kaavio ja kenttä4 -kaavio ovat Lora -solmun 1 kosteus- ja lämpötilatietoja.

Suositeltava: