שליטה על הכיריים מהסמארטפון שלך באמצעות WiFi

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



תנור חכם

כיצד להפוך תנור גז לאוטומטי דרך הנייד שלך?

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



שלב 1: איסוף הרכיבים

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



  • ESP32
  • שסתום גז לארדואינו
  • חוטי מגשר
  • מודול ממסר 5V
  • טרנזיסטור 2N2222 NPN
  • נגד 1k-ohm
  • נגד 10k-ohm
  • מצת 5V

שלב 2: פיתוח אפליקציית Android

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



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

כפתור אחד ישמש לפתיחת וסגירת שסתום הגז והכפתור השני ישמש ליצירת ניצוץ שיהיה אחראי על הַצָתָה .

שלב 3: הכנת המעגל

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



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

טרנזיסטור כמתג

באיור לעיל, חבר את יַיִן יציאה לסיכות של ESP32 , חבר את יציאת ה- Vcc לאספקת 5V החיצונית וחבר את ה- Vo למודול הממסר. הסיבה העיקרית לכך שאנחנו משתמשים בטרנזיסטור כמתג היא שממסר זקוק ל -5 וולט להפעלה, אך ה- ESP32 יכול לספק רק 3.3 וולט. אז אנחנו צריכים לספק 5V חיצוני לממסר.

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

מודול ממסר

שלב 4: עבודה

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

שלב 5: תחילת העבודה עם ESP32

אם לא עבדתם בעבר על Arduino IDE, אל דאגה מכיוון שלב אחר שלב להגדרת Arduino IDE מוצג למטה.

  1. הורד את הגרסה האחרונה של Arduino IDE מ ארדואינו.
  2. חבר את לוח ה- Arduino למחשב ופתח את לוח הבקרה. לחץ על חומרה וסאונד. עכשיו פתוח מכשירים ומדפסת ומצא את היציאה אליה מחובר הלוח שלך. במקרה שלי זה כן COM14 אבל זה שונה במחשבים שונים.

    מציאת נמל

  3. לחץ על קובץ ואז לחץ על העדפות. העתק את הקישור הבא ב כתובת URL נוספת של מנהל הדירקטוריון. ' https://dl.espressif.com/dl/package_esp32_index.json '

    העדפות

  4. כעת, כדי להשתמש ב- ESP32 עם Arduino IDE, עלינו לייבא ספריות מיוחדות שיאפשרו לנו לצרוב קוד ב- ESP32 ולהשתמש בו. שתי הספריות הללו מצורפות בקישור הבא. כדי לכלול את הספרייה, הולך סקיצה> כלול ספרייה> הוסף ספריית ZIP . תיבה תופיע. מצא את תיקיית ה- ZIP במחשב שלך ולחץ על OK כדי לכלול את התיקיות.

    כלול ספרייה

  5. עכשיו הולך סקיצה> כלול ספרייה> נהל ספריות.

    נהל ספריות

  6. תפריט ייפתח. בשורת החיפוש, הקלד ארדואינו JSON. תופיע רשימה. להתקין ארדואינו JSON מאת בנואה בלאנשון.

    ארדואינו JSON

  7. כעת לחץ על ה- כלים. תפריט נפתח יופיע. הגדר את הלוח ל- מודול ESP Dev.

    לוח הגדרה

  8. לחץ שוב על תפריט הכלים והגדר את היציאה שצפית בלוח הבקרה לפני כן.

    הגדרת נמל

  9. כעת העלה את הקוד המצורף בקישור למטה ולחץ על כפתור ההעלאה כדי לצרוב את הקוד במיקרו-בקרה ESP32.

    העלה

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

בקובץ הכלול מ- C:  Users  Pro  Documents  Arduino  ספריות  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, מ- C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  ספריות  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: שגיאה: StaticJsonBuffer הוא מחלקה מ- ArduinoJson 5. אנא עיין ב- arduinojson.org/upgrade כדי ללמוד כיצד לשדרג את התוכנית שלך ל- ArduinoJson גרסה 6 StaticJsonBuffer jsonBuffer; ^ בקובץ הכלול מ- C:  Users  Pro  Documents  Arduino  ספריות  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, מ- C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  ספריות  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: שגיאה: StaticJsonBuffer הוא מחלקה מ- ArduinoJson 5. אנא עיין ב- arduinojson.org/upgrade כדי ללמוד כיצד לשדרג את התוכנית שלך גרסה 6 של ArduinoJson מחזירה את StaticJsonBuffer (). ParseObject (_data); ^ נמצאו ספריות מרובות עבור 'WiFi.h' בשימוש: C:  משתמשים  Pro  AppData  Local  Arduino15  חבילות  esp32  חומרה  esp32  1.0.2  ספריות  WiFi לא בשימוש: C:  קבצי תוכנה ( x86)  Arduino  ספריות  WiFi באמצעות ספריית WiFi בגירסה 1.0 בתיקיה: C:  משתמשים  Pro  AppData  Local  Arduino15  חבילות  esp32  חומרה  esp32  1.0.2  ספריות  WiFi באמצעות ספרייה IOXhop_FirebaseESP32-master בתיקיה: C:  Users  Pro  Documents  Arduino  ספריות  IOXhop_FirebaseESP32-master (legacy) באמצעות ספריית HTTPClient בגירסה 1.2 בתיקיה: C:  Users  Pro  AppData  Local  Arduino15  חבילות  esp32  חומרה  esp32  1.0.2  ספריות  HTTPClient באמצעות ספרייה WiFiClientSecure בגירסה 1.0 בתיקיה: C:  Users  Pro  AppData  Local  Arduino15  חבילות  esp32  hardware  esp32  1.0.2  ספריות  WiFiClientSecure באמצעות ספרייה ArduinoJson ב גרסה 6.12.0 בתיקיה: C:  Users  Pro  Documents  Arduino  ספריות  ArduinoJson סטטוס יציאה 1 שגיאה ביצירת לוח ESP32 Dev Module.

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

להורדת הקוד, נְקִישָׁה כאן.

שלב 6: קוד

הקוד המצורף הוא די הגיב אך בכל זאת, חלק מחלקיו מוסברים להלן.

1. בהתחלה כלולות שתי ספריות כך ש- WiFi מופעל וניתן לחבר את לוח ה- ESP לבסיס הנתונים של firebase. ואז כלול מארח firebase, האימות, שם חיבור ה- wifi המקומי והסיסמא של אותו חיבור wifi. כמו כן, הגדירו את הפינים בלוח ה- ESP שישמשו לחיבור ההתקנים החיצוניים.

# כלול // כלול ספרייה לשימוש ב- WiFi # כלול // כולל ספרייה להתחברות ל- Firebase # הגדר FIREBASE_HOST 'xxxxxxxxxx' // החלף את xxxxxxxxxx על ידי מארח ה- firebase שלך ​​כאן. הגדר את WIFI_SSID 'xxxxxxxxxx' // החלף את xxxxxxxxxx בשם חיבור ה- Wifi שלנו # הגדר WIFI_PASSWORD 'xxxxxxxxxx' // החלף את xxxxxxxxxx על ידי סיסמת ה- wifi שלך # הגדר שסתום 34 // חבר שסתום גז לסיכה זו # הגדר ניצוץ 35 // חבר ניצוץ חבר לסיכה זו

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

הגדרת חלל () {Serial.begin (115200); // הגדר pinMode קצב שידור (שסתום, OUTPUT); // הגדר סיכה 34 המשמשת כ- OUTPUT pinMode (ניצוץ, OUTPUT); // הגדר סיכה 35 שישמש כ- OUTPUT // התחבר ל- wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('מתחבר'); בעוד (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); עיכוב (500); } Serial.println (); Serial.print ('מחובר:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

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

loop loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // קבל את הערך עבור החלפת שסתום הגז temp2 = Serial.println (Firebase.getFloat ('AC')); // קבל את הערך למיתוג של מצת אם (temp1 == 1) {digitalWrite (שסתום, HIGH) // הפעל ממסר אחד} אחר אם (temp1 == 0) {digitalWrite (שסתום, LOW) // פנה ממסר אחד} אחר אם (temp2 == 1) {digitalWrite (ניצוץ, HIGH) // הפעל ממסר שניים} אחר אם (temp2 == 0) {digitalWrite (ניצוץ, LOW) // כבה את ממסר שני} // לטפל בשגיאה אם ​​(Firebase.failed ()) {Serial.print ('ההגדרה / המספר נכשל:'); Serial.println (Firebase.error ()); לַחֲזוֹר; } עיכוב (1000); }

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