כיצד ליצור כפתור מחובר ל- Wi-Fi משלך באמצעות ESP8266

כיצד ליצור כפתור מחובר ל- Wi-Fi משלך באמצעות ESP8266

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





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





היום נכין כפתור מופעל Wi-Fi באמצעות NodeMCU ונתכנת אותו להשתמש ב- IFTTT לביצוע ... ובכן, הכל! הוראות בכתב בעקבות הסרטון, אם אתה מעדיף.





מה אתה צריך

אתה תצטרך:

  • 1 x לוח NodeMCU (ESP8266), זמין עבור 2-3 $ באליאקספרס
  • 1 x כפתור לחיצה
  • 1 x LED (אופציונלי)
  • 1 x 220 אוהם נגד (אופציונלי)
  • לוח לחם וחוטי חיבור
  • מיקרו USB לתכנות
  • מחשב עם Arduino IDE מותקן

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



שלב 1: הגדרת המעגל

התקנת החומרה פשוטה מאוד לפרויקט זה. הגדר את הלוח שלך לפי התרשים הזה.

החוט הסגול מתחבר סיכה D0 לצד אחד של הכפתור. החוט הירוק מחבר את הצד השני של הכפתור ל- סיכת RST . החוט הכחול עובר מ סיכה D1 לנגד ול LED. הרגל השלילית של ה- LED מתחברת ל סיכת GND של NodeMCU.





כאשר לוח הלחם מוגדר הוא אמור להיראות בערך כך:

מדוע השימוש בדיסק שלי תמיד עומד על 100

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





שלב 2: הגדרת ה- IDE

לפני שתתחיל בקידוד, עליך לבצע כמה הכנות. אם עדיין לא עשית זאת, הגדר את Arduino IDE כדי לזהות את לוח NodeMCU שלך. אתה יכול להוסיף אותו לרשימת הלוחות שלך באמצעות קובץ> העדפות .

תוכל למצוא הסבר מפורט יותר לשלב זה במאמר ההקדמה שלנו NodeMCU.

שתי ספריות נדרשות לפרויקט זה. נווט ל סקיצה> כלול ספרייה> נהל ספריות . לחפש אחר ESP8266 WIFI על ידי איוון גרוכוטקוב והתקן אותו. ספרייה זו נכתבה ליצירת חיבורי Wi-Fi עם לוח NodeMCU.

החיפוש הבא אחר IFTTTWebhook מאת ג'ון רומקי והתקן את הגירסה העדכנית ביותר. ספרייה זו נועדה לפשט את תהליך שליחת הוקי אינטרנט ל- IFTTT.

זה כל ההכנה שאנחנו צריכים, אפשר לקודד!

כיצד הקוד יפעל

נשתמש ב ESP8266 WIFI ספרייה ליצירת חיבור Wi-Fi. ה IFTTT וובוקס הספרייה מבקשת ל- IFTTT --- במקרה זה, לפרסם בטוויטר. לאחר מכן, הנח את לוח NodeMCU לישון כאשר אינו בשימוש כדי לחסוך בחשמל.

כאשר לוחצים על הכפתור, הוא יקשר את D0 ו RST סיכות. זה מאפס את הלוח, והתהליך קורה שוב.

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

הדרכה זו עוברת את הקוד בגושים כדי לעזור בהבנה. אם אתה רוצה להיכנס ישר לעסקים, אתה יכול למצוא את קוד מלא ב- Pastebin . שים לב שעדיין תצטרך למלא את אישורי ה- Wi-Fi וה- IFTTT בקוד זה על מנת שיפעל!

שלב 3: בדיקת שינה עמוקה

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

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

כאן, אנו כוללים את הספריות שלנו, יחד עם הגדרת כמה משתנים שנצטרך במערכון שלנו. תבחין כי ה- ledPin ו- wakePin ממוספרים כאן באופן שונה בהשוואה לתרשים Fritzing למעלה. ל- NodeMCU יש pinout שונה מלוחות Arduino. עם זאת זו לא בעיה, בשל התרשים הנוח הזה:

כעת צור פונקציית התקנה:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

כאן הגדרנו את היציאה הטורית שלנו והשתמשו בלולאת זמן להמתין עד שתתחיל. מכיוון שקוד זה יופעל לאחר לחיצה על כפתור האיפוס, אנו מדפיסים 'לחצן נלחץ' לצג הטורי. לאחר מכן, אנו אומרים ל- NodeMCU להיכנס לישון עמוק עד ללחצן המחבר את wakePin אל ה RST סיכה נלחצת.

לבסוף, לבדיקה, הוסף זאת ל- לוּלָאָה() שיטה:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

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

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

הערה אודות המוניטור הסידורי

ייתכן ששמת לב לכמה דמויות שטויות במסך הסדרתי במהלך כמה מהפרויקטים שלך. זה בדרך כלל נובע מאי הגדרת הצג הטורי לאותו קצב שידור כמו Serial.begin (XXXX) ציון.

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

איך אומרים dpi של תמונה

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

שלב 4: התחברות ל- Wi-Fi

כעת צור פונקציה לחיבור לרשת ה- Wi-Fi שלך.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

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

שלב 5: התקשרות לשיטת החיבור

כרגע, ה connectToWifi () לעולם אינו נקרא. הוסף שיחה לפונקציית ההתקנה שלך בין ההודעה 'לחצן שנלחץ' לבין שליחת הלוח למצב שינה.

connectToWifi();

אם אתה תוהה לאן זה מתאים, זה אמור להיראות כך:

בראש הסקיצה החלף את ssid ו סיסמה משתנים עם אישורי ה- Wi-Fi שלך. שמור את הסקיצה שלך והעלה ללוח.

כעת, כאשר הלוח יתחיל הוא ינסה להתחבר לרשת ה- Wi-Fi שלך, לפני שתחזור לפונקציית ההתקנה. כעת, ניתן להגדיר את שילוב IFTTT.

שלב 6: הגדרת שילוב IFTTT

IFTTT מאפשרת אינטגרציה עם מגוון עצום של שירותי אינטרנט. השתמשנו בה במדריך ה- LED של מגדל ה- Wi-Fi PC tower כדי לשלוח התראה בכל פעם שמתקבלת הודעת דוא'ל חדשה. היום נשתמש בו כדי לשלוח ציוץ בלחיצת כפתור.

נווט אל היישומונים שלי דף ובחר אפלט חדש

לחץ על +זה ולהתחבר אל וו הוקס . בחר 'קבל בקשת אינטרנט' ותקרא לאירוע שלך. תשאיר את זה פשוט ! רשום את שם האירוע, יהיה עליך להוסיף אותו לקוד NodeMCU שלך מאוחר יותר. נְקִישָׁה 'צור טריגר' .

כעת בחר +זה . חפש את טוויטר שירות והתחבר אליו --- יהיה עליך לאשר אותו לפרסם בחשבון הטוויטר שלך. בחר 'פרסם ציוץ' ובחר את ההודעה שלך.

המסך הבא יבקש ממך לבדוק את היישומון. לחץ על סיום. זהו זה!

שלב 7: הוספת אישורי IFTTT לקוד

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

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

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

שימו לב, הפסיקים ההפוכים חייבים להישאר, רק החליפו את הטקסט.

בין קריאה ל connectToWifi () ושליחת הלוח לישון, צור מופע של אובייקט הספרייה IFTTTWebhook. נורית ה- LED מסמנת את השלמת המשימה לפני שהשינה העמוקה מתחילה מחדש.

הורדת וידאו לגליל המצלמות של אייפון
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

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

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

בוצע! כיצד תוכל לשפר אותו עוד יותר?

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

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

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

קרדיט תמונה: ואדמרי / פיקדונות

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 6 חלופות קוליות: אפליקציות ספרי האודיו הטובות ביותר בחינם או הזולות

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

קרא הבא
נושאים קשורים
  • עשה זאת בעצמך
  • ארדואינו
  • הדרכות לפרויקט DIY
על הסופר איאן באקלי(פורסמו 216 מאמרים)

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

עוד מאת איאן באקלי

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה