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

לוגר טמפרטורות WiFi (עם ESP8266): 11 שלבים (עם תמונות)
לוגר טמפרטורות WiFi (עם ESP8266): 11 שלבים (עם תמונות)

וִידֵאוֹ: לוגר טמפרטורות WiFi (עם ESP8266): 11 שלבים (עם תמונות)

וִידֵאוֹ: לוגר טמפרטורות WiFi (עם ESP8266): 11 שלבים (עם תמונות)
וִידֵאוֹ: Термостат Terneo sx для теплых полов, возможности, настройка, интеграция в Home Assistant 2024, יולי
Anonim
Image
Image
חומרים
חומרים

שלום, שמח לראותך כאן. אני מקווה שבמדריך זה תוכלו למצוא מידע שימושי. אל תהסס לשלוח לי הצעות, שאלות, … להלן כמה נתונים בסיסיים וסקירה מהירה של הפרויקט. למשתמשי מובייל: וידאו. ספר לי מה אתה חושב על הפרויקט בקטע ההערות, תודה. לאחרונה קניתי לוח NodeMcu (מבוסס esp8266) רק כדי לנסות אז זה לא פרויקט ממש מתקדם. אבל זה עובד וזה מה שאני צריך, אז זה בסדר. הפונקציה העיקרית של לוגר הנתונים היא לאסוף טמפרטורה ולשמור אותה בשרת. זה מאפשר למשתמשים לבדוק נתונים ולתרשים באינטרנט גם כשהם לא נמצאים באותו מיקום של הכורסת (למשל לתחנת מזג אוויר). תכונה שימושית נוספת היא עדכון OTA הכלול בקוד המאפשר למשתמש לעדכן ולהתאים אישית את התוכנה בקלות. אנתח שני חיישנים ואת שיטת הרכישה הקשורה שלהם כדי לאזן את כל היתרונות והחסרונות.

ספוילר: לאחר קצת בדיקות גיליתי שחיישן דיגיטלי כמו DS18B20 הוא הפתרון הטוב ביותר מכיוון שהוא מציע יציבות ודיוק גבוה יותר. הוא כבר עמיד למים ועם הכבל.

שלב 1: חומרים

חומרים
חומרים
חומרים
חומרים
חומרים
חומרים

זהו פרויקט מינימלי עם מעט רכיבים חיצוניים בלבד, לשם כך רשימת ה- BOM תהיה ממש קצרה. עם זאת, בואו נראה איזה חומר מבוקש:

  • NodeMcu V3 (או כל מעבד תואם ESP8266);
  • RGB LED (אנודה משותפת);
  • נגדים לד (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (מדחום משולב Maxim);
  • LM35 (מדחום טקסס אינסטרומנט);
  • סוללה חיצונית (אופציונלי);
  • כֶּבֶל;
  • מחבר (כדי להפוך אותו ל"מתקדם "יותר);
  • Box (אופציונלי, שוב כדי להפוך אותו ל"מתקדם "יותר);
  • מחזיק לד (אופציונלי);

הערה: כפי שאמרתי עליך לבחור באחת משתי השיטות. אם תבחר במדחום LM35, תזדקק לכמה רכיבים נוספים:

  • Attiny45/85;
  • מתכנת AVR (או Arduino כ- ISP);
  • נגד (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • מחבר רצועות 2.54 מ"מ (אופציונלי)
  • דיודה (2x1N914)
  • Perfboard או PCB;

שלב 2: בחירת החיישן

בחירת החיישן
בחירת החיישן

בחירת החיישן יכולה להיות צעד קשה: כיום ישנם טונות של מתמרים (TI מציעה 144 אלמנטים שונים) אנלוגיים ודיגיטליים עם טווח טמפרטורות, דיוק ומארז שונים.

  • ניתן לשנות בקלות את כונן הנתונים מטמפרטורה לכמות אחרת (מתח, זרם, …);
  • יכול להיות קצת יותר זול;
  • קל לשימוש מכיוון שהוא אינו דורש ספרייה מיוחדת;

חסרונות:

  • דרוש ADC (שיכול להשפיע על דיוק המדידה) ורכיבים חיצוניים אחרים. מכיוון שיש ל- esp8266 רק ADC אחד (ולא ממש מדויק) הייתי מציע להשתמש באחד חיצוני.
  • צריך כבל ייעודי עם דחיית רעש מכיוון שכל מתח מושרה יכול לשנות את התוצאה.

לאחר קצת מחשבה החלטתי להשתמש ב- LM35, חיישן לינארי בעל גורם קנה מידה +10mV/° C עם דיוק של 0.5 ° C וזרם נמוך מאוד (בערך 60uA) עם מתח הפעלה מ 4V עד 30V. לפרטים נוספים אני מציע לראות את גליון הנתונים: LM35.

חיישנים דיגיטליים (מומלץ מאוד) יתרונות:

כמעט כל הרכיבים החיצוניים הדרושים;

ADC משולב

חסרונות:

ספריית בקשה או תוכנה יכולים לפענח את האות הדיגיטלי (I2C, SPI, Serial, One Wire, …);

יקר יותר;

בחרתי ב- DS18B20 כי מצאתי קבוצה של 5 חיישנים עמידים למים באמזון וכי היא מתועדת באופן נרחב באינטרנט. התכונה העיקרית היא מדידת 9-12bit, אוטובוס חד חוטי, מתח אספקה 3.0 עד 5.5, דיוק 0.5 ° C. שוב, לפרטים נוספים הנה גליון הנתונים: DS18B20.

שלב 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

בואו ננתח כיצד יישמתי את ה- ADC החיצוני ותכונה נוספת עבור מדחום LM35. מצאתי כבל עם שלושה חוטים, אחד עם מיגון ושניים בלי. החלטתי להוסיף קבל ניתוק כדי לייצב את מתח האספקה ליד החיישן. כדי להמיר טמפרטורה אנלוגית לדיגיטלית, השתמשתי במעבד Attiny85 באריזה dip8 (שוב למידע נוסף עיין בגיליון הנתונים: attiny85). הדבר החשוב ביותר עבורנו הוא ה- ADC של 10 סיביות (לא ממש הטוב ביותר אבל מספיק מדויק בשבילי). כדי לתקשר עם Esp8266 החלטתי להשתמש בתקשורת סדרתית תוך התחשבות בכך ש esp8266 עובד עם 3.3V ו- attiny85 ב 5V (מכיוון שהוא צריך להפעיל את החיישן). לשם כך השתמשתי במפריד מתח פשוט (ראה סכמטי). כדי לקרוא טמפרטורה שלילית עלינו להוסיף כמה רכיבים חיצוניים (הנגד 2x1N914 ו- 1x18k), מכיוון שאיני רוצה להשתמש באספקת חשמל שלילית. הנה הקוד: מאגר TinyADC. הערה: כדי לאסוף קוד זה יהיה עליך להתקין attiny to ide (הכנס את זה באפשרות: https://drazzy.com/package_drazzy.com_index.json), אם אינך יודע כיצד לעשות זאת, פשוט חפש ב- Google. או העלה קובץ.hex ישירות.

שלב 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

קניתי את החיישנים האלה מאמזון (5 עולה בערך 10 €). הוא הגיע עם מכסה נירוסטה ואורך כבל באורך 1 מ '. חיישן זה יכול להחזיר 9 עד 12 סיביות טמפרטורה. ניתן לחבר הרבה חיישן לאותו סיכה מכיוון שלכולם יש מזהה ייחודי. כדי לחבר את DS18B20 ל- esp8266 אתה יכול פשוט לעקוב אחר התרשים (התמונה השנייה). מאחר שהחלטתי שלכורסת שלי יהיו שלוש בדיקות, נאלצתי להבחין איזו מהן. אז חשבתי לתת להם צבע המשויך באמצעות תוכנה לכתובת שלהם. השתמשתי באיזו שפופרת תרמית הניתנת להתכווצות (תמונה שלישית).

שלב 5: קוד ESP8266

קוד ESP8266
קוד ESP8266
קוד ESP8266
קוד ESP8266

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

  • עדכון OTA: אין צורך לחבר את esp8266 למחשב שלך בכל פעם שאתה צריך להעלות את הקוד (עליך לעשות זאת רק בפעם הראשונה);
  • מנהל אלחוטי, אם רשת הרשת האלחוטית תשתנה, אין צורך להעלות מחדש את הסקיצה. אתה יכול פשוט להגדיר שוב את פרמטרי הרשת המתחברים לנקודת גישה esp8266;
  • העברת נתונים של Thingspeak;
  • הן LM35 והן DS18B20 נתמכות;
  • ממשק משתמש פשוט (RGB LED מציין מידע שימושי);

אנא התנצל עליי כי התוכנה שלי אינה הטובה ביותר והיא אינה מסודרת היטב. לפני העלאה למכשיר, עליך לשנות כמה פרמטרים כדי להתאים את הקוד להגדרות שלך. כאן תוכל להוריד את התוכנה. תצורה נפוצה של LM35 ו- DS18B20 עליך לשנות הגדרת סיכה, אסימון, מספר ערוץ, משתמש וסיסמה לעדכון OTA. קו 15 עד 23.

#define אדום YOURPINHERE #הגדר YOURPINHERE ירוק שלך

#define blue YOURPINHERE const char* host = "בחר כתובת מארח"; // לא ממש נחוץ אתה יכול להשאיר esp8266-webupdate const char* update_path = "/firmware"; // לשנות את הכתובת לעדכון ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; לא חתום myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";

שלב 6: קוד ESP8266: משתמש LM35

עליך לחבר את לוח האטני ל- esp8266, כדי להפעיל את יחידת ה- ADC באמצעות סיכת ה- VU ו- pin G. עליך לבחור באיזה סיכה ברצונך להשתמש לתקשורת טורית (כדי שהחומרה לא תהיה נקודתית לצורך ניפוי באגים). יש לבחור סיכת Tx אך לא ממש בשימוש. (שורה 27). SoftwareSerial mySerial (RXPIN, TXPIN); בחלק העליון עליך להוסיף: #define LM35USER

שלב 7: קוד ESP8266: משתמש DS18B20

כפעולה ראשונה עליך לזהות את כתובת המכשיר עבור כל חיישן. הידור ותכנת קוד זה ל- esp ותחפש בסדרה את התוצאות. ניתן למצוא את הקוד כאן (חפש כותרת זו בדף: «קרא כתובות פנימיות בודדות של DS18B20»). חבר רק חיישן אחד כדי להשיג את הכתובת, התוצאות צריכות להיות בערך כך (מספר אקראי כאן! רק כדוגמה): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 ואז עליך לשנות את הקוד שלי בסעיף " תצורה עבור DS18B20 "(שורה 31 עד 36)":

#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECION // (מ 9 עד 12) #עיכוב הגדרת Dallas READINTERVAL // (במילי שניות, המינימום הוא 15s או 15000mS) DeviceAddress blueSensor = 0x1, 0x, 0x, 0x, 0x, 0x12}; // שנה עם ADDRESS DeviceAddress שלך redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // שנה עם ה- ADRESS DeviceAddress שלך greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // שנה עם כתובתך בחלק העליון עליך להוסיף: #define DSUSER

שלב 8: ESP8266 טריק קטן

ESP8266 טריק קטן
ESP8266 טריק קטן

לאחר קצת בדיקות גיליתי שאם תחבר את esp8266 ללא תכנות, הוא לא יפעיל את הקוד עד שתלחץ פעם אחת על איפוס. כדי לפתור בעיה זו, לאחר קצת מחקר, גיליתי שעליך להוסיף נגד משיכה מ -3.3V ל- D3. זה יגיד למעבד לטעון את הקוד מזיכרון הבזק. בשיטה זו ניתן להשתמש ב- D3 ישירות לקלט נתונים עבור חיישני DS18B20.

שלב 9: פעולה ראשונה

מבצע בפעם הראשונה
מבצע בפעם הראשונה
מבצע בפעם הראשונה
מבצע בפעם הראשונה

אם העלית את הקוד כהלכה אך לעולם לא השתמשת בספריית מנהל ה- Wifi הגיע הזמן להגדיר את חיבור ה- wifi שלך. המתן עד שתראה את נורית ה- RGB מהבהבת מהר יותר מבעבר, ולאחר מכן חפשי עם הנייד או המחשב שלך את רשת ה- wifi שנקראת "AutoConnectAp" והתחבר. לאחר החיבור, פתח דפדפן אינטרנט והזן 192.168.4.1, תמצא את ממשק ה- GUI של מנהל ה- wifi (ראה תמונות) ולחץ על "הגדר Wifi". המתן עד ש- esp8266 יחפש רשתות wifi ובחר את הרצויה. הכנס סיסמא ולחץ על "שמור". Esp8266 יופעל מחדש (לא אכפת שה- RGB הוביל הפעם מכיוון שהוא יפיק מידע אקראי) ויתחבר לרשת.

שלב 10: סיכום

סיכום
סיכום
סיכום
סיכום
סיכום
סיכום
סיכום
סיכום

בסופו של דבר, הנה גרף שנלקח ממחשב הנתונים בפעולה בזמן רישום טמפרטורת ההקפאה שלי. בכתום ה- DS18B20 ובכחול LM35 וזה מעגל. אתה יכול לראות את ההבדל הגדול ביותר בדייקנות מחיישן דיגיטלי לאנלוגי (עם "מעגל ה- ADC" המסכן שלי) שמספקים נתונים לא פיזיים. לסיכום, אם אתה רוצה לבנות את הלוגר הזה אני מציע להשתמש בחיישן הטמפרטורה הדיגיטלית DS18B20 מכיוון שהוא קל יותר לקריאה וכמעט "חבר והפעל", הוא יציב ומדויק יותר, הוא פועל על 3.3V ודורש רק סיכה אחת להרבה חיישנים. תודה על תשומת הלב, אני מקווה שהפרויקט הזה טוב עבורך וגם לך מצא מידע שימושי. ומי שרוצה להבין זאת, הלוואי שנתתי את כל המידע הדרוש. אם לא היית חופשי לשאול הכל, אשמח לענות על כל השאלות. מכיוון שאני לא דובר אנגלית, אם משהו לא בסדר או לא מובן אנא יידע אותי. אם אהבת את הפרויקט הזה, אנא הצביע אותו לתחרויות ו/או השאר הערה ☺. זה יעודד אותי להמשיך לעדכן ולפרסם תכנים חדשים. תודה.

מוּמלָץ: