Orodha ya maudhui:

Lora Gateway Kulingana na MicroPython ESP32: Hatua 10 (na Picha)
Lora Gateway Kulingana na MicroPython ESP32: Hatua 10 (na Picha)

Video: Lora Gateway Kulingana na MicroPython ESP32: Hatua 10 (na Picha)

Video: Lora Gateway Kulingana na MicroPython ESP32: Hatua 10 (na Picha)
Video: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, Julai
Anonim
Lora Gateway Kulingana na MicroPython ESP32
Lora Gateway Kulingana na MicroPython ESP32
Lora Gateway Kulingana na MicroPython ESP32
Lora Gateway Kulingana na MicroPython ESP32

Lora imekuwa maarufu sana katika miaka ya hivi karibuni. Moduli ya mawasiliano isiyo na waya inayotumia teknolojia hii kawaida ni ya bei rahisi (kutumia wigo wa bure), saizi ndogo, yenye nguvu na ina umbali mrefu wa mawasiliano, na hutumiwa kwa mawasiliano ya pamoja kati ya vituo vya IoT au ubadilishaji wa data na mwenyeji. Kuna moduli nyingi za LoRa kwenye soko, kama vile RFM96W, ambayo ina vifaa vya SX1278 (sambamba), ambayo ni ndogo sana. Ninaitumia na MakePython ESP32 kama lango.

Ifuatayo, nitatumia nodi mbili za LoRa kutuma data ya joto na unyevu kwenye lango, na kisha kuipakia kwenye mtandao kupitia lango. Hapa utajifunza jinsi ya kupakia data ya mbali ya nodi nyingi za LoRa kwenye wingu kupitia lango.

Hatua ya 1: Vifaa

Vifaa
Vifaa

1 * MakePython ESP32

MakePython ESP32 ni bodi ya ESP32 na onyesho la SSD1306 OLED lililounganishwa.

2 * Maduino LoRa Radio

Redio ya Maduino Lora ni suluhisho la IoT (Mtandao wa vitu) kulingana na moduli ya Atmga's Atmega328P MCU na Lora. Inaweza kuwa mradi halisi wa miradi ya IoT (haswa masafa marefu, matumizi ya nguvu ndogo)

2 * DHT11

1 * MakePython Lora

Hatua ya 2: LoRa Node

Node ya LoRa
Node ya LoRa
Node ya LoRa
Node ya LoRa

Huu ni mpango wa Redio ya Maduino Lora.

Moduli ya Redio ya Arduino Lora kama nodi ya LoRa, tunaitumia kutuma data ya joto na unyevu kwenye lango.

(WiKi hii inaleta jinsi ya kutumia Maduino Lora Radio na kutuma na kupokea data)

Hatua ya 3: Uunganisho wa Nodi na Sensorer

Node na Uunganisho wa Sensorer
Node na Uunganisho wa Sensorer
Node na Uunganisho wa Sensorer
Node na Uunganisho wa Sensorer

VCC na GND ya DHT11 imeunganishwa na 3V3 na GND ya Maduino, na pini ya DATA imeunganishwa na D4 ya Maduino.

Node 0 iko kwenye bustani, node 1 iko kwenye jengo la ofisi karibu na kampuni, ziko umbali wa kilomita 2, halafu napata data ya joto na unyevu nyumbani

Hatua ya 4: Tuma Takwimu kwenye Lango

Pakua TransmitterDHT11.ino, ifungue kwenye Arduino IDE.

Wakati wa kuongeza nodi, rekebisha nodi ipasavyo. Kwa mfano, sasa tumia nodi 2, node ya kwanza kurekebisha nodenum = 0 kuendesha programu, node ya pili kurekebisha nodenum = 1 kuendesha programu, na kadhalika, unaweza kuongeza node zaidi.

pakiti ya int16_t = 0; // kaunta ya pakiti, tunaongeza kwa kila xmission

int16_t nodenum = 0; // Rekebisha nodi ya nodi

Kusanya data na uchapishe

Ujumbe wa kamba = "#" + (Kamba) nodenum + "Unyevu:" + (Kamba) unyevu + "% Joto:" + (Kamba) joto + "C" + "num:" + (String) packetnum; Serial.println (ujumbe); pakiti ++;

Tuma ujumbe kwa rf95_server

uint8_t radioPacket [message.length () + 1];

ujumbe.toCharArray (RadioPacket, message.length () + 1); radioPacket [message.length () + 1] = '\ 0'; rf95.send ((uint8_t *) RadioPacket, ujumbe.length () + 1);

Fungua mfuatiliaji wa serial, unaweza kuona data ya joto na unyevu iliyokusanywa, na uitume.

Unyevu wa # 0: 6.00% Joto: 27.00C num: 0

Kusambaza: Inatuma kwa rf95_server Inatuma… Inasubiri pakiti kukamilisha… Inasubiri jibu… Hakuna jibu, je! Kuna msikilizaji karibu?

Weka kando, sasa tunahitaji kutengeneza Lora Gateway.

Hatua ya 5: MakePython Lora

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

Hii ndio pini inayolingana ya moduli ya RFM96W na MakePython ESP32. Ili kuwezesha unganisho na MakePython ESP32, nilitengeneza bodi ya mzunguko na moduli ya RFM96W. Ndio, kuna RFM96W mbili juu yake, ambayo inaweza kutuma na kupokea data kwa wakati mmoja, lakini sasa ninahitaji moja tu.

Hatua ya 6: Lango la LoRaWAN

Lango la LoRaWAN
Lango la LoRaWAN

LoRaWAN ni mtandao wa eneo lenye nguvu ya chini yenye msingi wa LoRa, ambayo inaweza kutoa moja: matumizi ya chini ya nguvu, kutoweka kwa kiwango cha juu, huduma bora, na mtandao salama wa waya wa umbali mrefu.

Unganisha MakePython Lora na ESP32 kutengeneza lango ambalo linaweza kupokea data ya mbali na kuipakia kwenye mtandao.

Hatua ya 7: Pakua Msimbo

Pakua faili zote za 'xxx.py' kutoka kwa WiKi na uzipakie kwenye ESP32.

Fungua faili ya LoRaDuplexCallback.py, Unahitaji kufanya marekebisho kadhaa ili ESP32 yako iweze kuungana na mtandao na kupakia data kwenye seva.

Rekebisha API_KEY uliyopata katika ThingSpeak (nitaanzisha jinsi ya kuipata baadaye)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Rekebisha SSID na PSW ili kuunganisha WiFi

ssid = "Makala ya kutengeneza"

pswd = "20160704"

Hatua ya 8: Pokea Takwimu

Pata kazi ya on_receive (lora, payload) katika faili ya LoRaDuplexCallback.py, ambapo unaweza kuwaambia ESP32 nini cha kufanya baada ya kupokea data. Nambari zifuatazo hupita na kuonyesha data ya joto na unyevu uliopokea.

def on_receive (lora, malipo ya malipo):

lora.] myNum1 = myStr [(urefu1 + 1): (urefu1 + 6)] myNum2 = myStr [(urefu1 + 20): (urefu1 + 25)] chapisha ("*** Ujumbe uliopokelewa *** / n {}". format (payload)) ikiwa config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) ikiwa wlan.isconnected (): global msgCount print ('Inatuma kwa mtandao …' node = int (str (payload [5: 6], 'utf-8')) ikiwa node == 0: URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 = "+ myNum1 +" & field2 = "+ myNum2 res = urequests.get (URL) chapa (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+ API_KEY +" & field3 = "+ myNum1 +" & field4 = "+ myNum2 res = urequests.get (URL) chapa (maandishi. maandishi) isipokuwa Isipokuwa kama e: chapa (e) chapisha (" na RSSI {} n ". fomati (rssi))

Kuamua nambari ili kutofautisha nodi, na kupakia data kwenye mtandao kupitia URL, tunaweza kufuatilia data ya mbali ya nodi tofauti wakati wowote. Unaweza kuongeza nodi zaidi na ufanye mabadiliko sawa kwa nambari.

ikiwa node == 0:

URL = "https://api.thingspeak.com/update?"

Hatua ya 9: Tumia ThingSpeak IoT

Tumia IoT ya ThingSpeak
Tumia IoT ya ThingSpeak
Tumia IoT ya ThingSpeak
Tumia IoT ya ThingSpeak
Tumia IoT ya ThingSpeak
Tumia IoT ya ThingSpeak

Hatua:

  1. Jisajili akaunti katika https://thingspeak.com/. Ikiwa tayari unayo, ingia moja kwa moja.
  2. Bonyeza Kituo kipya ili kuunda kituo kipya cha ThingSpeak.
  3. Jina la kuingiza, Maelezo, Chagua Sehemu ya 1. Kisha hifadhi kituo chini.
  4. Bonyeza chaguo la Funguo za API, nakili Ufunguo wa API, tutatumia katika programu.

Hatua ya 10: Matokeo

Matokeo
Matokeo
Matokeo
Matokeo
Matokeo
Matokeo

Unaweza kuona data ya node 0 na node 1 kwenye skrini, ingawa iko umbali wa kilomita 2.

Ingia kwenye akaunti yako ya ThingSpeak na ubonyeze kwenye kituo ulichounda, unaweza kuona data ya joto na unyevu uliopakiwa.

Grafu ya shamba1 na grafu za uwanja2 ni data ya unyevu na joto ya nodi ya Lora 0, na grafu ya uwanja3 na uwanja wa uwanja ni data ya unyevu na joto ya nodi 1 ya Lora.

Ilipendekeza: