Mundarija:

Lora shlyuzi MicroPython ESP32 asosida: 10 qadam (rasmlar bilan)
Lora shlyuzi MicroPython ESP32 asosida: 10 qadam (rasmlar bilan)

Video: Lora shlyuzi MicroPython ESP32 asosida: 10 qadam (rasmlar bilan)

Video: Lora shlyuzi MicroPython ESP32 asosida: 10 qadam (rasmlar bilan)
Video: WiFi Project: Lora Soil Moisture Sensor- MicroPython + ESP32 + Lora 2024, Noyabr
Anonim
Lora shlyuzi MicroPython ESP32 asosida
Lora shlyuzi MicroPython ESP32 asosida
Lora shlyuzi MicroPython ESP32 asosida
Lora shlyuzi MicroPython ESP32 asosida

So'nggi yillarda Lora juda mashhur. Ushbu texnologiyadan foydalanadigan simsiz aloqa moduli odatda arzon (erkin spektrdan foydalangan holda), kichik o'lchamli, energiyani tejaydigan va uzoq aloqa masofasiga ega va asosan IoT terminallari o'rtasida o'zaro aloqa qilish yoki xost bilan ma'lumotlar almashish uchun ishlatiladi. Bozorda juda kichik bo'lgan SX1278 (mos) chip bilan jihozlangan RFM96W kabi ko'plab LoRa modullari mavjud. Men buni MakePython ESP32 bilan shlyuz sifatida ishlataman.

Keyin men harorat va namlik ma'lumotlarini shlyuzga yuborish uchun ikkita LoRa tugunidan foydalanaman va shlyuz orqali Internetga yuklayman. Bu erda siz bir nechta LoRa tugunlarining masofaviy ma'lumotlarini shlyuz orqali bulutga yuklashni o'rganasiz.

1 -qadam: materiallar

Ta'minotlar
Ta'minotlar

1*MakePython ESP32

MakePython ESP32 - bu o'rnatilgan SSD1306 OLED -displeyli ESP32 platasi.

2*Maduino LoRa radiosi

Maduino Lora Radio - bu Atmel Atmega328P MCU va Lora moduliga asoslangan IoT (Internet Internet) yechimi. Bu IoT loyihalari uchun haqiqiy loyiha bo'lishi mumkin (ayniqsa uzoq masofali, kam quvvatli dastur)

2*DHT11

1*MakePython Lora

2 -qadam: LoRa tuguni

LoRa tuguni
LoRa tuguni
LoRa tuguni
LoRa tuguni

Bu Maduino Lora radiosining sxemasi.

Arduino Lora Radio moduli LoRa tuguni sifatida biz shlyuzga harorat va namlik ma'lumotlarini yuborish uchun foydalanamiz.

(Bu WiKi Maduino Lora radiosidan qanday foydalanish va ma'lumotlarni yuborish va qabul qilishni tanishtiradi)

3 -qadam: tugun va sensor ulanishi

Sensor va tugun ulanishi
Sensor va tugun ulanishi
Sensor va tugun ulanishi
Sensor va tugun ulanishi

DHT11 VCC va GND 3V3 va GND ga Maduino, DATA pin esa Maduino D4 ga ulangan.

0 -tugun parkda, 1 -tugun kompaniya yaqinidagi ofis binosida, ular bir -biridan 2 kilometr uzoqlikda joylashgan, keyin men ularning harorat va namlik ma'lumotlarini uyda olaman.

4 -qadam: Ma'lumotlarni shlyuzga yuboring

TransmitterDHT11.ino -ni yuklab oling, uni Arduino IDE -da oching.

Tugun qo'shganda, tugun raqamini mos ravishda o'zgartiring. Masalan, endi 2 tugunni ishlating, dasturni ishga tushirish uchun nodenum = 0 ni o'zgartirish uchun ikkinchi tugun, dasturni ishga tushirish uchun = 1 tugunni o'zgartirish uchun va hokazo, siz yana tugun qo'shishingiz mumkin.

int16_t packetnum = 0; // paket hisoblagichi, biz har bir qabul qilish uchun oshiramiz

int16_t tugun = 0; // Tugun raqamini o'zgartiring

Ma'lumot to'plang va chop eting

String xabar = "#"+(String) nodenum+"Namlik:"+(String) namlik+"% Harorat:"+(String) harorati+"C"+"num:"+(String) paketi; Serial.println (xabar); paket ++;

Rf95_server -ga xabar yuboring

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

Seriya monitorini oching, siz to'plangan harorat va namlik ma'lumotlarini ko'rishingiz va yuborishingiz mumkin.

#0 Namlik: 6,00% Harorat: 27,00C soni: 0

Uzatish: rf95_serverga yuborilmoqda Yuborilmoqda… Paket tugallanmoqda … Javob kutilmoqda… Javob yo'q, atrofda tinglovchi bormi?

Bir chetga surib qo'ying, endi biz Lora shlyuzini yasashimiz kerak.

5 -qadam: MakePython Lora

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

Bu RFM96W moduli va MakePython ESP32 mos keladigan pinidir. MakePython ESP32 bilan ulanishni osonlashtirish uchun men RFM96W moduli bilan elektron platani yasadim. Ha, unda ikkita RFM96W mavjud, ular bir vaqtning o'zida ma'lumotlarni yuborishi va qabul qilishi mumkin, lekin hozir menga faqat bittasi kerak.

6 -qadam: LoRaWAN shlyuzi

LoRaWAN shlyuzi
LoRaWAN shlyuzi

LoRaWAN-bu LoRa-ga asoslangan kam quvvatli keng tarmoqli tarmoq bo'lib, u quyidagilarni ta'minlay oladi: kam quvvat sarfi, miqyosi kengayishi, xizmat ko'rsatishning yuqori sifati va xavfsiz shaharlararo simsiz tarmoq.

MakePython Lora va ESP32 -ni yig'ib, masofadan ma'lumotlarni qabul qiladigan va Internetga yuklaydigan shlyuz qiling.

7 -qadam: Kodni yuklab oling

WiKi -dan barcha "xxx.py" fayllarini yuklab oling va ularni ESP32 -ga yuklang.

LoRaDuplexCallback.py faylini oching, siz ESP32 tarmoqqa ulanishi va ma'lumotlarni serverga yuklashi uchun ba'zi sozlamalarni kiritishingiz kerak.

ThingSpeak -da olgan API_KEY -ni o'zgartiring (keyinroq uni qanday olishni bilib olaman)

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

API_KEY = 'UBHIRHVV9THUJVUI'

Wi -Fi -ga ulanish uchun SSID va PSW -ni o'zgartiring

ssid = "Makerfabs"

pswd = "20160704"

8 -qadam: ma'lumotlarni qabul qiling

LoRaDuplexCallback.py faylidan on_receive (lora, payload) funktsiyasini toping, bu erda ESP32 ga ma'lumotlarni olgandan keyin nima qilish kerakligini aytishingiz mumkin. Quyidagi kod qabul qilingan harorat va namlik ma'lumotlarini tahlil qiladi va ko'rsatadi.

def on_receive (yuk, yuk):

lora.blink_led () rssi = lora.packetRssi () harakat qilib ko'ring: uzunlik = len (yuk) -1 myStr = str ((yuk [4: uzunlik]), 'utf-8') uzunlik1 = myStr.find (':')) myNum1 = myStr [(uzunlik1+1):(uzunlik1+6)] myNum2 = myStr [(uzunlik1+20):(uzunlik1+25)] chop etish ("*** Qabul qilingan xabar *** / n {}". format (foydali yuk)) agar config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (yuk [4: uzunlik])), rssi) agar wlan.isconnected (): global msgCount chop etish ('Tarmoqqa yuborilmoqda…') tugun = int (str (yuk [5: 6], 'utf-8')) agar tugun == 0 bo'lsa: URL = "https://api.thingspeak.com/update?api_key="+API_KEY+"& field1 = "+myNum1+" & field2 = "+myNum2 res = urequests.get (URL) chop etish (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) chop etish (res.text) istisno tashqari, e: print (e) print (" RSSI bilan {} n ". format (rssi))

Tugunlarni ajratish va Internet orqali ma'lumotlarni URL manziliga yuklash bo'yicha raqamga qaraganda, biz istalgan vaqtda har xil tugunlarning masofaviy ma'lumotlarini kuzata olamiz. Siz boshqa tugunlarni qo'shishingiz va kodga o'xshash o'zgarishlarni kiritishingiz mumkin.

agar tugun == 0 bo'lsa:

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

9 -qadam: ThingSpeak IoT -dan foydalaning

ThingSpeak IoT -dan foydalaning
ThingSpeak IoT -dan foydalaning
ThingSpeak IoT -dan foydalaning
ThingSpeak IoT -dan foydalaning
ThingSpeak IoT -dan foydalaning
ThingSpeak IoT -dan foydalaning

Qadamlar:

  1. Https://thingspeak.com/ saytida ro'yxatdan o'ting. Agar sizda allaqachon mavjud bo'lsa, to'g'ridan -to'g'ri kiring.
  2. Yangi ThingSpeak kanalini yaratish uchun Yangi kanalni bosing.
  3. Kirish nomi, Tavsif, 1 -maydonni tanlang. Keyin kanalni pastda saqlang.
  4. API kalitlari variantini bosing, API kalitini nusxalash, biz uni dasturda ishlatamiz.

10 -qadam: Natija

Natija
Natija
Natija
Natija
Natija
Natija

Siz 0 -tugun va 1 -tugun ma'lumotlarini ekranda ko'rishingiz mumkin, lekin ular bir -biridan 2 kilometr masofada joylashgan.

ThingSpeak hisobingizga kiring va o'zingiz yaratgan kanalni bosing, siz yuklangan harorat va namlik ma'lumotlarini ko'rishingiz mumkin.

Dala1 grafigi va maydon2 grafigi - Lora 0 tugunining namlik va harorat ma'lumotlari, maydon3 grafigi va maydon4 grafigi - Lora 1 tugunining namlik va harorat ma'lumotlari.

Tavsiya: