תוכן עניינים:
- אספקה
- שלב 1: תכונות
- שלב 2: PCB
- שלב 3: הרכבה
- שלב 4: סקירת תכנות
- שלב 5: קלט
- שלב 6: יציאות
- שלב 7: רישום
- שלב 8: באזר
- שלב 9: שילובי IoT חיצוניים
- שלב 10: שימוש
- שלב 11: תוכניות עתידיות
וִידֵאוֹ: רכזת בית חכם ESP32: 11 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
יצירת מערכת שיכולה להתמודד עם כמויות גדולות של נתוני חיישנים, בעלת מספר פלטים ולהתחבר לאינטרנט או לרשת מקומית דורשת זמן רב ומאמץ רב. לעתים קרובות מדי, אנשים המעוניינים ליצור רשתות בית חכמות משלהם נאבקים ביכולתם למצוא ולהרכיב רכיבים מותאמים אישית למערכת גדולה יותר. לכן רציתי ליצור פלטפורמה מודולרית ועשירה בתכונות שתקל על בניית חיישנים ויציאות מחוברות IoT.
תודה ל- DFRobot ו- PCBGOGO.com על חסות הפרויקט הזה!
למידע מעמיק יותר, בקר במאגר Github:
אספקה
-
חיפושית אש DFRobot ESP32
www.dfrobot.com/product-1590.html
-
חיישן DHT22
www.dfrobot.com/product-1102.html
-
חיישן אור ותנועות APDS9960
www.dfrobot.com/product-1361.html
-
מודול IX 20X4 LCD
www.dfrobot.com/product-590.html
-
רצועת LED אנלוגית RGB
www.dfrobot.com/product-1829.html
- נהגי מנוע צעד DRV8825
- קורא כרטיסי SD
- מנועי צעד NEMA17
שלב 1: תכונות
המאפיין העיקרי של לוח זה הוא לוח פיתוח ESP32 FireBeetle המטפל בכל תקשורת, קריאות חיישן ותפוקות. ישנם שני נהגי מנוע צעד השולטים בשני מנועי צעד דו קוטביים.
האוטובוס I2C נשבר גם לשימוש עם רכיבים כגון APDS9960 או LCD. לקריאת הטמפרטורה, יש סיכות שבורות לחיבור לחיישן DHT22, כמו גם פוטורסיסטור לקריאת רמות אור הסביבה.
קיימת תמיכה ברצועת אור אנלוגית על הלוח, שעליה שלוש MOSFET להנעת נורות ה- LED.
שלב 2: PCB
התחלתי את תהליך עיצוב ה- PCB על ידי יצירת תחילה סכמטי ב- Eagle. מכיוון שלא הצלחתי למצוא ספריית ESP32 FireBeetle, פשוט השתמשתי בשתי כותרות פינים 1x18 פינים במקום. לאחר מכן יצרתי מעגל לניהול חשמל שיכול לקבל 12 וולט באמצעות שקע חבית DC ולהמיר אותו ל -5 וולט להפעלת החיישנים ו- ESP32.
לאחר השלמת הסכימה, עברתי לעצב את ה- PCB עצמו.
ידעתי שתקע חבית DC יצטרך להיות קרוב לחזית הלוח, וקבלי החלקת אספקת החשמל של 100uF צריכים להיות קרובים לכניסות הכוח של מנוע הצעד. לאחר שהכל הונח, התחלתי לנתב עקבות.
בעוד Oshpark מייצרת מחשבי PCB באיכות מעולה, המחירים שלהם גבוהים למדי. למרבה המזל, PCBGOGO.com מייצרת גם PCB מעולים במחיר נוח. הצלחתי לקנות עשרה PCB ב -5 $ בלבד, במקום לשלם 52 $ עבור שלושה לוחות בלבד מ- Oshpark.com.
שלב 3: הרכבה
בסך הכל, הרכבת הלוח הייתה קלה למדי. התחלתי בהלחמה של הרכיבים המותקנים על פני השטח ולאחר מכן חיברתי את מחבר שקע הקנה ואת הרגולטור. לאחר מכן, הלחמתי בכותרות הסיכה לרכיבים כגון נהגי המנוע ו- FireBeetle.
לאחר השלמת ההלחמה, בדקתי את הלוח לקצר חשמלי על ידי הכנסת מולטימטר למצב מדידת התנגדות ובדקתי אם ההתנגדות עולה על כמות מסוימת. הלוח עבר, ואז הצלחתי לחבר כל רכיב.
שלב 4: סקירת תכנות
רציתי שהקוד ללוח זה יהיה מודולרי וקל לשימוש. המשמעות הייתה שיש מספר כיתות המטפלות בפונקציות ספציפיות, יחד עם כיתת עטיפה גדולה יותר המשלבת את הקטנות יותר.
שלב 5: קלט
לצורך טיפול בכניסות, יצרתי מחלקה בשם "Hub_Inputs", המאפשרת לרכזת הבית לתקשר עם APDS9960, יחד עם יצירת וניהול כפתורים וממשקי מגע קיבוליים. הוא מכיל את הפונקציות הבאות:
כפתור צור
קבל אם לוחצים על הכפתור
קבל מספר לחיצות על כפתורים
קבל את המחווה האחרונה
קבל ערך מגע קיבולי
הלחצנים מאוחסנים כסטרוקטור, עם שלוש תכונות: is_pressed, numberPresses ו- pin. כל כפתור, כאשר הוא נוצר, מחובר להפסקה. כאשר הפרעה זו מופעלת, שגרת שירות ההפרעה (ISR) מועברת מצביע של אותו כפתור (נתון ככתובת הזיכרון שלו במערך הכפתורים) ומעלה את מספר לחיצות הכפתורים, יחד עם עדכון הערך הבולאני is_pressed.
ערכי מגע קיבוליים הם הרבה יותר פשוטים. הם נשלפים על ידי העברת סיכת המגע לפונקציית touchRead ().
המחווה האחרונה מתעדכנת על ידי סקירת ה- APDS9960 ובדיקה אם זוהתה מחווה חדשה כלשהי, ואם זוהתה, הגדר את משתנה המחווה הפרטית למחווה זו.
שלב 6: יציאות
מרכז הבית החכם כולל מספר דרכים להפיק מידע ולשנות אורות. ישנם סיכות הפורצות את האוטובוס I2C, המאפשרות למשתמשים לחבר LCD. עד כה נתמך רק גודל LCD אחד: 20 x 4. באמצעות הפונקציה "hub.display_message ()", משתמשים יכולים להציג הודעות על ה- LCD על ידי העברת אובייקט מחרוזת.
יש גם כותרת סיכה לחיבור מחרוזת נוריות אנלוגיות. קריאת הפונקציה "hub.set_led_strip (r, g, b)", קובעת את צבע הרצועה.
שני מנועי הצעד מונעים באמצעות זוג לוחות דרייבר DRV8825. החלטתי להשתמש בספריית BasicStepper לטיפול בשליטה מוטורית. כאשר אתחול הלוח נוצרים שני אובייקטים של צעדים ושני המנועים הופכים לפעילים. כדי לדרג כל מנוע, משתמשים בפונקציה "hub.step_motor (motor_id, steps)", כאשר מזהה המנוע הוא 0 או 1.
שלב 7: רישום
מכיוון שללוח יש כמה חיישנים, רציתי את האפשרות לאסוף ולרשום נתונים באופן מקומי.
כדי להתחיל להיכנס, נוצר קובץ חדש עם "hub.create_log (שם קובץ, כותרת)", שבו הכותרת משמשת ליצירת שורת קובץ CSV המציינת עמודות. העמודה הראשונה היא תמיד חותמת זמן בשנה ביום יום בחודש: מינימום: פורמט שניות. כדי לקבל את הזמן, הפונקציה hub.log_to_file () מקבלת את הזמן עם הפונקציה basic_functions.get_time (). מבנה הזמן tm מועבר אז בהתייחסות לפונקציית הרישום, יחד עם הנתונים ושם הקובץ.
שלב 8: באזר
מה טוב בלוח IoT אם אינך יכול לנגן מוזיקה? זו הסיבה שכללתי זמזם עם פונקציה להשמעת צלילים. קריאת "hub.play_sounds (מנגינה, משך, אורך)" מתחילה לנגן שיר, כשהמנגינה היא מערך תדרי תווים, משך כמערך של משכי תווים ואורך כמספר התווים.
שלב 9: שילובי IoT חיצוניים
הרכזת תומכת כיום ב- IFTTT webhooks. ניתן להפעיל אותם על ידי קריאה לפונקציה Hub_IoT.publish_webhook (כתובת אתר, נתונים, אירוע, מפתח) או Hub_IoT.publish_webhook (כתובת אתר, נתונים). זה שולח בקשת POST לכתובת האתר הנתונה עם הנתונים המצורפים, יחד עם שם אירוע במידת הצורך. כדי להגדיר דוגמא לשילוב IFTTT, צור תחילה יישומון חדש. לאחר מכן בחר את שירות webhook המופעל כאשר מתקבלת בקשה.
לאחר מכן, קרא לאירוע "high_temp" ושמור אותו. לאחר מכן, בחר את שירות Gmail עבור החלק "זה" ובחר באפשרות "שלח דוא"ל לעצמי". בתוך ההתקנה של השירות, שים "הטמפרטורה גבוהה!" עבור הנבדק, ואז שמתי את "הטמפרטורה הנמדדת של {{ערך 1}} ב {{OccuredAt}}", המציגה את הטמפרטורה הנמדדת ואת השעה שבה האירוע הופעל.
לאחר שתגדיר אותו, פשוט הדבק את כתובת האתר של webhook שנוצר על ידי IFTTT והכנס את "high_temp" למקטע האירוע.
שלב 10: שימוש
כדי להשתמש ב- Smart Home Hub, פשוט התקשר לכל הפונקציות הדרושות בהגדרות () או בלולאה (). כבר שמתי שיחות פונקציה לדוגמא, כגון הדפסת השעה הנוכחית והתקשרות לאירוע IFTTT.
שלב 11: תוכניות עתידיות
מערכת Smart Home Hub פועלת טוב מאוד למשימות אוטומטיות פשוטות ואיסוף נתונים. ניתן להשתמש בו כמעט לכל דבר, כגון הגדרת צבע של רצועת LED, ניטור הטמפרטורה של החדר, בדיקה אם נורה דולקת ועוד שלל פרויקטים פוטנציאליים. בעתיד, ברצוני להרחיב את הפונקציונליות עוד יותר. זה יכול לכלול הוספת שרת אינטרנט חזק יותר, אחסון קבצים מקומי ואפילו Bluetooth או mqtt.
מוּמלָץ:
בית חכם מאת Raspberry Pi: 5 שלבים (עם תמונות)
בית חכם של Raspberry Pi: יש כבר כמה מוצרים שהופכים את הדירה שלך לחכמה יותר, אך רובם פתרונות קנייניים. אבל למה אתה צריך חיבור לאינטרנט כדי להחליף אור עם הסמארטפון שלך? זו הייתה סיבה אחת בשבילי לבנות סמאר משלי
מסך LCD עם בית חכם: 5 שלבים
STONE LCD עם בית חכם: היום קיבלתי תצוגת כונן יציאה טורית של STONE, שיכולה לתקשר דרך היציאה הטורית של MCU, ועיצוב ההיגיון של ממשק המשתמש של תצוגה זו ניתן לעצב ישירות באמצעות תוכנת VGUS המסופקת באתר הרשמי של STONE, וזה מאוד כינוס
צור מערכת בקרת בית חכם ב- STONE HMI Disp: 23 שלבים
צור מערכת בקרת בית חכם ב- STONE HMI Disp: מבוא הפרויקט ההדרכה הבאה מראה לך כיצד להשתמש במודול תצוגת המגע STONE STVC050WT-01 ליצירת מערכת שליטה פשוטה במכשירי חשמל ביתיים
מערכת בית חכם Alexa באמצעות מודול ממסר NodeMCU: 10 שלבים
מערכת הבית החכם של Alexa באמצעות מודול ממסר NodeMCU: בפרויקט IoT זה, יצרתי את מערכת אוטומציה הבית החכם של Alexa באמצעות NodeMCU ESP8266 & מודול ממסר. אתה יכול לשלוט בקלות באור, במאוורר ובמכשירי חשמל ביתיים אחרים באמצעות הפקודה הקולית. כדי לחבר את הרמקול החכם Echo Dot עם
בית חכם מרוחק: 5 שלבים
בית חכם מרוחק: חומרים: צלחת עץ דחוסה. 1 x עגלת קרקע עם קוטר ואן 1 ס"מ