- שילוב ספריית UniversalTelegramBot לפישוט תקשורת HTTPS עם ממשק ה-API של טלגרם.
- שליטה מרחוק על פיני GPIO להפעלת מפעילים כגון נוריות LED וקריאת מצבי מתג.
- יישום אבטחה באמצעות אימות מזהה צ'אט ושימוש בתעודות SSL.
האם שקלתם פעם לשלוט במכשירי האוטומציה הביתית שלכם בנוחות מהספה שלכם באמצעות הטלפון הנייד שלכם? ובכן, הגדרת מערכת לשליטה ב-ESP32 דרך טלגרם היא אחת הדרכים הפשוטות והחזקות ביותר להיכנס לעולם האוטומציה הביתית מבלי לסבך את חייכם עם שרתים חיצוניים יקרים או תצורות בלתי אפשריות.
הקסם טמון בהפיכת הלוח שלכם לשרת קטן שמקשיב לפקודות מבוט. אתם לא צריכים להיות גאון תכנות, כי עם כמה ספריות וקצת סבלנות תוכלו לגרום למכשיר שלכם להדליק אורות או להתריע לכם על מצב של חיישן בזמן אמת, והכל באמצעות הודעות טקסט מיידיות.
חומרים שתזדקק להם
כדי להתחיל, אינכם צריכים להוציא הון תועפות. הדבר החשוב ביותר הוא שיהיה לכם לוח ESP32 ; לא משנה אם זה דגם ישן יותר או אחד החדישים ביותר, מכיוון שהתאימות היא מוחלטת. מלבד המוח של הפרויקט, תצטרכו כמה רכיבים בסיסיים לבדיקה:
- דיודה פולטת אור (LED) כדי לבדוק שהכל פועל כראוי.
- נגד של 220 אוהם כדי למנוע שריפת הלד.
- כפתור או מתג לקריאת מצבים פיזיים.
- חיבור כבלים ולוח חיבור כדי שלא תצטרכו להלחים כלום בהתחלה.
הרכבת מעגלים אלקטרוניים
לפני עריכת הקוד, עליכם להכין את החומרה. בדוגמה זו, נחבר את ה-LED לפין GPIO 33 ואת המתג לפין GPIO 14. חשוב לזכור שניתן לשנות פינים אלה לפי הצורך, אך תצטרכו לשקף שינוי זה מאוחר יותר בקבועי התוכנית.
נורת הלד מחוברת לנגד המתאים לה לצורך הגנה, בעוד שכפתור הלחיצה מוגדר באופן פנימי כדי למנוע חיווט נוסף. לאחר שהמעגל מורכב על לוח החיבורים , ניתן לעבור לחלק התוכנה, שם מתרחשת כל הפעולה.
הגדרת בוט בטלגרם
כדי לאפשר ל-ESP32 לדעת למי להקשיב, עלינו תחילה ליצור את זהות הבוט בתוך אפליקציית הטלגרם עצמה. תהליך זה קריטי משום שהוא מספק שני פריטי מידע מרכזיים: אסימון הבוט (מחרוזת ארוכה של מספרים ואותיות) ומזהה המשתמש האישי שלך . ללא שני מפתחות אלה, המכשיר לא יוכל לאמת את עצמו או לקבוע מי מורשה לתת לו פקודות.
אם בשלב כלשהו אתם מרגישים שהצ'אט הפך לכאוטי, זכרו שתמיד תוכלו לנקות את ההיסטוריה מהתפריט הימני העליון. פעולה זו תפעיל מחדש את הבוט ותחזיר אותו לכפתור הבית עם הפקודות הזמינות, מה שיאפשר לכם להתחיל מחדש.
הכנת סביבת הפיתוח
כדי שהקוד יעבוד, עלינו להתקין כלי שמקל על חיינו: ספריית UniversalTelegramBot . במקום לכתוב מאות שורות קוד כדי לטפל בממשק ה-API של טלגרם, ספרייה זו עושה כמעט הכל בשבילנו.
כדי להתקין אותו, פשוט גשו למנהל הספריות של ארדואינו IDE, הקלידו את שם הספרייה ולחצו על "התקן". כמו כן, ודאו שספריות ה- WiFi וה-WiFiClientSecure מותקנות , שכן אלו מאפשרות ל-ESP32 להתחבר לאינטרנט ולהשתמש בפרוטוקול HTTPS לתקשורת מאובטחת.
ניתוח קוד בקרה
התוכנית מתחילה בהגדרת פרטי הגישה של רשת ה-WiFi שלך ומפתחות הבוט. חיוני שתחליף את הערכים לדוגמה בערכים שלך. SSID וסיסמהכמו גם את הטוקן ומזהה הצ'אט. לצורך אינטראקטיביות, אנו מגדירים משתנה שנקרא info אשר מכיל את רשימת הפקודות שהבוט יזהה, כגון /led_on או /sw_state.
ניהול הודעות ופקודות
לב המערכת הוא הפונקציה שבודקת הודעות חדשות. ה-ESP32 משתמש בשיטה getUpdates סעיף בדוק את תור ההודעות מטלגרם. כדי למנוע מכל אדם זר לשלוט בביתך, הקוד כולל מסנן שמאמת את מזהה השולח תואם במדויק לשלך. מזהה צ'אט מוגדר מראש.
לאחר אימות המשתמש, הבוט מנתח את הטקסט שהתקבל: אם הוא מזהה /led_onהוא שולח אות דיגיטלי לפין 33 כדי להדליק את האור; אם הוא מקבל /led_off, מכבה אותו. ישנה גם אפשרות ל /led_toggleוזה מאוד פרקטי כי הופך את המצב הנוכחי של נורית ה-LED מבלי שתצטרך לדעת אם היא הייתה דולקת או כבויה בעבר.
קריאת חיישנים והשלמתם
בנוסף להוצאת פקודות, הבוט יכול גם לספק מידע. שימוש בפקודה /sw_stateה-ESP32 קורא את מצב פין 14. מאחר שקבענו את הפין כ- INPUT_PULLUPהמכשיר יזהה אם הכפתור נלחץ או לא וישלח לנו תשובה המאשרת זאת.
במהלך תהליך האתחול, המכשיר מתחבר ל-Wi-Fi בצורה נעולה, כלומר הוא לא יעשה דבר עד שהחיבור יציב . כדי לשפר עוד יותר את האבטחה, נעשה שימוש בתעודת הבסיס של טלגרם, מה שמבטיח שתעבורת הנתונים מוצפנת. הלולאה הראשית פשוט חוזרת על בדיקת ההודעות בכל שנייה כדי לשמור על המערכת זריזה ותגובתית.
בעזרת מערכת זו, שילבנו בהצלחה חומרה ותוכנה כדי ליצור גשר תקשורת אלחוטי. הגדרתי בוט, ניהלנו אבטחה באמצעות מזהים ותעודות, ותכנתנו תגובות פיני GPIO כדי לתקשר עם העולם הפיזי מכל מקום עם חיבור לאינטרנט.
שאלות נפוצות
איזו ספרייה נדרשת כדי לחבר את ה-ESP32 לטלגרם?
יש להשתמש בספריית UniversalTelegramBot, אשר מפשטת את האינטראקציה עם ה-API של טלגרם ומקלה על שליחה וקבלת הודעות.
איך אני מוודא שרק אני יכול לשלוט בבוט?
הקוד מיישם מסנן שמשווה את מזהה הצ'אט של ההודעה שהתקבלה עם CHAT_ID מוגדר מראש, תוך התעלמות מכל פקודה המגיעה ממשתמש אחר.
האם יש צורך להשתמש ב-HTTPS כדי לתקשר עם הבוט?
כן, טלגרם דורש חיבורים מאובטחים, לכן נעשה שימוש ב-WiFiClientSecure וחייבת להיות מוגדרת תעודת השורש של טלגרם ב-ESP32.
מהי מטרת הפקודה /led_toggle בקוד?
פקודה זו משמשת להיפוך המצב הנוכחי של נורת ה-LED, להדלקתה אם היא הייתה כבויה או לכבותה אם היא הייתה דולקת.
מדוע משתמשים ב-INPUT_PULLUP עבור המתג?
הוא משמש להפעלת ההתנגדות הפנימית של הלוח, ובכך נמנע הצורך להוסיף התנגדות פיזית חיצונית למעגל הכפתור.
איפה אני משיג את אסימון הבוט ואת מזהה המשתמש?
את הטוקן מתקבל על ידי יצירת הבוט דרך BotFather בטלגרם, ואת מזהה המשתמש ניתן להשיג באמצעות בוטים המתמחים בהשגת זהות הפרופיל.




