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

ESP-12 אינפרא אדום בלסטר: 7 שלבים
ESP-12 אינפרא אדום בלסטר: 7 שלבים

וִידֵאוֹ: ESP-12 אינפרא אדום בלסטר: 7 שלבים

וִידֵאוֹ: ESP-12 אינפרא אדום בלסטר: 7 שלבים
וִידֵאוֹ: how to make Motion detection light on off PIR sensor project #howto 2024, יולי
Anonim
ESP-12 אינפרא אדום בלסטר
ESP-12 אינפרא אדום בלסטר

אינפרא אדום בלסטר שלט רחוק באמצעות esp8266

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

בנוי דף אינטרנט פשוט בעיקר לבדיקות.

שימוש רגיל הוא באמצעות הודעות POST שיכולות להגיע מדפי אינטרנט או מבקרה קולית IFTTT / Alexa.

תומך בגלאי הפעלה של Amazon Echo / Dot כדי להשתיק / להשתיק ברגע שמדברים על הפעלה.

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

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

תומך בהעלאת OTA של קושחה חדשה ומשתמש בספריית WifiManager להגדרת Wi -Fi ראשונית

שלב 1: חומרה

חוּמרָה
חוּמרָה
חוּמרָה
חוּמרָה

משתמש ברכיבים הבאים

  • מודול ESP-12F
  • ווסת 3.3V (ווסת מיני באק MP2307)
  • מתגי MOSFET (AO3400)
  • פולט אדום אינפרא (3 מ"מ)
  • נגד תלוי GL2258 (גלאי פעילות Alexa אופציונלי)
  • נגדים
  • קבלים ניתוק (20uF)
  • שקע נקבה USB (רצוי ידידותי להלחמה עם שרוול
  • רצועת שקע IC 3 פינים לגלאי Alexa
  • חלקים מכניים (ניתן להדפיס בתלת מימד)

ניתן להרכיב לתוך תיבת פרויקטים ESP-12F

  • חבר את הרגולטור למחבר ה- USB והכנס אותו לקופסה
  • איפור נהג IR על פיסת לוח ורו קטנה (3 חוטים, +5V, כניסת שער 0V)
  • חבר מנהל התקן IR ל- USB +5V, 0V
  • הכנס שקע IC 3 פינים לתיבת הפרויקט אם אתה משתמש בגלאי Alexa. התחבר ל- +3.3V, 0V וחוט לקלט
  • הפוך את ESP-12F עם 2.2K מ- GPIO15 ל- GND, EN ל- Vdd, 4K7 GPIO13 ל- Vdd, קלט Alexa ל- GPIO13, נהג IR ל- GPIO14, 0V ו- Vdd ל- 3.3V
  • המציא גלאי אלקסה ותמוך במאגר במידת הצורך.

שים לב שזה יכול להיות קל יותר לתכנת ESP-12F תחילה אם יש לך איזשהו מתקן תכנות סדרתי או מתקן לוחות זמני כזה לחיבור ליציאות הטוריות.

ניתן לבצע תכנות לאחר מכן באמצעות עדכון ה- OTA המובנה.

שלב 2: תוכנה

ה- ir Blaster משתמש במערכון Arduino הזמין ב- github

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

יש צורך בספריות הבאות, רובן סטנדרטיות או שניתן להוסיף אותן. שני האחרונים כלולים ב- git.

  • ESP8266 Wi -Fi
  • ESP8266 WebServer

  • FS.h
  • שרת DNS
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (כלול ב- Git)
  • BitMessages (כלול ב- Git)

פריטים בסקיצה שיש לשנות כוללים

  • קוד הרשאה לגישה לאינטרנט AP_AUTHID
  • סיסמת מנהל Wfi WM_PASSWORD
  • קושחה OTA סיסמה update_password
  • מכשירי IR חדשים / קודי כפתורים (ראה בהמשך)

ברגע שזה נעשה אז ראשית יש להעלות אותו באמצעות העלאה סדרתית רגילה.

כאשר נעשה שימוש ב- SPIFFS, יש להכין את הזיכרון על ידי התקנה ושימוש בכלי להעלאת נתוני סקיצה של arduino ESP8266. פעולה זו תעלה את תיקיית הנתונים כתוכן SPIFFS ראשוני

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

העדכון לאחר מכן עשוי להתבצע על ידי חיבור בינארי יצוא בסביבת Arduino ולאחר מכן גישה לממשק OTA ב- ip/firmware.

שלב 3: הוסף קודי מכשיר / לחצן

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

הגדרות הכפתור כלולות בקובץ buttonnames.txt. זוהי רשימה של שמות עולמיים בכל השלטים הנמצאים בשימוש מכיוון ששמות רבים נוטים להיות נפוצים. כפי שהוא מסופק, הוא מכיל פרטים על השלטים שבהם אני משתמש. ניתן להוסיף ערכים חדשים. יש מקום לסך של 160 שמות אך ניתן להגדיל זאת על ידי התאמת קבועים ב- bitMessages.h וחיבור מחדש. השמות המוגדרים כאן הם השמות שישמשו בעת שליחת פקודות.

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

קטע התצורה בתחילת קובץ התקן מכיל פרמטרים לשימוש בעת שליחת קוד. הערך הראשון הוא שם ההתקן המשמש בעת שליחת פקודה. פרמטרים אחרים מתוארים ב- readme באתר הקוד.

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

כדי ללכוד את הקודים לשלט חדש אני משתמש במקלט IR (TSOP) הנפוץ עם חיבור מקלטים מרחוק. זה מבצע את הפענוח הבסיסי ונותן פלט ברמת לוגיקה. בדרך כלל הם מגיעים עם שקע 3.5 מ מ עם חיבורי +5V, GND, DATA. הקרבתי אחת, קיצרתי את ההובלה והעברתי אותה דרך מאגר 3.3V הפוך כדי להאכיל סיכת GPIO ב- Raspberry Pi.

לאחר מכן אני משתמש בכלי פייתון rxir.py (בתיקייה של כלי git) כדי ללכוד קודים. כדי להקל על השימוש בלכידת מספר רב של לחצנים אז הכלי משתמש בקובץ הגדרת טקסט כדי להגדיר את הכפתורים בשלט והוא רק שמות הכפתורים בקבוצה בשלט. לדוגמה, ייתכן שיש שלט חדש של סוני ואחד מגדיר 3 קבצי טקסט בשם sonytv-cursor, sonytv-numbers, sonytv-playcontrols כל אחד עם שמות הכפתורים הרלוונטיים. הכלי יבקש את המכשיר (sonytv), הקטע (סמן) ובאיזה פרוטוקול להשתמש (nec, nec1, rc5, rc6). לאחר מכן היא תבקש ברצף עבור כל לחיצה על כפתור ותכתוב תוצאות לקובץ sonytv-ircodes. ניתן לחזור על חלקים במידת הצורך כדי לבדוק שהלכידות טובות. ניתן לערוך ביטים מקובץ.ircodes לטבלאות BitDevices.

שלב 4: בקרת אתרים ומאקרו

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

ל- get to /ir יש 6 פרמטרים

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

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

ההודעה ל- /irjson מורכבת ממבנה json כמו

{

"auth": "1234", "פקודות": [{"device": "yamahaAV", "parameter": "hdmi4", "wait": "5000", "bits": "0", "repeat": "1"}, {"device": "yamahaAV", "parameter": "השתק", "המתן": "100", "bits": "0", "repeat": "1"}]

}

הרצף יכול להיות בכל אורך והתקנים עשויים להיות הפניות מאקרו.

ניתן להשתמש באותו מבנה להגדרת פקודות מאקרו. כלול רק מאקרו: "macroname", ברמה העליונה למשל לאחר אישור. התוכן האמיתי מאוחסן בקובץ בשם macroname.txt

ניתן למחוק פקודות מאקרו על ידי הגדרתן ללא "פקודות".

פקודות אינטרנט אחרות

  • /recent (מפרט פעילות אחרונה)
  • /בדוק (מציג סטטוס בסיסי)
  • / (טוען טופס אינטרנט לשליחת פקודות באופן ידני)
  • / עריכה (טוען טופס אינטרנט כדי לצפות ברשימת הקבצים ולמחוק/ להעלות קבצים)
  • /ערוך? file = שם הקובץ (הצג תוכן של קובץ ספציפי)
  • /טען מחדש (טוען שמות Buttons וקבצי התקן מחדש. השתמש לאחר שינוי כל אלה)

שלב 5: שליטה קולית של Alexa באמצעות IFTTT

הדרך הפשוטה ביותר להשתמש ב- ir Blaster עם Alexa היא להשתמש ב- IFTTT כשער.

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

הגדר חשבון IFTTT והפעל את ערוץ Maker Webhooks ואת ערוץ Alexa. יהיה עליך להיכנס לאתר אמזון כאשר תעשה זאת כדי לאפשר את גישת IFTT.

צור טריגר IF באמצעות ערוץ Alexa IFTTT, בחר את הפעולה המבוססת על ביטוי והזן את הביטוי שאתה רוצה (למשל הגברת עוצמת הקול).

צור את הפעולה על ידי בחירה בערוץ Maker webhooks. הזן בשדה כתובת האתר משהו כמו

myip: port/irjson? plain = {"auth": "1234", "comm …

פעולה זו תישלח ל- ir blaster שם היא תנסה לבצע את הגברת עוצמת הקול של המאקרו. אפשר להיות מכשיר/כפתורים ספציפיים כאן אם רוצים אבל אני מוצא שעדיף להגדיר ולהשתמש בפקודות מאקרו מכיוון שאז ניתן לשנות בקלות את רצף הפעולות רק על ידי הגדרה מחדש של המאקרו.

יש צורך ביישומון IFTTT נפרד לכל פקודה.

שלב 6: מיומנות קולית של Alexa

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

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

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

לאחר מכן שולחת אלקסה את הביטוי לתוכנית הפועלת בשירות lamda, המפרשת את הביטוי וקוראת לקריאת כתובת URL ל- blaster כדי לבצע אותה.

כללתי את סכמת הכוונה של Alexa ואת פונקציית ה- lambda של הקונסולה שבה אני משתמש ב- git. יהיה עליך לשנות את כתובת האתר כדי להתייחס ל- ip המתאים ולהיות בעל האישור הנכון. כדי לשמור על הפשטות, פונקציות הלמבדה מכנות מאקרו בעל גרסת ביטוי של אותיות קטנות של הביטוי. הוא גם מנסה להסיר את מילת המפתח הטריגר שלפעמים יכולה להיכלל. לְמָשָׁל. blaster VOLUME up יקרא מאקרו בשם volumeup אם מילת ההדק הייתה blaster.

שלב 7: Alexa Activate גלאי

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

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

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

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

מוּמלָץ: