Mündəricat:

MicroPython ESP32: 10 Addımına əsaslanan Lora Gateway (Şəkillərlə birlikdə)
MicroPython ESP32: 10 Addımına əsaslanan Lora Gateway (Şəkillərlə birlikdə)

Video: MicroPython ESP32: 10 Addımına əsaslanan Lora Gateway (Şəkillərlə birlikdə)

Video: MicroPython ESP32: 10 Addımına əsaslanan Lora Gateway (Şəkillərlə birlikdə)
Video: Install MicroPython on ESP8266 & ESP32 2024, Iyul
Anonim
MicroPython ESP32 əsasında Lora Gateway
MicroPython ESP32 əsasında Lora Gateway
MicroPython ESP32 əsasında Lora Gateway
MicroPython ESP32 əsasında Lora Gateway

Lora son illərdə çox məşhurdur. Bu texnologiyadan istifadə edən simsiz rabitə modulu ümumiyyətlə ucuzdur (sərbəst spektrdən istifadə edir), kiçik ölçüdə, enerjiyə qənaətcil və uzun bir ünsiyyət məsafəsinə malikdir və əsasən IoT terminalları arasında qarşılıqlı ünsiyyət və ya ev sahibi ilə məlumat mübadiləsi üçün istifadə olunur. Bazarda çox kiçik olan SX1278 (uyğun) çiplə təchiz edilmiş RFM96W kimi bir çox LoRa modulu var. MakePython ESP32 ilə ağ geçidi olaraq istifadə edirəm.

Sonra, temperatur və rütubət məlumatlarını ağ geçidinə göndərmək üçün iki LoRa qovşağından istifadə edəcəm və sonra şluz vasitəsilə İnternetə yükləyəcəyəm. Burada birdən çox LoRa qovşağının uzaq məlumatlarını ağ geçidi vasitəsilə buluda yükləməyi öyrənəcəksiniz.

Addım 1: Təchizat

Təchizat
Təchizat

1*MakePython ESP32

MakePython ESP32, inteqrasiya olunmuş SSD1306 OLED ekranı olan bir ESP32 lövhəsidir.

2*Maduino LoRa Radio

Maduino Lora Radio, Atmel'in Atmega328P MCU və Lora moduluna əsaslanan bir IoT (Şeylər İnterneti) Həllidir. IoT layihələri üçün əsl bir layihə ola bilər (xüsusən uzun mənzilli, aşağı güc tətbiqləri)

2*DHT11

1*MakePython Lora

Addım 2: LoRa Node

LoRa Node
LoRa Node
LoRa Node
LoRa Node

Bu Maduino Lora Radiosunun sxemidir.

Arduino Lora Radio modulu LoRa düyünü olaraq, temperatur və rütubət məlumatlarını ağ geçidinə göndərmək üçün istifadə edirik.

(Bu WiKi, Maduino Lora Radionu necə istifadə edəcəyinizi və məlumatların göndərilməsini və alınmasını təqdim edir)

Addım 3: Düyün və Sensor Bağlantısı

Düyün və Sensor Bağlantısı
Düyün və Sensor Bağlantısı
Düyün və Sensor Bağlantısı
Düyün və Sensor Bağlantısı

DHT11 -in VCC və GND, Maduino 3V3 və GND -yə, DATA pin isə Maduino D4 -ə bağlıdır.

0 -cu qovşaq parkda, 1 -ci qovşaq şirkətin yaxınlığındakı ofis binasındadır, bir -birindən təxminən 2 kilometr aralıdadırlar və sonra evdə temperatur və rütubət məlumatlarını alıram.

Addım 4: Məlumatları Ağ Geçidinə göndərin

TransmitterDHT11.ino'yu yükləyin, Arduino IDE -də açın.

Bir düyün əlavə edərkən, uyğun olaraq düyün nömrəsini dəyişdirin. Məsələn, indi 2 qovşaqdan istifadə edin, nodenumu dəyişdirmək üçün birinci düyün = 0 proqramı, ikinci düyün nodenumu dəyişdirmək üçün = 1 proqramı işlədin və s. Daha çox düyün əlavə edə bilərsiniz.

int16_t paket sayı = 0; // paket sayğacı, hər buraxılışa görə artırırıq

int16_t nodenum = 0; // Node nömrəsini dəyişdirin

Məlumat toplayın və çap edin

String mesajı = "#"+(String) nodenum+"Rütubət:"+(String) rütubət+"% Temperatur:"+(String) temperatur+"C"+"num:"+(String) paket sayı; Serial.println (mesaj); paket ++;

Rf95_server -ə mesaj göndərin

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);

Serial monitoru açın, toplanan temperatur və rütubət məlumatlarını görə və göndərə bilərsiniz.

#0 Rütubət: 6.00% Temperatur: 27.00C sayı: 0

Göndər: rf95_serverə göndərilir Göndərilir … Paketin tamamlanmasını gözləyirik … Cavab gözləyirəm… Cavab yoxdur, ətrafda dinləyici varmı?

Bir kənara qoyun, indi Lora Ağ geçidini düzəltməliyik.

Addım 5: MakePython Lora

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

Bu RFM96W modulunun və MakePython ESP32 -nin uyğun pinidir. MakePython ESP32 ilə əlaqəni asanlaşdırmaq üçün RFM96W modulu olan bir dövrə lövhəsi düzəltdim. Bəli, eyni anda məlumat göndərə və qəbul edə bilən iki RFM96W var, amma indi yalnız birinə ehtiyacım var.

Addım 6: LoRaWAN Ağ Geçidi

LoRaWAN Gateway
LoRaWAN Gateway

LoRaWAN, aşağı enerji istehlakı, ölçeklenebilirlik, yüksək xidmət keyfiyyəti və təhlükəsiz uzun məsafəli simsiz şəbəkə təmin edə bilən LoRa-ya əsaslanan aşağı güclü bir geniş sahə şəbəkəsidir.

MakePython Lora və ESP32 -ni yığaraq uzaq məlumatları qəbul edə və İnternetə yükləyə biləcək bir ağ geçidi hazırlayın.

Addım 7: Kodu yükləyin

Bütün 'xxx.py' fayllarını WiKi -dən yükləyin və ESP32 -ə yükləyin.

LoRaDuplexCallback.py faylını açın, ESP32 -nin şəbəkəyə qoşula və serverə məlumat yükləyə bilməsi üçün bəzi düzəlişlər etməlisiniz.

ThingSpeak -də əldə etdiyiniz API_KEY -ni dəyişdirin (bunu necə əldə edəcəyinizi daha sonra təqdim edəcəyəm)

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

API_KEY = 'UBHIRHVV9THUJVUI'

WiFi qoşulmaq üçün SSID və PSW dəyişdirin

ssid = "Makerfabs"

pswd = "20160704"

Addım 8: Məlumat əldə edin

Məlumatları aldıqdan sonra ESP32 -yə nə edəcəyinizi söyləyə biləcəyiniz LoRaDuplexCallback.py faylında on_receive (lora, payload) funksiyasını tapın. Aşağıdakı kod alınan temperatur və rütubət məlumatlarını təhlil edir və göstərir.

def on_receive (lora, faydalı yük):

lora.blink_led () rssi = lora.packetRssi () cəhd edin: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** Alınan mesaj *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Şəbəkəyə göndərilir …')) node = int (str (yük [5: 6], 'utf-8')) əgər node == 0: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 = "+myNum1+" & field2 = "+myNum2 res = urequests.get (URL) çap (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) e: print (e) print (" RSSI ilə {} n ". format (rssi)) istisna olmaqla istisna olmaqla, çap (res.text) çap edin.

Düyünləri ayırmaq üçün verilən saya və məlumatların URL vasitəsilə İnternetə yüklənməsinə görə, istənilən vaxt fərqli qovşaqların uzaqdakı məlumatlarını izləyə bilərik. Daha çox qovşaq əlavə edə və koda bənzər dəyişikliklər edə bilərsiniz.

düyün == 0 olarsa:

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

Addım 9: ThingSpeak IoT istifadə edin

ThingSpeak IoT istifadə edin
ThingSpeak IoT istifadə edin
ThingSpeak IoT istifadə edin
ThingSpeak IoT istifadə edin
ThingSpeak IoT istifadə edin
ThingSpeak IoT istifadə edin

Addımlar:

  1. Https://thingspeak.com/ saytında bir hesab yazın. Biriniz varsa, birbaşa daxil olun.
  2. Yeni ThingSpeak kanalı yaratmaq üçün Yeni Kanala vurun.
  3. Giriş adı, Təsvir, Sahə 1 seçin. Sonra kanalı aşağıya qeyd edin.
  4. API Açarları seçimini vurun, API Açarını kopyalayın, proqramda istifadə edəcəyik.

Addım 10: Nəticə

Nəticə
Nəticə
Nəticə
Nəticə
Nəticə
Nəticə

0 kilometr və 1 -ci qovşaq məlumatlarını bir -birindən 2 kilometr aralıda olsa da ekranda görə bilərsiniz.

ThingSpeak hesabınıza daxil olun və yaratdığınız kanala vurun, yüklənmiş temperatur və rütubət məlumatlarını görə bilərsiniz.

Field1 qrafiki və field2 qrafikləri Lora 0 nodunun rütubət və temperatur məlumatları, field3 qrafiki və field4 qrafiki isə Lora node 1 -in rütubət və temperatur məlumatlarıdır.

Tövsiyə: