جدول المحتويات:

بوابة لورا على أساس MicroPython ESP32: 10 خطوات (بالصور)
بوابة لورا على أساس MicroPython ESP32: 10 خطوات (بالصور)

فيديو: بوابة لورا على أساس MicroPython ESP32: 10 خطوات (بالصور)

فيديو: بوابة لورا على أساس MicroPython ESP32: 10 خطوات (بالصور)
فيديو: LoRa Based Soil Moisture Monitoring 2024, شهر نوفمبر
Anonim
بوابة لورا على أساس MicroPython ESP32
بوابة لورا على أساس MicroPython ESP32
بوابة لورا على أساس MicroPython ESP32
بوابة لورا على أساس MicroPython ESP32

كانت لورا تحظى بشعبية كبيرة في السنوات الأخيرة. عادةً ما تكون وحدة الاتصالات اللاسلكية التي تستخدم هذه التقنية رخيصة (باستخدام الطيف الحر) ، وصغيرة الحجم ، وموفرة للطاقة ولديها مسافة اتصال طويلة ، وتستخدم بشكل أساسي للتواصل المتبادل بين محطات إنترنت الأشياء أو تبادل البيانات مع مضيف. هناك العديد من وحدات LoRa في السوق ، مثل RFM96W ، وهي مجهزة بشريحة SX1278 (متوافقة) ، وهي صغيرة جدًا. أنا استخدمه مع MakePython ESP32 كبوابة.

بعد ذلك ، سأستخدم عقدتين LoRa لإرسال بيانات درجة الحرارة والرطوبة إلى البوابة ، ثم تحميلها على الإنترنت من خلال البوابة. هنا سوف تتعلم كيفية تحميل البيانات عن بعد لعقد LoRa المتعددة إلى السحابة من خلال البوابة.

الخطوة 1: المستلزمات

اللوازم
اللوازم

1 * MakePython ESP32

MakePython ESP32 هي لوحة ESP32 مع شاشة SSD1306 OLED مدمجة.

2 * راديو Maduino LoRa

Maduino Lora Radio هو أحد حلول IoT (إنترنت الأشياء) استنادًا إلى وحدة Atmega328P MCU ووحدة Lora. يمكن أن يكون مشروعًا حقيقيًا لمشاريع إنترنت الأشياء (خاصة التطبيقات طويلة المدى منخفضة الطاقة)

2 * دهت 11

1 * مكياج بايثون لورا

الخطوة 2: عقدة لورا

عقدة لورا
عقدة لورا
عقدة لورا
عقدة لورا

هذا هو التخطيطي لراديو مادوينو لورا.

وحدة راديو Arduino Lora كعقدة LoRa ، نستخدمها لإرسال بيانات درجة الحرارة والرطوبة إلى البوابة.

(يقدم WiKi هذا كيفية استخدام راديو Maduino Lora وإرسال واستقبال البيانات)

الخطوة 3: توصيل العقدة والمستشعر

توصيل العقدة والمستشعر
توصيل العقدة والمستشعر
توصيل العقدة والمستشعر
توصيل العقدة والمستشعر

يتم توصيل VCC و GND لـ DHT11 بـ 3V3 و GND من Maduino ، ودبوس البيانات متصل بـ D4 من Maduino.

العقدة 0 موجودة في المنتزه ، والعقدة 1 في مبنى المكاتب بالقرب من الشركة ، وتفصل بينهما حوالي 2 كيلومتر ، وبعد ذلك أحصل على بيانات درجة الحرارة والرطوبة في المنزل

الخطوة 4: إرسال البيانات إلى البوابة

قم بتنزيل TransmitterDHT11.ino وافتحه على Arduino IDE.

عند إضافة عقدة ، قم بتعديل رقم العقدة وفقًا لذلك. على سبيل المثال ، استخدم الآن عقدتين ، العقدة الأولى لتعديل nodenum = 0 لتشغيل البرنامج ، والعقدة الثانية لتعديل nodenum = 1 لتشغيل البرنامج ، وهكذا ، يمكنك إضافة المزيد من العقدة.

int16_t packetnum = 0 ؛ // عداد الحزم ، نقوم بزيادة كل xmission

int16_t nodenum = 0 ؛ // تعديل رقم العقدة

اجمع البيانات واطبعها

رسالة السلسلة = "#" + (سلسلة) nodenum + "الرطوبة:" + (سلسلة) الرطوبة + "٪ درجة الحرارة:" + (سلسلة) درجة الحرارة + "C" + "num:" + (سلسلة) packetnum ؛ Serial.println (رسالة) ؛ حزمة ++ ؛

أرسل رسالة إلى 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٪ درجة الحرارة: 27.00 درجة مئوية: 0

إرسال: إرسال إلى rf95_server إرسال … في انتظار اكتمال الحزمة … في انتظار الرد … لا يوجد رد ، هل يوجد مستمع حولك؟

ضعها جانبًا ، الآن نحتاج إلى إنشاء بوابة لورا.

الخطوة 5: MakePython Lora

المكياج: بايثون لورا
المكياج: بايثون لورا
المكياج: بايثون لورا
المكياج: بايثون لورا
المكياج: بايثون لورا
المكياج: بايثون لورا

هذا هو الدبوس المقابل لوحدة RFM96W و MakePython ESP32. من أجل تسهيل الاتصال بـ MakePython ESP32 ، صنعت لوحة دائرة بوحدة RFM96W. نعم ، هناك نوعان من RFM96W عليهما ، يمكنهما إرسال البيانات واستلامها في نفس الوقت ، ولكني الآن أحتاج واحدة فقط.

الخطوة 6: بوابة 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"

قم بتعديل SSID و PSW لتوصيل WiFi

ssid = "Makerfabs"

pswd = "20160704"

الخطوة 8: استلام البيانات

ابحث عن وظيفة on_receive (lora، payload) في ملف LoRaDuplexCallback.py ، حيث يمكنك إخبار ESP32 بما يجب فعله بعد استلام البيانات. يوزع الكود التالي ويعرض بيانات درجة الحرارة والرطوبة المستلمة.

def on_receive (لورا ، الحمولة):

lora.blink_led () rssi = lora.packetRssi () حاول: length = len (الحمولة) -1 myStr = str ((الحمولة [4: length])، 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1 + 1):(length1 + 6)] myNum2 = myStr [(length1 + 20):(length1 + 25)] print ("*** الرسالة المستلمة *** / n {}". format (الحمولة)) if config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length]))، rssi) if wlan.isconnected (): global msgCount print ('Sending to network …') node = int (str (payload [5: 6]، 'utf-8')) إذا كانت العقدة == 0: URL = "https://api.thingspeak.com/update؟api_key=" + API_KEY + "& field1 = "+ myNum1 +" & field2 = "+ myNum2 res = urequests.get (URL) print (res.text) عقدة elif == 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) print (res.text)

الخطوة 9: استخدم ThingSpeak IoT

استخدم ThingSpeak IoT
استخدم ThingSpeak IoT
استخدم ThingSpeak IoT
استخدم ThingSpeak IoT
استخدم ThingSpeak IoT
استخدم ThingSpeak IoT

خطوات:

  1. قم بتسجيل حساب في https://thingspeak.com/. إذا كان لديك بالفعل واحد ، قم بتسجيل الدخول مباشرة.
  2. انقر فوق New Channel لإنشاء قناة ThingSpeak جديدة.
  3. اسم الإدخال ، الوصف ، حدد الحقل 1. ثم احفظ القناة في الأسفل.
  4. انقر فوق خيار API Keys ، وانسخ مفتاح API ، وسنستخدمه في البرنامج.

الخطوة 10: النتيجة

نتيجة
نتيجة
نتيجة
نتيجة
نتيجة
نتيجة

يمكنك رؤية بيانات العقدة 0 والعقدة 1 على الشاشة ، على الرغم من أن المسافة بينهما 2 كيلومتر.

قم بتسجيل الدخول إلى حساب ThingSpeak الخاص بك وانقر فوق القناة التي قمت بإنشائها ، يمكنك رؤية بيانات درجة الحرارة والرطوبة التي تم تحميلها.

يمثل الرسم البياني للحقل 1 والرسوم البيانية الميدانية 2 بيانات الرطوبة ودرجة الحرارة لعقدة لورا 0 ، والرسم البياني للحقل 3 والرسم البياني للحقل 4 هما بيانات الرطوبة ودرجة الحرارة لعقدة لورا 1.

موصى به: