תוכן עניינים:

סינתזה של דיבור רטרו. חלק: 12 IoT, אוטומציה ביתית: 12 שלבים (עם תמונות)
סינתזה של דיבור רטרו. חלק: 12 IoT, אוטומציה ביתית: 12 שלבים (עם תמונות)

וִידֵאוֹ: סינתזה של דיבור רטרו. חלק: 12 IoT, אוטומציה ביתית: 12 שלבים (עם תמונות)

וִידֵאוֹ: סינתזה של דיבור רטרו. חלק: 12 IoT, אוטומציה ביתית: 12 שלבים (עם תמונות)
וִידֵאוֹ: הסינתזה הקנטיאנית - הערות מבוא 2024, יולי
Anonim
Image
Image
סינתזה של דיבור רטרו. חלק: 12 IoT, אוטומציה ביתית
סינתזה של דיבור רטרו. חלק: 12 IoT, אוטומציה ביתית

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

תמונה 1 מציגה את מכשיר סינת דיבור IoT שהושלם ותמונה 2 מציגה את כל חלקי הרכיב המשמשים את אב הטיפוס שהופחתו גורם צורה להיכנס למוצר הסופי.

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

מבוא

כפי שהוזכר לעיל מפורט הוראה זו כיצד לייצר מכשיר סינתזה של דיבור רטרו IoT והוא מבוסס סביב SP0256-AL2 General Instruments.

מטרתו העיקרית היא להוסיף סינתזה קולית 'אולד סקול' לרשת IoT. למה 'בית ספר ישן' אתם עשויים לשאול? ובכן, מכיוון שהייתי בסביבות שנות השמונים כשהדברים האלה יוצרו לראשונה והתממשקתי לאחד מה- BBC Micro שלי מבחינתי יש מידה מסוימת של נוסטלגיה סביב ה- SP0256-AL2.

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

אה, ושלא לדבר על כך שיש לי גם "עומס תיקים" של מחשבי IC מסוג "SP0256-AL2".

המכשיר מסוגל גם לקרוא טמפרטורה ולחות מקומיות ולכן מרחיב עוד יותר את המכשור הסביבתי של תשתית IoT הקיימת שלי לחיבור לרשת IoT מבוססת MQTT/OpenHAB המפורטת בסדרה זו בנושא אוטומציה ביתית (HA), תוך בנייה על קוד שימוש חוזר שנלקח מכאן.

בלבו נמצא ESP8266-07 שאחראי לתקשורת MQTT ולשליטה על כל פונקציונליות המערכת (גישה לכרטיס SD, בקרת LED, חישת טמפרטורה/לחות, בקרת עוצמת קול, סינתזת דיבור). המכשיר ניתן להגדרה מלאה באמצעות קבצי טקסט המאוחסנים על כרטיס SD מקומי, אם כי ניתן לתכנת גם פרמטרים של כיול ואבטחת רשת באמצעות פרסומי MQTT מרוחקים.

אילו חלקים אני צריך?

ראה את כתב החומרים כאן

איזו תוכנה אני צריך?

  • Arduino IDE 1.6.9,
  • Arduino IDE הוגדר לתכנת ה- ESP8266-07 (זהה לזה). לאחר מכן הגדר את ה- IDE כמצוין בתיאור המפורט המסופק בסקיצת התוכנה כאן,
  • Python v3.5.2 אם ברצונך להשתמש ביכולת הבדיקה האוטומטית, פירוט כאן

אילו כלים אני צריך?

  • מיקרוסקופ לפחות x3 (להלחמה SMT),
  • כלי לחיצת מחברי מולקס (למחברי JST),
  • ברזל הלחמה SMD (עם עט השטף נוזלי והלחמת ליבות שטף),
  • מברגים (שונים),
  • אקדח חום,
  • תרגילים (שונים),
  • כלי יד המכווץ,
  • קבצים (שונים),
  • דרמל (סיביות שונות),
  • סגן חסון (קטן וגדול, כמו חבר לעבודה בשחור ובדק),
  • אזמל,
  • מחוגה ורניר (משמש למדידת ייצור ושימושי לגודל רכיבי PCB),
  • מפתחות ומנהלי אגוזים (שונים),
  • פינצטה חזקה (להלחמה SMT),
  • מסור ג'וניור,
  • מקדחה (עם מקדחים שונים),
  • צבת דקה (נקודה וחוטם),
  • חותכי שטיפה,
  • DMM עם בדיקת המשכיות קולית,
  • היקף דיגיטלי של ערוץ כפול (שימושי לאיתור באגים באגים)

אילו כישורים אני צריך?

  • הרבה סבלנות,
  • מיומנות רבה ויכולת תיאום יד/עין מצוינת,
  • יכולות הלחמה מצוינות,
  • כישורי ייצור מצוינים,
  • היכולת לדמיין ב -3 ממדים,
  • קצת ידע בפיתוח תוכנה עם 'C' (אם אתה רוצה להבין את קוד המקור),
  • קצת ידע בפייתון (כיצד להתקין ולהריץ סקריפטים, אם ברצונך להשתמש בבדיקות האוטומטיות),
  • הכרת Arduino וזה IDE,
  • ידע טוב באלקטרוניקה,
  • קצת הבנה של הרשת הביתית שלך.

נושאים מכוסים

  • מדריך למשתמש
  • סקירה כללית של המעגל
  • ייצור והרכבה של PCB
  • זִיוּף
  • סקירת מערכת תוכנה
  • סקירת תוכנה
  • כיול חיישן
  • אמנת שמות הנושאים MQTT
  • איתור באגים וגילוי תקלות
  • בדיקת העיצוב
  • סיכום
  • הפניות בשימוש

קישורים לסדרה לחלק 11: מסוף שולחן העבודה של IoT. חלק: 11 IoT, אוטומציה ביתית

שלב 1: מדריך למשתמש

מדריך למשתמש
מדריך למשתמש
מדריך למשתמש
מדריך למשתמש
מדריך למשתמש
מדריך למשתמש

תמונה 1 למעלה מציגה את החלק הקדמי של סינטיסייזר דיבור רטרו ותמונה 2 את החלק האחורי.

מארז קדמי

  1. גריל רמקולים
  2. שקע אוזניות 3.5 מ"מ: הרמקול הראשי מושבת בעת הכנסת שקע 3.5 מ"מ.
  3. נורית אדומה: נורית זו נדלקת בזמן שמילה נאמרת בעת התחלת הדיבור באמצעות בקשת
  4. LED כחול: נורית LED זוהרת בזמן שמילה נאמרת כאשר הדיבור התחיל באמצעות בקשת IQ של MQTT.

מארז אחורי

  1. לחצן איפוס: משמש לאיפוס קשה של מכשיר ה- IP של ESP8266-07.
  2. לחצן הבזק: בשימוש בשילוב עם לחצן האיפוס מאפשר הבזק מחדש של ה- ESP8266-07.
  3. תקע אנטנת WiFi (תקע SMA): עבור אנטנת WiFi חיצונית המעניקה את הנחתת נתיבי ה- RF הכי פחות מכיוון שהסגירה היא אלומיניום.
  4. יציאת תכנות חיצונית: להסרת הצורך בברקת המארז כדי לקבל גישה ל- ESP8266-07 למטרות תכנות מחדש. סיכות התכנות של ESP8266-07 הוצאו ליציאת התכנות החיצונית. תמונה 3 היא מתאם התכנות.
  5. נורית ירוקה: זוהי מערכת ה- IoT הניתנת לשימוש ומשמשת לציון מצב אבחון של המכשיר ואתחול ותוך כדי פעולה.
  6. חיישן טמפרטורה/לחות חיצוניים (AM2320)
  7. חריץ לכרטיס SD: הוא מכיל את כל נתוני התצורה/אבטחה יחד עם דפי שרת האינטרנט.
  8. שקע אספקה 2.1 מ"מ 6VDC

שלב 2: סקירת מעגלים

סקירה כללית של המעגל
סקירה כללית של המעגל
סקירה כללית של המעגל
סקירה כללית של המעגל

מכשיר ה- Retro Speech Synth כולל שני מחשבים אישיים;

  • RetroSpeechSynthIoTBoard: זהו כללי ESP8266-07/12/12E/13 PCB כללי
  • RetroSpeechSynthBoard: זהו PCB כללי SP0256-AL2

לוח IoT של רטרו דיבור

לוח זה מאפשר הלחמה ישירה של שקע ESP8266-07/12/12E/13 או 0.1 אינץ 'המתאים ללוח PCB מסוג ESP8266.

הלוח תוכנן להרחיב את הקלט/פלט שלו באמצעות חיבור I2C והוא יכול לתמוך ברמות אספקה של 3v3 או 5v באמצעות Q1, Q2, R8-13.

החיבור ללוח מושג באמצעות אחת משתי כותרות J2 ו- J4, סרט DIL IDC בעל 8 כיוונים או JST/מולקס 5 כיוונים.

הוראות U2 ו- U3 3.3v ו- 5v על תקנת אספקת הלוח. לחלופין אם נדרשת קיבולת זרם גדולה יותר, ניתן לחבר רגולטורי שאנט סדרתיים מחוץ למחברים J10 ו- J11 בהתאמה.

המחברים J1 ו- J3 מציעים תמיכה חיצונית בכרטיס SD באמצעות SPI. J1 תוכנן עבור מולקס בעל 8 כיוונים ול- J3 יש סיכה ישירה לתמיכת תאימות סיכה עבור כרטיס PC מחוץ למדף עם תמיכה 3v3 או 5v.

לוח סינתטי דיבור רטרו

השליטה בלוח זה היא באמצעות חיבור תואם I2C 5v באמצעות J1, J5 או J6, מחבר JST/Molex דו כיווני, DIL IDC או מחבר סרט 8-כיווני.

U2 MPC23017 מספק ממשק I2C למקביל ל- U3 SP0256-AL2 ו- LEDS D1 (ירוק), D2 (אדום) ו- D3 (כחול). הפלט של Synth Speech מוזרם למגבר שמע CR1 TBA820M באמצעות סיר אנלוגי RV1 או סיר דיגיטלי U1 MCP4561.

Digital Pot U1 נשלט גם באמצעות I2C תואם 5V.

הערה: מכשיר ESP8266-07 נבחר מכיוון שיש לו מחבר IPX אינטגרלי המאפשר להוסיף אנטנת WiFi חיצונית למארז האלומיניום.

שלב 3: ייצור והרכבה של PCB

ייצור והרכבה של PCB
ייצור והרכבה של PCB
ייצור והרכבה של PCB
ייצור והרכבה של PCB
ייצור והרכבה של PCB
ייצור והרכבה של PCB
ייצור והרכבה של PCB
ייצור והרכבה של PCB

תמונות 1 ו -2 מציגות את מכלולי המשנה של ה- PCB שהושלמו וקווים הממוקמים על מצע מארז האלומיניום.

שני ה- PCB תוכננו באמצעות Kicad v4.0.7, שיוצרו על ידי JLCPCB והורכבו על ידי והוצגו מעל תמונות 3 עד 13.

שלב 4: ייצור

זִיוּף
זִיוּף
זִיוּף
זִיוּף
זִיוּף
זִיוּף

תמונה 1 מציגה פריסה בסגנון היינס ידני של כל החלקים הטרומיים לפני ההרכבה הסופית.

תמונות 2 … 5 מציגות צילומים שונים במהלך ייצור המארז עם מרווחים מינימליים.

שלב 5: סקירת מערכת תוכנה

סקירת מערכת תוכנה
סקירת מערכת תוכנה
סקירת מערכת תוכנה
סקירת מערכת תוכנה

מכשיר סינתזה של דיבור רטרו IoT מכיל שישה רכיבי תוכנה מרכזיים כפי שמוצג בתמונה 1 למעלה.

כרטיס זיכרון

זוהי מערכת חיצונית SD SPI Flash Filing ומשמשת לאחסון המידע הבא (ראה תמונה 2 למעלה);

  • סמלים ודף הבית של 'תצורת סינתור דיבור' index.htm: מוגש על ידי מכשיר IoT כאשר הוא אינו מצליח להתחבר לרשת ה- IoT WiFi שלך (בדרך כלל עקב מידע אבטחה שגוי, או שימוש בפעם הראשונה) ומספק למשתמש אמצעים של הגדרת מרחוק את החיישנים ללא צורך בהבזק מחדש של תוכן SD חדש. הוא מחזיק גם index1.htm, mqtt.htm ו- sp0256.htm, אלה הם דפי האינטרנט המוגשים באופן מקומי הנגישים באמצעות דפדפן אינטרנט המאפשר שליטה מוגבלת בסינתור הדיבור באמצעות
  • מידע אבטחה: זה מכיל את המידע המשמש בעת הפעלת מכשיר ה- IoT כדי להתחבר לרשת ה- IoT WiFi ול- MQTT Broker. מידע שנשלח באמצעות 'דף הבית של תצורת סינתטי דיבור' נכתב לקובץ זה ('secvals.txt').
  • מידע כיול: המידע הכלול בתוך הקבצים ('calvals1.txt' ו- 'calvals2.txt') משמש לכיול חיישני הטמפרטורה/הלחות המשולבים במקרה הצורך. ניתן לכתוב קבועי כיול למכשיר IoT באמצעות פקודות MQTT של מתווך MQTT או על ידי הברקה מחדש של כרטיס ה- SD. 'calvals1.txt' נוגע לחיישן AM2320 ו- 'calvals2.txt' ל- DHT22.
  • ערכי מערכת הניתנים להגדרה של המשתמש: המידע הנמצא בתוך קובץ זה ('confvals.txt'), שנבחר על ידי המשתמש, שולט בתגובות מערכת מסוימות, כגון רמת עוצמת קול דיגיטלית ראשונית, הודעה אוטומטית על 'מוכן מערכת' על מנוי מתווך MQTT וכו '.

שרת mDNS

פונקציונליות זו מופעלת כאשר מכשיר ה- IoT לא הצליח להתחבר לרשת ה- WiFi שלך כתחנת WiFi ובמקום זאת הפך לנקודת גישה ל- WiFi בדומה לנתב WiFi ביתי. במקרה של נתב כזה בדרך כלל היית מתחבר אליו על ידי הזנת כתובת ה- IP של משהו כמו 192.168.1.1 (בדרך כלל מודפס על תווית המודבקת לתיבה) ישירות לסרגל כתובת הדפדפן שלך ולאחר מכן תקבל דף כניסה להיכנס שם המשתמש והסיסמה כדי לאפשר לך להגדיר את המכשיר. עבור ESP8266-07 במצב AP (מצב נקודת גישה) ההתקן כברירת מחדל לכתובת ה- IP 192.168.4.1, אולם כאשר שרת mDNS פועל, עליך להזין רק את השם הידידותי לאדם 'SPEECHSVR.local' בשורת כתובת האתר של הדפדפן כדי עיין בדף הבית של 'תצורת סינתור דיבור'.

לקוח MQTT

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

שרת אינטרנט

לשרת אינטרנט זה שתי מטרות;

  1. אם מכשיר ה- IoT לא מצליח להתחבר לרשת ה- WiFi אשר SSID, P/W וכו 'מוגדרים בקובץ מידע האבטחה המוחזק בכרטיס ה- SD המכשיר יהפוך לנקודת גישה. לאחר החיבור לרשת ה- WiFi המסופקת על ידי נקודת הגישה, נוכחותו של שרת אינטרנט HTTP מאפשרת לך להתחבר ישירות למכשיר ולשנות את תצורתו באמצעות דפדפן אינטרנט HTTP שמטרתו להגיש את תצורת 'סינתז דיבור' דף הבית 'דף אינטרנט המוחזק גם בכרטיס ה- SD.
  2. לאחר שמכשיר סינתזת הדיבור של IoT רטרו יתחבר לרשת ה- WiFi ולמתווך MQTT, אם ניגש אליו, שרת האינטרנט HTTP יציג אוטומטית דף אינטרנט מסוג HTTP המאפשר שליטה מוגבלת במכשיר ה- IoT לדבר מבחר משפטים קבועים ויכולת מחזור שני נוריות אדום וכחול קדמי.

תחנת WiFi

פונקציונליות זו מעניקה למכשיר IoT אפשרות להתחבר לרשת WiFi ביתית באמצעות הפרמטרים בקובץ מידע האבטחה, ללא זה מכשיר ה- IoT שלך לא יוכל להירשם/לפרסם ל- MQTT Broker.

נקודת גישה WiFi

היכולת להפוך לנקודת גישה ל- WiFi היא אמצעי באמצעותו מכשיר ה- IoT מאפשר לך להתחבר אליו ולבצע שינויים בתצורה באמצעות תחנת WiFi ודפדפן (כגון Safari ב- iPad של אפל). נקודת גישה זו משדרת SSID = "SPEECHSYN" + 6 הספרות האחרונות של כתובת ה- MAC של התקן IoT. הסיסמה לרשת סגורה זו נקראת בדמיון 'סיסמה'

שלב 6: סקירת תוכנה

סקירת תוכנה
סקירת תוכנה
סקירת תוכנה
סקירת תוכנה
סקירת תוכנה
סקירת תוכנה

הַקדָמָה

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

סקירה כללית

התוכנה עושה שימוש במכשיר המדינה כפי שמוצג בתמונה 1 למעלה (עותק מלא של המקור במאגר GitHub שלי כאן). ישנם 5 מצבים עיקריים כפי שמתואר להלן;

  • INIT

    מצב אתחול זה הוא המצב הראשון שנכנס לאחר ההפעלה

  • NOCONFIG

    מצב זה נכנס אם לאחר ההפעלה מתגלה קובץ secvals.txt לא חוקי או חסר. במצב זה דף התצורה גלוי

  • ממתין ל NW

    מצב זה חולף, נכנס בזמן שאין חיבור לרשת WiFi

  • תלוי ב- MQTT

    מצב זה חולף, נכנס לאחר חיבור לרשת WiFi ולמרות שאין קשר למתווך MQTT ברשת זו

  • פָּעִיל

    זהו המצב התפעולי הנורמלי שנכנס לאחר חיבור רשת WiFi וחיבור MQTT Broker. בתקופה זו הטמפרטורה, מדד החום והלחות במכשיר סינתזה של דיבור רטרו IoT מתפרסמים באופן קבוע ל- MQTT Broker. במצב זה דף הבית של Synth Synth גלוי

האירועים השולטים במעברים בין מדינות מתוארים בתמונה 1 לעיל. המעברים בין מדינות כפופים גם לפרמטרים הבאים של SecVals;

  • כתובת ה- IP של ברוקר MQTT הראשונה. בצורה עשרונית מנוקדת AAA. BBB. CCC. DDD
  • נמל הברוקר MQTT השני. בצורה שלמה.
  • חיבור MQTT Broker השלישי מנסה לבצע לפני המעבר ממצב STA למצב AP. בצורה שלמה.
  • רשת ה- WiFi ה- SSID הרביעית. בטקסט חופשי.
  • סיסמא חמישית לרשת WiFi. בטקסט חופשי.

כפי שצוין לעיל אם מכשיר ה- IoT לא מצליח להתחבר כתחנת WiFi לרשת ה- WiFi אשר SSID ו- P/W מוגדרים ב- secvals.txt המוחזק בכרטיס ה- SD, מכשיר ה- IoT יהפוך לנקודת גישה. לאחר החיבור לנקודת גישה זו הוא יציג את 'דף הבית של תצורת סינתטי דיבור' כפי שמוצג למעלה בתמונה 2 (על ידי הזנת 'SPEECHSVR.local' או 192.168.4.1 בשורת כתובת האתר של הדפדפנים שלך). דף הבית הזה מאפשר להגדיר מחדש את מכשיר סינתזת הדיבור של IoT Retro באמצעות דפדפן

גישה מרחוק כשהיא במצב ACTIVE

לאחר החיבור למתווך MQTT ניתן גם לכייל מחדש ולתקן את המכשיר מחדש באמצעות פרסומי נושא MQTT. לקובץ calvals.txt יש גישה ל- R/W ול- secvals.txt יש גישה לכתיבה בלבד.

כמו כן, כאמור לעיל, פעם אחת במצב הפעיל ניתן לגשת לסינתור הדיבור באמצעות ממשק HTTP על ידי הזנת 'SPEECHSVR.local' או 192.168.4.1 בשורת כתובת האתר של הדפדפנים שלך. ממשק זה מבוסס HTTP מאפשר שליטה בסיסית בסינתז הדיבור. תמונות 3, 4 ו -5 מציגות את דפי האינטרנט הזמינים.

איתור באגים של משתמשים

במהלך רצף האתחול מערכת ירוק מכשיר ה- IoT שמובילה בחלק האחורי של המתחם נותנת את המשוב הבא לאיתור באגים;

  • 1 הבזק קצר: אין קובץ Config הממוקם בכרטיס SD (secvals.txt)
  • 2 הבזקים קצרים: מכשיר IoT מנסה להתחבר לרשת WiFi
  • תאורה מתמשכת: מכשיר IoT מנסה להתחבר ל- MQTT Broker
  • כבוי: המכשיר פעיל.

פונקציונליות מכשיר סינתזה של IoT Retro בדיבור במצב ACTIVE

לאחר שהמצב פעיל, ה- ESP8266 נכנס ללולאה מתמשכת וקוראת לפונקציות הבאות; timer_update (), checkTemperatureAndHumidity () ו- handleSpeech (). התוצאה נטו שתוכננה להציג בפני המשתמש ממשק HTTP או MQTT, ולתת שירות מעבד דיבור משולב שלו עם פונמות לפי דרישה ולפרסם ערכים פרמטריים מקומיים על פני MQTT.

רשימה מקיפה של כל מנויי הפרסומים והפרסומים כולל ערכי מטען כלולה בקוד המקור.

שלב 7: כיול חיישן

כיול חיישן
כיול חיישן

כאשר התקן IoT מופעל, כחלק מרצף האתחול, שני קבצים בשם 'cavals1.txt' ו- 'cavals2.txt' נקראים מכרטיס ה- SD.

התוכן של קבצים אלה הוא קבועי כיול כפי שצוין לעיל בתמונה 1.

  1. 'cavals1.txt': משמש את AM2320 החיצוני
  2. 'cavals2.txt': משמש את ה- DHT22 הפנימי

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

אסטרטגיית דיווח

פרמטר זה קובע כיצד החיישן המרוחק מדווח על שינויים פרמטריים סביבתיים המקומיים לו. אם נבחר ערך של 0 החיישן המרוחק יפרסם כל שינוי שהוא רואה בטמפרטורה או בלחות בכל פעם שהחיישן המתאים נקרא (בערך כל 10 שניות). כל ערך אחר יעכב את פרסום השינוי ב -1… 60 דקות. שינוי פרמטר זה מאפשר אופטימיזציה של תעבורת רשת MQTT. יש לציין נתוני טמפרטורה ולחות מ- DHT22 נקראים לסירוגין בשל מגבלות החיישן.

כיול טמפרטורה

כדי לכייל את חיישן הטמפרטורה עקבתי אחר אותו תהליך כפי שמתואר כאן שלב 4, שוב באמצעות יחס y = mx+c פשוט. השתמשתי בטמפרטורת IoT, חיישן לחות מספר 1 כמכשיר ההתייחסות. הערכים מהחיישן הם במעלות צלסיוס.

כיול לחות

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

שלב 8: אמנת שמות הנושאים MQTT

אמנת שמות הנושאים MQTT
אמנת שמות הנושאים MQTT
אמנת שמות הנושאים MQTT
אמנת שמות הנושאים MQTT

כפי שהוזכר בהוראה מוקדמת יותר (כאן) התמקמתי במועצת שמות הנושאים המתוארת בתמונה 1 למעלה.

כלומר, 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice' זה לא מושלם אבל זה מאפשר ליישם מסננים שימושיים כדי לראות את כל יציאות החיישנים לנושא פרמטרי נתון ובכך לאפשר השוואה קלה כמו בתמונה 2 למעלה עם MQTTSpy.

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

הוא תומך גם בקבוצות לוגיות הניתנות להרחבה של פונקציונליות בתוך מכשיר IoT נתון.

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

הערה: אם אינך בטוח כיצד להשתמש ב- MQTTSpy ראה כאן 'הגדרת מתווך MQTT. חלק 2: IoT, אוטומציה ביתית '

שלב 9: איתור באגים וגילוי תקלות

איתור באגים וגילוי תקלות
איתור באגים וגילוי תקלות

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

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

לאחר ניפוי ראשוני של ה- PCB Synth PCB באמצעות Arduino Uno למקורות פונמות והוכחת לוח זה פועל, לקחתי מרחב לקווי I2C בין PCB IoT ו- PCB Synth Speech. ראה תמונה 1 למעלה.

אתה יכול לראות בבירור את 'שן המסור'/קצה מעריכי לאות I2C על העקבות.

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

כ"עבודה "מקביל לשני נגדי ההרמה SMT R12 ו- R13 עם 10Ks בכדי לתת 4K7 ובוודאי שסינת הדיבור" פרצה לחיים"

סוג זה של כישלון הוא ההפך ממה שיכול לקרות בעת איתור באגים מסוגים אלה. באופן כללי רוב המודולים מבוססי I2C שנרכשו מ- Ebay נוטים להגיע עם 10K או 4K7 משיכות קופצים שכבר מותקנות. אם אתה מתכוון להשתמש> 5 מודולים I2C, כל אחד עם משיכות קפיצה 4K7, העומס הכולל הוא 940R שיהיה גדול מדי לשלב הפלט של המאסטר. התיקון יהיה להסיר הלחמה של כל נגדי משיכה מלבד אחת מלבד אחת. רצוי זה הרחוק פיזית מהמאסטר.

טיפ שימושי ושווה לזכור בעת עיצוב אלקטרוניקה עם מכשירי I2C.

שלב 10: בדיקת העיצוב

Image
Image
בדיקת העיצוב
בדיקת העיצוב
בדיקת העיצוב
בדיקת העיצוב

הבדיקה בוצעה באמצעות שתי מתודולוגיות; ידני ואוטומטי.

הראשון, הידני ובדרך כלל בשימוש במהלך פיתוח הקוד הראשוני היה שימוש ב- MQTT Spy כדי לממש את כל הנושאים הזמינים למנוי ולבדוק את התגובות שפורסמו (המתוארות בתמונה 2 למעלה). מכיוון שמדובר בתהליך ידני, זה עלול להיות זמן רב וחשוף לטעויות ככל שמתפתח התקדמות הקוד, אם כי ביצוע ידני אכן מאפשר כיסוי של 100%.

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

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

סרטון של רצף הבדיקות האוטומטי בפעולה מוצג למעלה. הרצף מבצע את השלבים הבאים;

  • אוטומטית באמצעות MQTT

    • התחבר לעמוד השדרה של MQTT והכריז 'מוכן למערכת'
    • תרגיל LED ירוק
    • תרגיל LED אדום
    • תרגיל LED כחול
    • בדוק שהסיר הדיגיטלי פועל
    • דבר באמצעות פונמות
    • דבר באמצעות קודים משושה עבור פונמות
    • דבר באמצעות קודים לביטויי תיקון
    • קצת כיף של ד"ר הו והדאלקים.
  • באופן ידני באמצעות

    • תרגיל LED כחול
    • תרגיל LED אדום
    • אמרו משפטים קבועים 'סטיבן קווין', 'מערכת מוכנה' ו- 'שלום עולם'
    • החזק את שרת HTTP, תגיש שירות

      • פרטים על שבב סינתז דיבור
      • פרטי MQTT

שלב 11: סיכום

סיכום
סיכום

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

התוכנה עובדת היטב, מכשיר IoT פועל כבר די הרבה זמן ללא בעיות.

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

לא הפסקתי ליישם פקודת מילים ('WFD/SpeechTH/1/Word/Command') כי נגמר לי הזמן והייתי צריך להמשיך הלאה. אני בהחלט יכול לבקר זאת שוב וכאשר אקים מסד נתונים של MySQL. כרגע אני משתמש ב- InfluxDB.

שלב 12: שימוש בהפניות

המקורות הבאים שימשו לחיבור הוראה זו; קוד המקור למכשיר סינתזת הדיבור של IoT Retro (זה מכיל עותק של הכל)

https://github.com/SteveQuinn1/IoT_Retro_Speech_Synthesis_SP0256_AL2

PubSubClient.h

  • מאת: ניק או'לירי
  • מטרה: מאפשר למכשיר לפרסם או להירשם לנושאי MQTT עם ברוקר נתון
  • מאת:

DHT.h

  • מאת: Adafruit
  • מטרה: ספריית Arduino עבור חיישני טמפ 'ולחות
  • מאת:

Adafruit_AM2320.h/Adafruit_Sensor.h

  • מאת: Adafruit
  • מטרה: ספריית Arduino עבור AM2320 וכו 'חיישן טמפ' ולחות
  • מאת:

MCP4561_DIGI_POT.h

  • מאת: סטיב קווין
  • מטרה: ספריית Arduino עבור פוטנציומטר דיגיטלי MCP4561
  • מאת:

Adafruit_MCP23017.h

  • מאת: סטיב קווין
  • מטרה: ספריית Arduino עבור מרחיב הנמל I2C MCP23017. זוהי מזלג GITHub מספריית Adafruit-MCP23017-Arduino, מאת Adafruit.
  • מאת:

בשביל הכיף

https://haynes.com/en-gb/

ייצור PCB

https://jlcpcb.com/

התקנת ספריות ארדואינו נוספות

https://www.arduino.cc/en/Guide/Libraries

כיצד לבדוק ולכייל חיישן לחות

https://www.allaboutcircuits.com/projects/how-to-check-and-calibrate-a-humidity-sensor/?utm_source=All+About+Circuits+Members&utm_campaign=ffeee38e54-EMAIL_CAMPAIGN_2017_12_06&ut_55_255_54_51_384 /

גיליון נתונים SP0256-AL2

https://www.futurebots.com/spo256.pdf

חנות שבבי דיבור

https://www.speechchips.com/shop/

תחרות ארדואינו 2019
תחרות ארדואינו 2019
תחרות ארדואינו 2019
תחרות ארדואינו 2019

סגנית התחרות בארדואינו 2019

מוּמלָץ: