תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-23 14:46
לורה הייתה מאוד פופולרית בשנים האחרונות. מודול התקשורת האלחוטית המשתמש בטכנולוגיה זו הוא בדרך כלל זול (באמצעות ספקטרום חופשי), קטן בגודלו, חסכוני באנרגיה ובעל מרחק תקשורת ארוך, והוא משמש בעיקר לתקשורת הדדית בין מסופי 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
זהו סכמטי של רדיו 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
זהו הסיכה המתאימה של מודול 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: אורך]), '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
שלבים:
- הרשמת חשבון ב https://thingspeak.com/. אם כבר יש לך אחד, היכנס ישירות.
- לחץ על ערוץ חדש כדי ליצור ערוץ ThingSpeak חדש.
- שם קלט, תיאור, בחר שדה 1. לאחר מכן שמור את הערוץ בתחתית.
- לחץ על האפשרות מפתחות API, העתק את מפתח ה- API, נשתמש בה בתוכנית.
שלב 10: תוצאה
אתה יכול לראות את הנתונים של צומת 0 וצומת 1 על המסך, למרות שהם במרחק של 2 קילומטרים זה מזה.
היכנס לחשבון ThingSpeak שלך ולחץ על הערוץ שיצרת, תוכל לראות את נתוני הטמפרטורה והלחות שהועלו.
גרף שדה 1 וגרפי שדה 2 הם נתוני הלחות והטמפרטורה של צומת Lora 0, וגרף השדה 3 וגרף השדה 4 הם נתוני הלחות והטמפרטורה של צומת לורה 1.
מוּמלָץ:
מד חום אינפרא אדום מבוסס Arduino - מד חום מבוסס IR באמצעות Arduino: 4 שלבים
מד חום אינפרא אדום מבוסס Arduino | מד חום מבוסס IR באמצעות Arduino: היי חברים במדריך זה נכין מדחום ללא מגע באמצעות arduino. מכיוון שלפעמים הטמפרטורה של הנוזל/מוצק גבוהה מדי או נמוכה ואז קשה ליצור איתו קשר ולקרוא אותו הטמפרטורה אז בתרחיש זה
חיישן תנועה מבוסס PIR מבוסס Arduino: 4 שלבים
חיישן תנועה מבוסס PIR מבוסס Arduino: בעזרת פרויקט זה, אתה יכול לשלוט על המצב הגבוה והרגישות של PIR
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): היי, היום אסביר כיצד להכין מחולל מוזיקה קטן מבוסס מזג אוויר. ועוצמת אור. אל תצפה שהוא ייצור שירים שלמים או יתפתח אקורד
משחק משחק ציפור פלאפפי עם לוח פיתוח מבוסס M5stack Esp32 מבוסס M5stick C: 5 שלבים
משחק משחק Flappy Bird עם לוח פיתוח מבוסס M5stack Esp32 מבוסס M5stick C: היי חברים היום נלמד כיצד להעלות את קוד משחק הציפורים ללוח הפיתוח של m5stick c המסופק על ידי m5stack. לפרויקט קטן זה תזדקקו לשני דברים הבאים: m5stick-c לוח פיתוח: https://www.utsource.net/itm/p/8663561.h
יחידת שלט רחוק מבוסס GSM/SMS מבוסס ארדואינו: 16 שלבים (עם תמונות)
יחידת שלט רחוק מבוסס GSM/SMS מבוסס ארדואינו:! ! ! הודעה ! ! ! מכיוון שמגדל הסלולר המקומי שודרג באזור שלי, אני כבר לא יכול להשתמש במודול GSM זה. המגדל החדש כבר לא תומך במכשירי 2G. לכן, אני כבר לא יכול לתת שום תמיכה בפרויקט זה. עם Wi