فهرست مطالب:
- مرحله 1: لوازم
- مرحله 2: LoRa Node
- مرحله 3: اتصال گره و سنسور
- مرحله 4: ارسال داده ها به Gateway
- مرحله 5: MakePython Lora
- مرحله 6: LoRaWAN Gateway
- مرحله 7: بارگیری کد
- مرحله 8: دریافت داده ها
- مرحله 9: از ThingSpeak IoT استفاده کنید
- مرحله دهم: نتیجه
تصویری: Lora Gateway بر اساس MicroPython ESP32: 10 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
لورا در سالهای اخیر بسیار محبوب بوده است. ماژول ارتباطات بی سیم با استفاده از این فناوری معمولاً ارزان (با استفاده از طیف رایگان) ، از نظر اندازه کوچک ، کم مصرف و دارای فاصله ارتباطی طولانی است و عمدتا برای ارتباط متقابل بین پایانه های اینترنت اشیا یا تبادل داده با میزبان استفاده می شود. ماژول های 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
این شماتیک رادیو 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
این پین مربوط به ماژول RFM96W و MakePython ESP32 است. به منظور تسهیل اتصال با MakePython ESP32 ، من یک برد مدار با ماژول RFM96W ساختم. بله ، دو RFM96W روی آن وجود دارد که می تواند داده ها را همزمان ارسال و دریافت کند ، اما اکنون من فقط به یکی نیاز دارم.
مرحله 6: LoRaWAN Gateway
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 استفاده کنید
مراحل:
- در https://thingspeak.com/ یک حساب کاربری ثبت کنید. اگر قبلاً یکی از آنها را دارید ، مستقیماً وارد شوید.
- برای ایجاد یک کانال جدید ThingSpeak روی کانال جدید کلیک کنید.
- نام ورودی ، توضیحات ، فیلد 1 را انتخاب کنید. سپس کانال را در پایین ذخیره کنید.
- روی گزینه API Keys کلیک کنید ، API Key را کپی کنید ، ما از آن در برنامه استفاده می کنیم.
مرحله دهم: نتیجه
می توانید داده های گره 0 و گره 1 را روی صفحه مشاهده کنید ، اگرچه آنها 2 کیلومتر از یکدیگر فاصله دارند.
وارد حساب ThingSpeak خود شوید و بر روی کانالی که ایجاد کرده اید کلیک کنید ، می توانید داده های دما و رطوبت بارگذاری شده را مشاهده کنید.
نمودار field1 و نمودارهای field2 داده های رطوبت و دما گره 0 Lora و نمودار field3 و نمودار field4 داده های رطوبت و دما گره 1 Lora هستند.
توصیه شده:
پرتاب موشک کنترل شده بر اساس الکسا: 9 مرحله (همراه با تصاویر)
پرتاب موشک کنترل شده بر اساس الکسا: با نزدیک شدن به فصل زمستان. آن زمان از سال فرا می رسد که جشن چراغ ها جشن گرفته می شود. بله ، ما در مورد دیوالی صحبت می کنیم که یک جشنواره واقعی هندی است که در سراسر جهان جشن گرفته می شود. امسال ، دیوالی به پایان رسیده است و با دیدن افراد
MuMo - LoRa Gateway: 25 مرحله (همراه با تصاویر)
MuMo-LoRa Gateway: ### UPDATE 10-03-2021 // آخرین اطلاعات/به روز رسانی ها در صفحه github در دسترس خواهد بود: https: //github.com/MoMu-Antwerp/MuMo MuMo چیست؟ MuMo یک همکاری بین توسعه محصول (گروهی از دانشگاه آنتورپ) تحت
ارتفاع سنج (متر ارتفاع) بر اساس فشار اتمسفر: 7 مرحله (همراه با تصاویر)
ارتفاع سنج (متر ارتفاع) بر اساس فشار اتمسفر: [ویرایش] ؛ نسخه 2 را در مرحله 6 با ورودی ارتفاع به صورت دستی مشاهده کنید. این توصیف ساختمان یک ارتفاع سنج (ارتفاع متر) بر اساس آردوینو نانو و سنسور فشار اتمسفر Bosch BMP180 است. طراحی ساده است ، اما اندازه گیری
MQTT بر اساس MicroPython ESP32: 5 مرحله
MQTT بر اساس MicroPython ESP32: من دوست دارم از گربه های خانگی نگهداری کنم. بعد از یک روز کار شدید ، وقتی به خانه برسم ، گربه می تواند مرا آرام کند. پس از تمرینات سخت ، این گربه عادت خوبی به غذا خوردن منظم در & quot؛ رستوران & quot؛ هر روز. اما اخیراً باید چند روزی سفر کنم و
سریال UDP/IP Gateway برای آردوینو بر اساس ESP8266 Shield: 8 مرحله
Serial UDP/IP Gateway for Arduino based on ESP8266 Shield: من قبلاً این دستورالعمل & quot؛ چگونه می توان دروازه Wifi خود را برای اتصال Arduino به شبکه IP & quot ؛ منتشر کرد. از آنجا که من برخی از بهبودهای کد را انجام دادم و هنوز از این راه حل استفاده می کنم. با این وجود در حال حاضر برخی از محافظ های ESP8266 وجود دارد