תוכן עניינים:

Lora Gateway מבוסס על MicroPython ESP32: 10 שלבים (עם תמונות)
Lora Gateway מבוסס על MicroPython ESP32: 10 שלבים (עם תמונות)

וִידֵאוֹ: Lora Gateway מבוסס על MicroPython ESP32: 10 שלבים (עם תמונות)

וִידֵאוֹ: Lora Gateway מבוסס על MicroPython ESP32: 10 שלבים (עם תמונות)
וִידֵאוֹ: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, יולי
Anonim
Lora Gateway מבוסס על MicroPython ESP32
Lora Gateway מבוסס על MicroPython ESP32
Lora Gateway מבוסס על MicroPython ESP32
Lora Gateway מבוסס על MicroPython ESP32

לורה הייתה מאוד פופולרית בשנים האחרונות. מודול התקשורת האלחוטית המשתמש בטכנולוגיה זו הוא בדרך כלל זול (באמצעות ספקטרום חופשי), קטן בגודלו, חסכוני באנרגיה ובעל מרחק תקשורת ארוך, והוא משמש בעיקר לתקשורת הדדית בין מסופי IoT או חילופי נתונים עם מארח. ישנם הרבה מודולי LoRa בשוק, כגון RFM96W, המצויד בשבב SX1278 (תואם), שהוא קטן מאוד. אני משתמש בו עם MakePython ESP32 כשער.

לאחר מכן אשתמש בשני צמתים של LoRa כדי לשלוח את נתוני הטמפרטורה והלחות לשער ולאחר מכן להעלות אותם לאינטרנט דרך השער. כאן תלמד כיצד להעלות נתונים מרוחקים של צמתים רבים של LoRa לענן דרך השער.

שלב 1: אספקה

אספקה
אספקה

1*MakePython ESP32

MakePython ESP32 הוא לוח ESP32 עם תצוגת OLED משולבת SSD1306.

2*רדיו Maduino LoRa

רדיו Maduino Lora הוא פתרון IoT (אינטרנט של דברים) המבוסס על מודול Atmega328P Atmega328P של Atmel ולורה. זה יכול להיות פרויקט אמיתי לפרויקטים של IoT (במיוחד יישום לטווח ארוך, הספק נמוך)

2*DHT11

1*MakePython לורה

שלב 2: צומת LoRa

צומת LoRa
צומת LoRa
צומת LoRa
צומת LoRa

זהו סכמטי של רדיו Maduino Lora.

מודול רדיו Arduino Lora כצומת LoRa, אנו משתמשים בו כדי לשלוח נתוני טמפרטורה ולחות לשער.

(WiKi זה מציג כיצד להשתמש ברדיו Maduino Lora ולשלוח ולקבל נתונים)

שלב 3: חיבור צומת וחיישן

חיבור צומת וחיישן
חיבור צומת וחיישן
חיבור צומת וחיישן
חיבור צומת וחיישן

VCC ו- GND של DHT11 מחוברים ל- 3V3 ו- GND של Maduino, וסיכת ה- DATA מחוברת ל- D4 של Maduino.

צומת 0 נמצא בפארק, צומת 1 נמצא בבניין המשרדים ליד החברה, הם במרחק של כ -2 קילומטרים, ואז אני מקבל את נתוני הטמפרטורה והלחות שלהם בבית

שלב 4: שלח נתונים לשער

הורד את TransmitterDHT11.ino, פתח אותו ב- Arduino IDE.

בעת הוספת צומת, שנה את מספר הצומת בהתאם. לדוגמה, כעת השתמש ב -2 צמתים, הצומת הראשון לשינוי הצומת = 0 להפעלת התוכנית, הצומת השני לשינוי הצומת = 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% טמפרטורה: 27.00C מספר: 0

שידור: שולח ל rf95_server שולח … מחכה להשלמת המנה … מחכה לתשובה … אין תשובה, האם יש מאזין בסביבה?

שים אותו בצד, עכשיו אנחנו צריכים ליצור את שער לורה.

שלב 5: MakePython Lora

MakePython לורה
MakePython לורה
MakePython לורה
MakePython לורה
MakePython לורה
MakePython לורה

זהו הסיכה המתאימה של מודול RFM96W ו- MakePython ESP32. על מנת להקל על החיבור עם MakePython ESP32, הכנתי לוח מעגלים עם מודול RFM96W. כן, יש עליו שני RFM96W שיכולים לשלוח ולקבל נתונים בו זמנית, אבל עכשיו אני צריך רק אחד.

שלב 6: שער LoRaWAN

שער 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'

שנה 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: אורך]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1+1):(length1+6)] myNum2 = myStr [(length1+20):(length1+25)] print ("*** הודעה שהתקבלה *** / n {}". פורמט (מטען)) אם config_lora. IS_LORA_OLED: lora.show_packet (("{}". פורמט (מטען [4: אורך])), rssi) אם wlan.isconnected (): msgCount הדפסה גלובלית ('שולחת לרשת …') צומת = int (str (מטען [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 node == 1: URL =" https://api.thingspeak.com/update?api_key= "+API_KEY+" & field3 = "+myNum1+" & field4 = "+myNum2 res = urequests.get (URL) הדפסה (res.text) למעט חריגה בתור e: print (e) print (" with RSSI {} n ".format (rssi))

אם לשפוט את המספר כדי להבחין בצמתים, ולהעלות את הנתונים לאינטרנט באמצעות כתובת האתר, נוכל לעקוב אחר הנתונים המרוחקים של צמתים שונים בכל עת. אתה יכול להוסיף עוד צמתים ולבצע שינויים דומים בקוד.

אם צומת == 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, העתק את מפתח ה- API, נשתמש בה בתוכנית.

שלב 10: תוצאה

תוֹצָאָה
תוֹצָאָה
תוֹצָאָה
תוֹצָאָה
תוֹצָאָה
תוֹצָאָה

אתה יכול לראות את הנתונים של צומת 0 וצומת 1 על המסך, למרות שהם במרחק של 2 קילומטרים זה מזה.

היכנס לחשבון ThingSpeak שלך ולחץ על הערוץ שיצרת, תוכל לראות את נתוני הטמפרטורה והלחות שהועלו.

גרף שדה 1 וגרפי שדה 2 הם נתוני הלחות והטמפרטורה של צומת Lora 0, וגרף השדה 3 וגרף השדה 4 הם נתוני הלחות והטמפרטורה של צומת לורה 1.

מוּמלָץ: