תוכן עניינים:
- שלב 1: שטר החומר
- שלב 2: חיישן טמפרטורה DS18B20
- שלב 3: חיבור החיישנים ל- NodeMCU
- שלב 4: התקנת הספריות המתאימות
- שלב 5: בדיקת החיישנים
- שלב 6: שימוש ב- Blynk
- שלב 7: סיכום
וִידֵאוֹ: IoT פשוט: מעקב אחר חיישנים מרובים: 7 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
לפני מספר שבועות פרסמתי כאן הדרכה בנושא ניטור טמפרטורה באמצעות DS18B20, חיישן דיגיטלי המתקשר באמצעות אוטובוס חד-חוטי, ושולח נתונים דרך האינטרנט עם NodeMCU ובלינק:
IoT נעשה פשוט: ניטור טמפרטורה בכל מקום
אבל מה שפספסנו בחיפושים, היה אחד היתרונות הגדולים של חיישן מסוג זה שהוא האפשרות לאסוף נתונים מרובים, ממספר חיישנים המחוברים לאותו אוטובוס בעל חוט אחד. ועכשיו הגיע הזמן גם לחקור אותו.
נרחיב את מה שפותח במדריך האחרון, ונעקוב כעת אחר שני חיישני DS18B20, שהוגדרו אחד ב- Celcius והשני ב- פרנהייט. הנתונים יישלחו לאפליקציית Blynk, כפי שמוצג בתרשים הבלוקים לעיל.
שלב 1: שטר החומר
- NodeMCU ESP 12-E (*)
- 2 X חיישן טמפרטורה DS18B20
- התנגדות 4.7K אוהם
- לוח לחם
- תִיוּל
(*) ניתן להשתמש כאן בכל סוג של מכשיר ESP. הנפוצים ביותר הם NodeMCU V2 או V3. שניהם תמיד יעבדו מצוין.
שלב 2: חיישן טמפרטורה DS18B20
נשתמש במדריך זה בגרסה אטומה למים של חיישן DS18B20. הוא שימושי מאוד לטמפרטורה מרוחקת בתנאים רטובים, למשל על אדמה לחה. החיישן מבודד ויכול לבצע מדידות עד 125oC (Adafrut לא ממליצה להשתמש בו מעל 100oC בגלל מעיל ה- PVC הכבל שלו).
ה- DS18B20 הוא חיישן דיגיטלי מה שעושה אותו טוב לשימוש אפילו למרחקים ארוכים! חיישני טמפרטורה דיגיטליים בעלי חוט אחד הם מדויקים למדי (± 0.5 מעלות צלזיוס בהרבה מהטווח) ויכולים לתת עד 12 פיסות דיוק מהממיר הדיגיטלי לאנלוגי המשולב. הם עובדים מצוין עם ה- NodeMCU באמצעות סיכה דיגיטלית אחת, וניתן אפילו לחבר מספר אחד לאותו סיכה, לכל אחד מזהה ייחודי של 64 סיביות שנצרב במפעל כדי להבדיל ביניהם.
החיישן פועל מ 3.0 עד 5.0V, מה שאומר שהוא יכול להיות מופעל ישירות מאחד מהסיכות 3.3V NodeMCU.
לחיישן 3 חוטים:
- שחור: GND
- אדום: VCC
- צהוב: נתוני חוט אחד
כאן תוכל למצוא את הנתונים המלאים: גליון הנתונים DS18B20
שלב 3: חיבור החיישנים ל- NodeMCU
- חבר את 3 החוטים מכל חיישן בלוח הלחם המיני כפי שמוצג בתמונה למעלה. השתמשתי במחברים מיוחדים כדי לתקן את כבל החיישן עליו טוב יותר.
-
שים לב ששני החיישנים במקביל. אם יש לך יותר משני חיישנים, עליך לעשות אותו הדבר.
- אדום ==> 3.3V
- שחור ==> GND
- צהוב ==> D4
- השתמש בנגד של 4.7K אוהם בין VCC (3.3V) לנתונים (D4)
שלב 4: התקנת הספריות המתאימות
על מנת להשתמש ב- DS18B20 כראוי, יהיה צורך בשתי ספריות:
- OneWire
- טמפרטורה של דאלאס
התקן את שתי הספריות במאגר הספרייה שלך Arduino IDE.
שים לב שספריית OneWire חייבת להיות הספרייה המיוחדת, שתשתנה לשימוש עם ESP8266, אחרת תקבל שגיאה במהלך האוסף. את הגרסה האחרונה תמצא בקישור למעלה.
שלב 5: בדיקת החיישנים
לבדיקת החיישנים, הורד את הקובץ שלהלן מ- GitHub שלי:
NodeMCU_DS18B20_Dual_Se nsor_test.ino
/**************************************************************
*בדיקת שולח טמפרטורה מרובה**2 x חיישן OneWire: DS18B20*מחובר ל- NodeMCU D4 (או Arduino Pin 2)**פותח על ידי מרסלו רובאי - 25 באוגוסט 2017 **************** ******************************************* כלול את #define ONE_WIRE_BUS 2 // DS18B20 ב- NodeMCU pin D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); הגדרת void () {Serial.begin (115200); DS18B20.begin (); Serial.println ("בדיקת נתוני חיישן כפול"); } לולאת חלל () {מרחף temp_0; צף temp_1; DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // חיישן 0 יתעד את הטמפ 'ב- Celcius temp_1 = DS18B20.getTempFByIndex (1); // חיישן 0 יתעד את Temp ב- Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); עיכוב (1000); }
במבט על הקוד לעיל, עלינו לשים לב כי השורות החשובות ביותר הן:
temp_0 = DS18B20.getTempCByIndex (0); // חיישן 0 יתעד את הטמפ 'ב- Celcius
temp_1 = DS18B20.getTempFByIndex (1); // חיישן 0 יתפוס את הטמפ 'בפרנהייט
הראשון יחזיר ערך מחיישן [0] (עיין ב"אינדקס (0) ") בצלסיוס (עיין בחלק הקוד:" getTempC ". השורה השנייה קשורה בחיישן [1] ותחזיר נתונים ב פרנהייט. יכול להיות שיש לך כאן "n" חיישנים מכיוון שיש לך "אינדקס" אחר לכל אחד מהם.
העלה כעת את הקוד ב- NodeMCU שלך ופקח על הטמפרטורה באמצעות הצג הסידורי.
התמונה לעיל מציגה את התוצאה הצפויה. החזק כל אחד מהחיישנים בידך, אתה אמור לראות את הטמפרטורה עולה.
שלב 6: שימוש ב- Blynk
ברגע שתתחיל ללכוד נתוני טמפרטורה, הגיע הזמן לראות אותם מכל מקום. אנו נעשה זאת באמצעות Blynk. אז, כל הנתונים שנתפסו יוצגו בזמן אמת במכשיר הנייד שלך וגם נבנה מחסן היסטורי לכך.
בצע את השלבים הבאים:
- צור פרויקט חדש.
- תן לזה שם (במקרה שלי "צג טמפרטורה כפולה")
- בחר מכשיר חדש - ESP8266 (WiFi) בתור "המכשירים שלי"
- העתק את ה- AUTH TOKEN שישמש בקוד (תוכל לשלוח אותו לדוא"ל שלך).
-
כולל שני ווידג'טים "מד", המגדירים:
- סיכה וירטואלית לשימוש עם כל חיישן: V10 (חיישן [0]) ו- V11 (חיישן [1])
- טווח הטמפרטורות: -5 עד 100 מעלות צלזיוס לחיישן [0]
- טווח הטמפרטורות: 25 עד 212 מעלות צלזיוס לחיישן [1]
- תדירות קריאת הנתונים: שנייה אחת
- כולל יישומון "גרף היסטוריה", המגדיר את V10 ו- V11 כסיכות וירטואליות
- הקש על "הפעל" (המשולש בפינה הימנית למעלה)
כמובן שאפליקציית Blynk תשלח לך שה- NodeMCU אינו מקוון. הגיע הזמן להעלות את הקוד המלא ב- Arduino IDE שלך. אתה יכול להשיג את זה כאן:
NodeMCU_Dual_Sensor_Blynk_Ext.ino
שנה את "נתוני הדמה" עם אישורים משלך.
/ * אישורי בלינק */
char auth = "קוד AUTH BLYNK שלך כאן"; / * אישורי WiFi */ char ssid = "SSID שלך"; char pass = "סיסמתך";
וזה הכל!
קח את הקוד המלא. זה בעצם הקוד הקודם, שבו נכנסנו עם פרמטרים של Blynk ופונקציות ספציפיות. שימו לב ל -2 השורות האחרונות של הקוד. אלה החשובים ביותר כאן. אם יש לך יותר חיישנים שאוספים נתונים, כדאי שיהיו לך גם שורות חדשות שוות ערך לאלה (עם הגדרות סיכות וירטואליות חדשות רלוונטיות).
/**************************************************************
* צג טמפרטורות מרובות IoT עם Blynk * ספריית Blynk מורשית ברישיון MIT * קוד דוגמה זה הינו נחלת הכלל. **חיישן מרובה OneWire: DS18B20*פותח על ידי מרסלו רובאי - 25 באוגוסט 2017 ********************************* **************************//*ESP & Blynk*/ #include #include #define BLYNK_PRINT Serial // הגיבו על כך ל- השבת הדפסים וחסוך מקום / * אישורי בלינק * / char authent = "קוד האות של BLYNK שלך כאן"; / * אישורי WiFi */ char ssid = "SSID שלך"; char pass = "סיסמתך"; / * TIMER */ #include SimpleTimer timer; / * חיישן טמפרטורה DS18B20 */ #include #include #define ONE_WIRE_BUS 2 // DS18B20 על arduino pin2 תואם ל- D4 בלוח הפיזי OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; הגדרת void () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20.begin (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("בדיקת נתוני חיישן כפול"); } לולאת חלל () {timer.run (); // יוזם SimpleTimer Blynk.run (); } /********************************************* ****שלח נתוני חיישנים לבלינק *************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // חיישן 0 יתעד את הטמפ 'ב- Celcius temp_1 = DS18B20.getTempFByIndex (1); // חיישן 0 יתעד את Temp ב- Fahrenheit Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // סיכה וירטואלית V10 Blynk.virtualWrite (11, temp_1); // סיכה וירטואלית V11}
לאחר העלאת הקוד והפעלתו, בדוק את אפליקציית Blynk. כעת הוא אמור לפעול כפי שמוצג במסך ההדפסה למעלה מהאייפון שלי.
שלב 7: סיכום
כמו תמיד, אני מקווה שהפרויקט הזה יכול לעזור לאחרים למצוא את דרכם בעולם המרגש של אלקטרוניקה, רובוטיקה ו- IoT!
אנא בקר ב- GitHub שלי לקבצים מעודכנים: צג טמפ 'כפול של NodeMCU
לפרויקטים נוספים, בקר בבלוג שלי: MJRoBot.org
כל הכבוד מדרום העולם!
נתראה בהנחיה הבאה שלי!
תודה, מרסלו
מוּמלָץ:
ערכות רכב חכמות למעקב אחר חכמות DIY מעקב אחר רגישות לרכב: 7 שלבים
ערכות רכב חכמות למעקב אחר רובוט חכם עוקבות אחר מכוניות רגישות: עיצוב על ידי SINONING ROBOT אתה יכול לקנות ממכונית רובוט מעקב Theory LM393 שבב להשוות את שני הפוטורזיסטור, כאשר יש צד פוטוסיסטור צד אחד על לבן הצד של המנוע ייעצר מייד, הצד השני של המנוע להסתובב כך ש
חיבור חיישנים מרובים לנמל סידורי אחד של ארדואינו: 4 שלבים
חיבור חיישנים מרובים ליציאה טורית אחת של ARDUINO UNO: במדריך זה נרחיב יציאה טורית אחת של Arduino UNO UART (Rx/Tx) כך שניתן לחבר מספר חיישני Atlas. ההרחבה מתבצעת באמצעות לוח הרחבה של יציאה סידרית 8: 1. נמל הארדואינו מקושר למרחיב לאחר ש
חיבור חיישנים מרובים ל- RASPBERRY PI: 6 שלבים (עם תמונות)
חיבור חיישנים מרובים ל- RASPBERRY PI: בפרויקט זה נחבר שלושה מחיישני EZO של אטלס סיינטיפיק (pH, חמצן מומס וטמפרטורה) ל- Raspberry Pi 3B+. במקום לחבר את המעגלים ל- Raspberry Pi, נשתמש במגן Tentacle T3 של Whitebox Labs. T
2.4 תחנת מזג אוויר Arduino TFT עם חיישנים מרובים: 7 שלבים
2.4 תחנת מזג אוויר Arduino TFT עם חיישנים מרובים: תחנת מזג אוויר Arduino ניידת עם TFT LCD וכמה חיישנים
בוט מעקב אחר שלדה מעקב מרחוק: 7 שלבים (עם תמונות)
בוט מעקב אחר שלדה מחוסרת מרחוק: מבוא: אז זה היה פרוייקט שרציתי להתחיל ולסיים עוד בשנת 2016, אולם בשל עבודות ושפע של דברים אחרים הצלחתי רק להתחיל ולהשלים את הפרויקט הזה בשנת 2016 שנה חדשה 2018! זה לקח בערך 3 שעות