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

קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak: 5 שלבים
קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak: 5 שלבים

וִידֵאוֹ: קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak: 5 שלבים

וִידֵאוֹ: קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak: 5 שלבים
וִידֵאוֹ: חיבור מגע יבש ביסוויצ' 2024, יולי
Anonim
קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak
קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak
קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak
קרא מד חשמל וגז (בלגי/הולנדי) והעלה ל- Thingspeak

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

בפרויקט זה נקבל את הנתונים הנוכחיים ממד חשמל וגז דיגיטלי בלגי או הולנדי ונעלה אותם ל- Thingspeak. נתונים אלה כוללים את צריכת החשמל וההזרקה הנוכחית והיומית (אם יש לך פאנלים סולאריים), מתח וזרמים וצריכת הגז (אם מחובר מד גז דיגיטלי למד החשמל). באמצעות אפליקציה ניתן לקרוא את הערכים הללו בזמן אמת בסמארטפון שלך.

זה עובד עבור מד דיגיטלי בלגי או הולנדי שעוקב אחר פרוטוקול DSMR (דרישות מד חכם הולנדיות), שאמור להיות כל המטרים האחרונים. אם אתה גר במקום אחר, למרבה הצער, סביר להניח שהמד שלך ישתמש בפרוטוקול אחר. אז אני חושש שההנחיה הזו מוגבלת קצת מבחינה אזורית.

נשתמש ביציאת P1 של המונה, המקבלת כבל RJ11/RJ12, הידוע בכינויו כבל טלפון. וודא שמתקין המד מפעיל את יציאת P1. לדוגמה, עבור Fluvius בבלגיה בצע את ההוראות הבאות.

כדי לעבד את הנתונים ולהעלות לאינטרנט, אנו משתמשים ב- ESP8266, שהוא שבב זול עם wifi מובנה. זה עולה רק משהו כמו 2 דולר. יתר על כן ניתן לתכנת אותו באמצעות Arduino IDE. אנו שומרים את הנתונים בענן ב- Thingspeak, שהוא בחינם לכל היותר לארבעה ערוצים. לפרויקט זה אנו משתמשים רק בערוץ אחד. לאחר מכן ניתן להציג את הנתונים בסמארטפון שלך באמצעות אפליקציה כמו IoT ThingSpeak.

חלקים:

  • ESP8266 אחד, כמו nodemcu v2. שים לב שה nodemcu v3 רחב מדי ללוח סטנדרטי, אז אני מעדיף את v2.
  • כבל מיקרו USB ל- USB.
  • מטען USB.
  • טרנזיסטור NPN BC547b אחד.
  • שני נגדים של 10k ונגד 1k אחד.
  • מחבר אחד מסוף בורג RJ12.
  • לוח לחם.
  • חוטי מגשר.
  • אופציונלי: קבל 1nF אחד.

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

שלב 1: הכרת ESP8266

בחרתי ב- NodeMCU v2, מכיוון שאין צורך בהלחמה ויש לו חיבור מיקרו USB המאפשר תכנות קל. היתרון של NodeMCU v2 על פני NodeMCU v3 הוא שהוא קטן מספיק בכדי להתאים על לוח לחם ולהשאיר חורים פנויים בצד כדי ליצור חיבורים. אז עדיף להימנע מ- NodeMCU v3. עם זאת, אם אתה מעדיף לוח ESP8266 אחר זה גם בסדר.

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

  • קודם כל הורד את Arduino IDE.
  • תמיכה בהתקנה שנייה ללוח ESP8266. בתפריט קובץ - העדפות - הגדרות הוסף את כתובת האתר https://arduino.esp8266.com/stable/package_esp8266com_index.json לכתובות URL נוספות של מנהל הלוח. הבא בתפריט כלים - לוח - מנהל לוחות התקן esp8266 על ידי esp8266 קהילה.
  • שלישית בחר את הלוח הקרוב ביותר ל- ESP8266 שלך. במקרה שלי בחרתי ב- NodeMCU v1.0 (מודול ESP 12-E).
  • לבסוף בחר תחת כלים - גודל פלאש, גודל הכולל SPIFFS, כמו 4M (1M SPIFFS). בפרויקט זה אנו משתמשים ב- SPIFFS (SPI Flash File System) לאחסון ערכי אנרגיה יומיים, כך שהם לא יאבדו אם ה- ESP8266 מאבד כוח ואפילו כאשר הוא מתוכנת מחדש.

עכשיו יש לנו הכל לתכנת ה- ESP8266! נדון בקוד בפועל בשלב מאוחר יותר. ראשית ניצור חשבון Thingspeak.

שלב 2: צור חשבון וערוץ של Thingspeak

עבור אל https://thingspeak.com/ וצור חשבון. לאחר שנכנסת ללחוץ על הכפתור ערוץ חדש ליצירת ערוץ. בהגדרות הערוץ מלא את השם והתיאור כרצונך. לאחר מכן אנו נותנים את שמות הערוצים ומפעילים אותם על ידי לחיצה על תיבות הסימון מימין. אם אתה משתמש בקוד שלי ללא שינוי השדות הם כדלקמן:

  • שדה 1: צריכת שיא היום (קוט"ש)
  • שדה 2: צריכה מחוץ לשיא היום (קוט"ש)
  • שדה 3: הזרקת שיא היום (קוט"ש)
  • שדה 4: הזרקה מחוץ לשיא היום (קוט"ש)
  • שדה 5: צריכה נוכחית (W)
  • שדה 6: הזרקה נוכחית (W)
  • שדה 7: צריכת גז היום (m3)

כאן, שיא ומחוץ לשיא מתייחסים לתעריף החשמל. בשדות 1 ו- 2 הצריכה מתייחסת לצריכת חשמל נטו כיום: צריכת חשמל כיום בתקופת התעריפים מאז חצות מינוס הזרמת חשמל (המיוצר על ידי פאנלים סולאריים) כיום בתקופת התעריפים מאז חצות עם מינימום אפס. פירוש הדבר האחרון שאם הייתה יותר הזרקה מצריכה היום הערך הוא אפס. כמו כן, הזרקה בשדות 3 ו -4 מתייחסת להזרקת חשמל נטו. שדות 5 ו -6 מציינים צריכת נטו והזרקה כרגע. לבסוף שדה 7 הוא צריכת הגז מאז חצות.

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

שלב 3: בניית המעגל האלקטרוני

בניית המעגל האלקטרוני
בניית המעגל האלקטרוני
בניית המעגל האלקטרוני
בניית המעגל האלקטרוני

קראנו את מד החשמל באמצעות יציאת P1, אשר לוקחת כבל RJ11 או RJ12. ההבדל הוא שלכבל RJ12 יש 6 חוטים בעוד של- RJ11 יש רק 4. בפרויקט הזה אנחנו לא מפעילים את ה- ESP8266 מיציאת P1 כך שלמעשה אנחנו צריכים רק 4 חוטים, כך ש- RJ11 יעשה.

השתמשתי בפריצת ה- RJ12 המוצגת בתמונה. הוא קצת רחב ואין הרבה מקום סביב יציאת P1 במד שלי. זה מתאים, אבל זה צמוד. לחלופין, אתה יכול פשוט להשתמש בכבל RJ11 או RJ12 ולהסיר את הכותרת בקצה אחד.

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

  • פין 1: אספקת חשמל 5V
  • פין 2: בקשת נתונים
  • פין 3: Data Ground
  • פין 4: לא מחובר
  • פין 5: שורת נתונים
  • סיכה 6: קרקע כוח

ניתן להשתמש בפין 1 ובפין 6 להפעלת ה- ESP8266, אך לא בדקתי זאת. יהיה עליך לחבר את פין 1 ל- Vin של ה- ESP8266, כך שמווסת המתח הפנימי של הלוח משמש להפחתת המתח מ- 5V ל- 3.3V שה- ESP8266 מקבל. אז אל תחבר אותו לסיכה של 3.3V כי זה עלול לפגוע ב- ESP8266. גם הפעלה מיציאת P1 תרוקן לאורך זמן את הסוללה של המונה הדיגיטלי.

הגדרת סיכה 2 גבוהה מסמנת למד לשלוח מברקי נתונים בכל שנייה. הנתונים בפועל נשלחים מעל Pin 5 עם קצב שידור של 115200 עבור מד דיגיטלי מודרני (DSMR 4 ו- 5). האות הוא הפוך (נמוך הוא 1 וגבוה הוא 0). עבור סוג ישן יותר (DSMR 3 ומטה) התעריף הוא 9600 baud. עבור מד כזה עליך לשנות את קצב השידור בקוד הקושחה של השלב הבא: שנה את הקו Serial.begin (115200); בהתקנה ().

תפקידו של הטרנזיסטור NPN הוא כפול:

  • כדי להפוך את האות כך ש- ESP8266 יוכל להבין אותו.
  • כדי לשנות את רמת ההגיון מ -5V של יציאת P1 ל -3.3V שצפוי על ידי יציאת RX של ESP8266.

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

המתן את חיבור סיכת RX עד שתכנת את ESP8266 בשלב הבא. ואכן, סיכת RX נחוצה גם כדי לתקשר באמצעות ה- USB בין ה- ESP8266 למחשב שלך.

שלב 4: העלה את הקוד

הפכתי את הקוד לזמין ב- GitHub, זה רק קובץ אחד: P1-Meter-Reader.ino. פשוט הורד אותו ופתח אותו ב- Arduino IDE. או שאתה יכול לבחור קובץ - חדש ופשוט להעתיק/להדביק את הקוד.

יש קצת מידע שעליך למלא בתחילת הקובץ: השם והסיסמה של ה- WLAN לשימוש, ומפתח מזהה הערוץ ומפתח ה- API של ערוץ ThingSpeak.

הקוד עושה את הפעולות הבאות:

  • קורא מברק נתונים מהמדד כל UPDATE_INTERVAL (באלפיות השנייה). ערך ברירת המחדל הוא כל 10 שניות. בדרך כלל יש טלגרם נתונים מהמד בכל שנייה, אך הגדרת התדירות גבוהה תעמיס על ה- ESP8266 כך שהוא לא יוכל להריץ יותר את שרת האינטרנט.
  • מעלה את נתוני החשמל לערוץ Thingspeak כל SEND_INTERVAL (באלפיות השנייה). ערך ברירת המחדל הוא כל דקה. כדי להחליט לגבי תדירות זו יש לקחת בחשבון ששליחת הנתונים אורכת זמן מה (בדרך כלל מספר שניות) וכי קיימת מגבלה על תדירות העדכונים ב- Thingspeak עבור חשבון בחינם. מדובר בכ- 8200 הודעות ביום כך שהתדירות המקסימלית תהיה בערך אחת ל -10 שניות אם אינך משתמש ב- Thingspeak לשום דבר אחר.
  • מעלה את נתוני הגז כשהם משתנים. בדרך כלל, המונה מעדכן את נתוני צריכת הגז רק כל 4 דקות בערך.
  • המונה עוקב אחר סך הצריכה וערכי ההזרקה מאז תחילת הדרך. אז כדי להשיג את הצריכה וההזרקה היומית, הקוד שומר את הערכים הכוללים בחצות כל יום. אז ערכים אלה מופחתים מהערכים הכוללים הנוכחיים. הערכים בחצות מאוחסנים ב- SPIFFS (מערכת הקבצים SPI Flash), הנמשכת אם ה- ESP8266 מאבד כוח או אפילו כאשר הוא מתוכנת מחדש.
  • ה- ESP8266 מפעיל שרת אינטרנט מיני. אם תפתח את כתובת ה- IP שלה בדפדפן שלך, תקבל סקירה כללית של כל ערכי החשמל והגז הנוכחיים. אלה הם מהמברק העדכני ביותר וכוללים מידע שאינו מועלה ל- Thingspeak, כמו מתח וזרמים לשלב. הגדרת ברירת המחדל היא שכתובת ה- IP נקבעת באופן דינאמי על ידי הנתב שלך. אך נוח יותר להשתמש בכתובת IP סטטית, שתמיד זהה. במקרה זה עליך למלא את staticIP, gateway, dns ורשת משנה בקוד ולבטל את השורה WiFi.config (staticIP, dns, gateway, subnet); בפונקציה connectWifi ().

לאחר שביצעת שינויים אלה, אתה מוכן להעלות את הקושחה ל- ESP8266. חבר את ESP8266 דרך כבל ה- USB למחשב ולחץ על הסמל עם החץ ב- Arduino IDE. אם אינך מצליח להתחבר ל- ESP8266 נסה לשנות את יציאת ה- COM בתפריט כלים - יציאה. אם זה עדיין לא עובד, ייתכן שיהיה עליך להתקין את מנהל ההתקן באופן ידני עבור יציאת ה- COM הווירטואלית של USB.

שלב 5: בדיקה

לאחר העלאת הקושחה, נתק את ה- USB וחבר את חוט ה- RX של ה- ESP8266. זכור, היינו זקוקים לערוץ RX של ESP8266 להעלאת הקושחה כך שלא חיברנו אותה קודם. כעת חבר את התפרצות RJ12 במד הדיגיטלי וחבר מחדש את ESP8266 למחשב שלך.

ב- IDE של Arduino, פתח את הצג הסידורי דרך תפריט הכלים וודא שהוא מוגדר ל- 115200 baud. אם עליך לשנות את קצב השידור, אולי עליך לסגור ולפתוח מחדש את הצג הסידורי לפני שהוא עובד.

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

/FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // מד מספר סידורי הקסדצימלי 0-0: 1.0.0 (200831181442S) // חותמת זמן S: חיסכון בשעות הקיץ (קיץ), W: לא חיסכון בשעות היום (חורף) 1-0: 1.8.1 (000016.308*קוט"ש) // סה"כ צריכת נטו הכוללת 1-0: 1.8.2 (000029.666*קוט"ש) // סה"כ צריכת נטו מחוץ לשיא 1-0: 2.8.1 (000138.634*קוט"ש) // סה"כ הזרקת נטו 1-0: 2.8.2 (000042.415*קוט"ש) // סה"כ הזרקת נטו מחוץ לשיא 0-0: 96.14.0 (0001) // תעריף 1: שיא, 2: מחוץ לשיא 1-0: 1.7.0 (00.000*קילוואט) // צריכת זרם 1-0: 2.7.0 (00.553*קילוואט) // הזרקה נוכחית 1-0: 32.7.0 (235.8*V) // שלב מתח 1-0: 52.7.0 (237.0*V) // שלב שלב 2 0-0: 72.7.0 (237.8*V) // מתח שלב 3 1-0: 31.7.0 (001*A) // שלב 1 הנוכחי 1-0: 51.7.0 (000*A) // שלב 2 הנוכחי 1-0: 71.7.0 (004*A) // שלב 3 הנוכחי 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*קילוואט) // הספק מרבי 1-0: 31.4.0 (999*A) // מקסימום הנוכחי 0-0: 96.13.0 () // הודעה 0-1: 24.1.0 (003) // מכשירים אחרים ב- M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // מספר סידורי גז מטה r הקסדצימלי 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // חותמת הגז הצריכה הכוללת! E461 // סכום בדיקה CRC16

אם יש משהו לא בסדר, אתה יכול לבדוק אם יש לך את אותם תגים ואולי עליך לשנות את הקוד המנתח את המברקים בפונקציה readTelegram.

אם הכל עובד כעת תוכל להפעיל את ה- esp8266 ממטען ה- USB.

התקן את אפליקציית IoT ThingSpeak Monitor בסמארטפון שלך, מלא את מזהה הערוץ וקרא את מפתח ה- API וסיימת!

מוּמלָץ: