- שיטות שונות למזער צריכת חשמל
- רכיבים נדרשים
- סוגי מצבי שינה ב- ESP8266
- תכנות ESP8266 במצב שינה עמוק
- בדיקת DeepSleep ב- ESP8266
מכיוון שמהפכת ה- IoT פורחת בכל יום ויום, מספר המכשירים המחוברים גדל במהירות רבה. בעתיד, רוב המכשירים יחוברו זה לזה ויתקשרו בזמן אמת. אחת הבעיות העומדות בפני מכשיר זה היא צריכת החשמל. גורם צריכת חשמל זה הוא אחד הגורמים הקריטיים והמכריעים עבור כל מכשיר IoT ופרויקטים של IoT.
כידוע ש- ESP8266 הוא אחד המודולים הפופולריים ביותר לבניית כל פרויקט IoT, כך במאמר זה אנו למדים על חיסכון בחשמל תוך שימוש ב- ESP8266 בכל יישום IoT. כאן אנו מעלים נתוני חיישני טמפרטורה LM35 לענן ThingSpeak במרווח של 15 שניות ובמהלך 15 שניות אלה ESP8266 נשאר במצב DeepSleep כדי לחסוך בחשמל
שיטות שונות למזער צריכת חשמל
ישנן מספר דרכים לייעל את צריכת החשמל במכשירים המוטבעים וב- IoT. ניתן לבצע את האופטימיזציה על חומרה ותוכנה. לפעמים איננו יכולים לבצע אופטימיזציה של רכיבי חומרה כדי להפחית את צריכת החשמל, אך בוודאי שנוכל לעשות זאת בצד התוכנה על ידי שינוי אופטימיזציה של הוראות ופונקציות קוד. לא רק זאת, מפתחים יכולים גם לשנות את תדר השעון כדי להפחית את צריכת החשמל של המיקרו-בקר.אנו יכולים לכתוב קושחה כדי לגרום לחומרה לישון כאשר אין חילופי נתונים ולבצע את המשימה המוגדרת במרווח מסוים. במצב שינה, החומרה המחוברת שואבת פחות כוח רב ולכן הסוללה יכולה להחזיק מעמד זמן רב. אתה יכול גם לקרוא מינימום צריכת חשמל במיקרו-בקרים, אם אתה רוצה לדעת יותר על טכניקות צריכת חשמל.
מודולי ESP8266 הם מודולי ה- Wi-Fi הנפוצים ביותר ומגיעים עם תכונות רבות בגודל קטן עם מצבים שונים כולל מצב שינה וניתן לגשת למצבים אלה באמצעות שינוי כלשהו בחומרה ובתוכנה. למידע נוסף על ESP8266, תוכל לבדוק את הפרויקטים מבוססי ה- IoT שלנו באמצעות מודול ה- Wi-Fi ESP826, חלקם מפורטים להלן:
- ממשק ESP8266 NodeMCU עם מיקרומקר Atmega16 לשליחת דוא"ל
- שליחת נתוני חיישני טמפרטורה ולחות למסד נתונים בזמן אמת של Firebase באמצעות NodeMCU ESP8266
- נורית LED מבוקרת באמצעות IoT באמצעות קונסולת Google Firebase ו- ESP8266 NodeMCU
כאן נסביר על מצבי שינה שונים הקיימים ב- ESP8266 ונדגים אותם על ידי שליחת נתוני טמפרטורה לשרת Thingspeak במרווח קבוע באמצעות מצב שינה עמוקה.
רכיבים נדרשים
- מודול Wi-Fi ESP8266
- חיישן טמפרטורה LM35
- חוטי מגשר
סוגי מצבי שינה ב- ESP8266
מודול Esp8266 פועל במצבים הבאים:
- מצב פעיל: במצב זה, כל השבב מופעל והשבב יכול לקבל, להעביר את הנתונים. ברור שזה המצב הצורך ביותר.
- מצב שינה למודם: במצב זה, המעבד פועל ורדיו ה- Wi-Fi מושבתים. ניתן להשתמש במצב זה ביישומים המחייבים את פעולת המעבד, כמו ב- PWM. זה גורם למעגל המודם של ה- Wi-Fi לכבות כשהוא מחובר ל- Wi-Fi AP (נקודת גישה) ללא העברת נתונים כדי לייעל את צריכת החשמל.
- מצב שינה קלה: במצב זה, המעבד וכל ציוד היקפי מושהים. כל התעוררות כמו הפרעות חיצוניות תעיר את השבב. ללא העברת נתונים, ניתן לכבות את מעגל המודם של ה- Wi-Fi ולהשהות את המעבד כדי לחסוך בצריכת החשמל.
- מצב שינה עמוק: במצב זה רק ה- RTC פועל וכל שאר רכיבי השבב כבויים. מצב זה שימושי כאשר הנתונים מועברים לאחר פרקי זמן ארוכים.
חבר את חיישן הטמפרטורה LM35 עם סיכת A0 של NodeMCU.
כאשר למודול ה- ESP יש PIN גבוה ב- RST, הוא במצב פועל. ברגע שהוא מקבל אות LOW בפין RST, ה- ESP יופעל מחדש.
הגדר טיימר באמצעות מצב שינה עמוק, לאחר שהטיימר מסתיים אז סיכת ה- D0 שולחת את האות LOW לסיכת RST והמודול יתעורר על ידי הפעלתו מחדש.
כעת, החומרה מוכנה ומוגדרת היטב. קריאות הטמפרטורה יישלחו בשרת Thingspeak. לשם כך, צרו חשבון ב- thingspeak.com וצרו ערוץ על ידי ביצוע השלבים הבאים.
כעת, העתק את מפתח ה- API של כתוב. אשר ישמש בקוד ה- ESP.
תכנות ESP8266 במצב שינה עמוק
ה- Arduino IDE הזמין בקלות ישמש לתכנות מודול ESP8266. ודא שכל קובצי הלוח ESP8266 מותקנים.
התחל עם הכללת כל הספריות החשובות הנדרשות.
#לִכלוֹל
לאחר שכל הספריות כלולות לגישה לפונקציות ואז הקצה את מפתח הכתיבה של ה- API, הגדר את שם ה- Wi-Fi והסיסמה שלך. לאחר מכן הכריזו על כל המשתנים לשימוש נוסף היכן יש לאחסן נתונים.
מחרוזת apiWritekey = "*************"; // החלף במפתח ה- THINGSPEAK WRITEAPI שלך כאן char ssid = "******"; // שם ה- wifi שלך ב- SSID char סיסמה = "******"; // סיסמת wifi
כעת, הפוך פונקציה לחיבור המודול לרשת ה- Wi-Fi באמצעות פונקציית wifi.begin () ואז בדוק ברציפות עד שהמודול אינו מחובר ל- Wi-Fi תוך שימוש ב- loop.
בטל connect1 () { WiFi.disconnect (); עיכוב (10); WiFi.begin (ssid, סיסמה); בעוד (WiFi.status ()! = WL_CONNECTED) {
בצע פונקציה אחרת כדי לשלוח את הנתונים לשרת thingspeak. כאן תישלח מחרוזת המכילה את מפתח כתיבת ה- API, מספר השדה והנתונים שיש לשלוח. לאחר מכן שלח מחרוזת זו באמצעות הפונקציה client.print ().
נתונים בטלים () { if (client.connect (server, 80)) { String tsData = apiWritekey; tsData + = "& field1 ="; tsData + = מחרוזת (tempF); tsData + = "\ r \ n \ r \ n"; client.print ("POST / עדכן HTTP / 1.1 \ n"); client.print ("מארח: api.thingspeak.com \ n");
התקשר לפונקציה connect1 שתקרא לפונקציה לחיבור Wi-Fi ואז קח את קריאות הטמפרטורה והמיר אותה ל צלזיוס.
הגדרת חלל () { Serial.begin (115200); Serial.println ("המכשיר נמצא במצב התעוררות"); connect1 (); ערך int = analogRead (A0); וולט צף = (ערך / 1024.0) * 5.0; tempC = וולט * 100.0;
כעת התקשר לפונקציית הנתונים () כדי להעלות את הנתונים בענן של דברים. לבסוף, הפונקציה החשובה להתקשר אליה היא ESP.deepSleep (); זה יגרום למודול לישון לפרק הזמן המוגדר שנמצא במיקרו-שניות.
נתונים(); Serial.println ("שינה עמוקה למשך 15 שניות"); ESP.deepSleep (15e6);
פונקציית לולאה תישאר ריקה מאחר שיש לבצע את כל המשימה פעם אחת ואז לאפס את המודול לאחר פרק הזמן שהוגדר.
סרטון העבודה והקוד המלא ניתן בסוף הדרכה זו. העלה את הקוד במודול ESP8266. הסר את החוט המחובר ל- RST ו- D0 לפני שאתה מעלה את התוכנית אחרת זה יתן שגיאה.
בדיקת DeepSleep ב- ESP8266
לאחר העלאת התוכנית תראה שקריאות הטמפרטורה מועלות בענן ThingSpeak אחרי כל 15 שניות ואז המודול עובר למצב שינה עמוקה.
זה משלים את ההדרכה על השימוש ב- Sleep Sleep במודול ESP8266. שינה עמוקה היא תכונה חשובה מאוד והיא נכללה ברוב המכשירים. אתה יכול להפנות למדריך זה ולהחיל שיטה זו על פרויקטים שונים. במקרה של ספקות או הצעות, אנא כתוב והגיב למטה. תוכלו גם להגיע לפורום שלנו.