فهرست مطالب:

Lora Gateway بر اساس MicroPython ESP32: 10 مرحله (همراه با تصاویر)
Lora Gateway بر اساس MicroPython ESP32: 10 مرحله (همراه با تصاویر)

تصویری: Lora Gateway بر اساس MicroPython ESP32: 10 مرحله (همراه با تصاویر)

تصویری: Lora Gateway بر اساس MicroPython ESP32: 10 مرحله (همراه با تصاویر)
تصویری: Using Heltec ESP32 OLED Wifi Kit 2024, نوامبر
Anonim
Lora Gateway بر اساس MicroPython ESP32
Lora Gateway بر اساس MicroPython ESP32
Lora Gateway بر اساس MicroPython ESP32
Lora Gateway بر اساس MicroPython ESP32

لورا در سالهای اخیر بسیار محبوب بوده است. ماژول ارتباطات بی سیم با استفاده از این فناوری معمولاً ارزان (با استفاده از طیف رایگان) ، از نظر اندازه کوچک ، کم مصرف و دارای فاصله ارتباطی طولانی است و عمدتا برای ارتباط متقابل بین پایانه های اینترنت اشیا یا تبادل داده با میزبان استفاده می شود. ماژول های LoRa زیادی در بازار وجود دارد مانند RFM96W که مجهز به تراشه SX1278 (سازگار) است که بسیار کوچک است. من از آن با MakePython ESP32 به عنوان یک دروازه استفاده می کنم.

در مرحله بعد ، من از دو گره LoRa برای ارسال داده های دما و رطوبت به دروازه استفاده می کنم ، و سپس آنها را از طریق دروازه به اینترنت بارگذاری می کنم. در اینجا نحوه بارگذاری داده های از راه دور چند گره LoRa را در ابر از طریق دروازه خواهید آموخت.

مرحله 1: لوازم

تدارکات
تدارکات

1*MakePython ESP32

MakePython ESP32 یک برد ESP32 با صفحه نمایش OLED SSD1306 است.

2*رادیو Maduino LoRa

رادیو Maduino Lora یک راه حل اینترنت اشیا (IoT) است که بر اساس ماژول Atmeel Atmega328P MCU و Lora طراحی شده است. این می تواند یک پروژه واقعی برای پروژه های اینترنت اشیاء (به ویژه کاربردهای دوربرد و کم مصرف) باشد

2*DHT11

1*MakePython Lora

مرحله 2: LoRa Node

گره LoRa
گره LoRa
گره LoRa
گره LoRa

این شماتیک رادیو Maduino Lora است.

ماژول رادیویی آردوینو لورا به عنوان گره LoRa ، ما از آن برای ارسال داده های دما و رطوبت به دروازه استفاده می کنیم.

(این WiKi نحوه استفاده از رادیو Maduino Lora و ارسال و دریافت داده ها را معرفی می کند)

مرحله 3: اتصال گره و سنسور

اتصال گره و سنسور
اتصال گره و سنسور
اتصال گره و سنسور
اتصال گره و سنسور

VCC و GND DHT11 به 3V3 و GND مادوینو و پین DATA به D4 مادوینو متصل است.

گره 0 در پارک ، گره 1 در ساختمان اداری نزدیک شرکت است ، آنها حدود 2 کیلومتر از هم فاصله دارند ، و سپس اطلاعات دما و رطوبت آنها را در خانه دریافت می کنم

مرحله 4: ارسال داده ها به Gateway

TransmitterDHT11.ino را بارگیری کنید ، آن را در Arduino IDE باز کنید.

هنگام اضافه کردن یک گره ، شماره گره را مطابق آن اصلاح کنید. به عنوان مثال ، اکنون از 2 گره استفاده کنید ، اولین گره برای تغییر nodenum = 0 برای اجرای برنامه ، گره دوم برای اصلاح nodenum = 1 برای اجرای برنامه و غیره ، می توانید گره بیشتری را اضافه کنید.

int16_t packetnum = 0؛ // شمارنده بسته ، ما در هر خروج افزایش می دهیم

int16_t گره = 0 ؛ // اصلاح شماره گره

داده ها را جمع آوری کرده و چاپ کنید

پیام رشته = "#"+(رشته) گره+"رطوبت:"+(رشته) رطوبت+"٪ دما:"+(رشته) دما+"C"+"num:"+(رشته) packetnum ؛ Serial.println (پیام) ؛ packetnum ++؛

به 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) ؛

مانیتور سریال را باز کنید ، می توانید داده های جمع آوری شده دما و رطوبت را مشاهده کرده و ارسال کنید.

#0 رطوبت: 6.00 Tem دما: 27.00 درجه سانتی گراد شماره: 0

انتقال: ارسال به rf95_server ارسال … منتظر بمانید تا بسته کامل شود … منتظر پاسخ باشید … پاسخی وجود ندارد ، آیا شنونده ای در اطراف است؟

کنار بگذارید ، حالا باید دروازه لورا را بسازیم.

مرحله 5: MakePython Lora

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

این پین مربوط به ماژول RFM96W و MakePython ESP32 است. به منظور تسهیل اتصال با MakePython ESP32 ، من یک برد مدار با ماژول RFM96W ساختم. بله ، دو RFM96W روی آن وجود دارد که می تواند داده ها را همزمان ارسال و دریافت کند ، اما اکنون من فقط به یکی نیاز دارم.

مرحله 6: LoRaWAN Gateway

دروازه LoRaWAN
دروازه LoRaWAN

LoRaWAN یک شبکه وسیع کم مصرف بر اساس LoRa است که می تواند یکی از این موارد را ارائه دهد: مصرف کم انرژی ، مقیاس پذیری ، کیفیت خدمات بالا و شبکه بی سیم ایمن از راه دور.

MakePython Lora و ESP32 را مونتاژ کنید تا دروازه ای ایجاد کنید که بتواند داده های از راه دور را دریافت کرده و در اینترنت بارگذاری کند.

مرحله 7: بارگیری کد

همه فایلهای ‘xxx.py’ را از WiKi بارگیری کرده و در ESP32 بارگذاری کنید.

فایل LoRaDuplexCallback.py را باز کنید ، باید برخی تنظیمات را انجام دهید تا ESP32 شما بتواند به شبکه متصل شود و داده ها را به سرور بارگذاری کند.

API_KEY را که در ThingSpeak بدست آورده اید اصلاح کنید (نحوه دستیابی به آن را بعداً معرفی خواهم کرد)

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

API_KEY = 'UBHIRHVV9THUJVUI'

برای اتصال WiFi ، SSID و PSW را تغییر دهید

ssid = "Makerfabs"

pswd = "20160704"

مرحله 8: دریافت داده ها

عملکرد on_receive (lora، payload) را در فایل LoRaDuplexCallback.py پیدا کنید ، جایی که می توانید به ESP32 بگویید پس از دریافت داده ها ، چه کاری انجام دهد. کد زیر داده های دما و رطوبت دریافتی را تجزیه و نمایش می دهد.

def on_receive (lora، payload):

lora.blink_led () rssi = lora.packetRssi () try: 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 ("*** پیام دریافتی *** / n {}" format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("" {} ". format (payload [4: length]))، rssi) if wlan.isconnected (): global msgCount print ('send to network …') node = int (str (payload [5: 6]، 'utf-8')) if 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) به استثنای e: print (e) print (" with RSSI {} n ".format (rssi))

قضاوت در مورد شماره برای تشخیص گره ها و بارگذاری داده ها در اینترنت از طریق URL ، می توانیم داده های از راه دور گره های مختلف را در هر زمان نظارت کنیم. می توانید گره های بیشتری اضافه کنید و تغییرات مشابهی را در کد ایجاد کنید.

اگر گره == 0:

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

مرحله 9: از ThingSpeak IoT استفاده کنید

از ThingSpeak IoT استفاده کنید
از ThingSpeak IoT استفاده کنید
از ThingSpeak IoT استفاده کنید
از ThingSpeak IoT استفاده کنید
از ThingSpeak IoT استفاده کنید
از ThingSpeak IoT استفاده کنید

مراحل:

  1. در https://thingspeak.com/ یک حساب کاربری ثبت کنید. اگر قبلاً یکی از آنها را دارید ، مستقیماً وارد شوید.
  2. برای ایجاد یک کانال جدید ThingSpeak روی کانال جدید کلیک کنید.
  3. نام ورودی ، توضیحات ، فیلد 1 را انتخاب کنید. سپس کانال را در پایین ذخیره کنید.
  4. روی گزینه API Keys کلیک کنید ، API Key را کپی کنید ، ما از آن در برنامه استفاده می کنیم.

مرحله دهم: نتیجه

نتیجه
نتیجه
نتیجه
نتیجه
نتیجه
نتیجه

می توانید داده های گره 0 و گره 1 را روی صفحه مشاهده کنید ، اگرچه آنها 2 کیلومتر از یکدیگر فاصله دارند.

وارد حساب ThingSpeak خود شوید و بر روی کانالی که ایجاد کرده اید کلیک کنید ، می توانید داده های دما و رطوبت بارگذاری شده را مشاهده کنید.

نمودار field1 و نمودارهای field2 داده های رطوبت و دما گره 0 Lora و نمودار field3 و نمودار field4 داده های رطوبت و دما گره 1 Lora هستند.

توصیه شده: