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

לחצן דלת וירטואלית באמצעות מערכת ההפעלה Mongoose ו- XinaBox: 10 שלבים
לחצן דלת וירטואלית באמצעות מערכת ההפעלה Mongoose ו- XinaBox: 10 שלבים

וִידֵאוֹ: לחצן דלת וירטואלית באמצעות מערכת ההפעלה Mongoose ו- XinaBox: 10 שלבים

וִידֵאוֹ: לחצן דלת וירטואלית באמצעות מערכת ההפעלה Mongoose ו- XinaBox: 10 שלבים
וִידֵאוֹ: כיצד להתקין מערכת הפעלה על מחשב נייד 2024, נוֹבֶמבֶּר
Anonim
לחצן דלת וירטואלית באמצעות מערכת ההפעלה Mongoose ו- XinaBox
לחצן דלת וירטואלית באמצעות מערכת ההפעלה Mongoose ו- XinaBox

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

שלב 1: דברים המשמשים בפרויקט זה

רכיבי חומרה

  • XinaBox CW02 x 1 תוכל להשתמש ב- CW01 במקום זאת
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 אתה יכול פשוט להשתמש ב- IP01 לצורך צריכת חשמל, אם אינך מתכוון לתכנת מודולים נוספים.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 ה"דבק "שגורם להכל לעבוד!

אפליקציות תוכנה ושירותים מקוונים

מערכת הפעלה Mongoose באמת כלי פיתוח IoT מדהים וקל … ובחינם

שלב 2: סיפור

בקבלה שלנו היה צריך לזמזם את הצוות שלנו, אז החלטנו לקחת תרופה משלנו וליצור כפתור וירטואלי. קוד זה מאפשר לך לשלוח RPC (שיחת הליך מרחוק), שנראית כמו שיחת HTTP רגילה מכל דפדפן. השתמשנו ב- Mongoose, מכיוון שזה ממש קל ומהיר לעבודה וזה עדכון קוד OTA (Over The Air) מובנה, משמע שנוכל להתקין את הטכנולוגיה שלנו ועדיין לאורך זמן לשדרג את הקושחה, מבלי לפרק אותה לתכנות מחדש.

שלב 3: הכנה

  • התקן את Mongoose-OS: ישר קדימה, בצע את השלבים הקלים ביותר למערכת ההפעלה שלך כאן:
  • לחץ יחד על ה- IP01 וה- CW02 באמצעות מחבר XC10. ראה תמונה למטה:
תמונה
תמונה
  • הכנס את IP01 ליציאת ה- USB שלך
  • וודא כי מתגי IP01 נמצאים במיקום B ו- DCE.
  • הפוך את מערכת ההפעלה Mongoose ל- CW02 משורת הפקודה שלך. ככה:

CD

ייצוא MOS_PORT = bin/mos flash esp32

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

CD

bin/mos

שלב 4: תצורה

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

הגדר את סיכות I2C לתקן xChips:

bin/mos config-set i2c.scl_gpio = 14 i2c.sda_gpio = 2

חבר את ה- CW02 ל- WiFi שלך:

bin/mos wifi

נתק את WiFi במצב AP והגדר שם תחום, כך שתוכל להתחבר ל- CW01 לפי שם מארח במקום למצוא את כתובת ה- IP הנכונה. זה יעבוד רק אם:

  • אתה מנתק את WiFi במצב AP כפי שאנו עושים להלן.
  • או השתמש ב- Mac או התקן את Bonjour במכשיר Windows שלך.

bin/mos להתקשר Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'

bin/mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos call Config. Set '{"config": {"dns_sd": {"host- name ":" xinabox_switch "}}}

ולבסוף אתה צריך לאתחל את CW02 כדי שהתצורה תפעל

bin/mos קוראים ל- Config. Save '{"reboot": true}'

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

שלב 5: התקנה

נתק את ה- IP01 מהמחשב והרכיב מעגל לפי התמונה העליונה.

חבר את ה- PU01 (או אם החלטת להישאר עם ה- IP01) למקור חשמל USB. חבר חוטים במקביל מהמתג הקיים שלך (השאר זאת, לכל מקרה) ל- OC03 (הקוטביות לא משנה). ראה ציור פריטינג.

לאחר הפעלת החשמל ולראות שאתה בעצם מדבר עם xCW02 שלך, מה לגבי סריקת ה- BUS, הלא הוא אוטובוס I2C:

bin/mos --port ws: //xinabox_switch.local/rpc שיחה I2C. Scan

אם הכל עובד וה- xOC03 שלך מותקן כראוי, אתה אמור לראות את המספר '56' שיוחזר. זוהי כתובת I2C של OC03 בעשרוני (ב- hex היא 0x38).

שלב 6: תכנות

  • כעת פתח את המונגוס במצב קונסולה, ראה לעיל. הוא צריך להיפתח בחלון שבו הוא מבקש מספר יציאה, הזן: ws: //xinabox_switch.local/rpc
  • היא תתקשר עם ה- CW02 ותבין שהיחידה כבר מהבהבת ומחוברת ל- WiFi, כך שהיא רק תעניק 3 סימני ביקורת. סגור את החלון ורענן את רשימת הקבצים
  • העתק והדבק את הקוד למטה לתוך init.js ולחץ על שמור+אתחול מחדש
  • המעגל שלך מתוכנת כעת.

שלב 7: בדוק

יישמת כעת שיחת RPC נוספת, כך שהמסוף שלך יכול להזין:

bin/mos --port ws: //xinabox_switch.local/rpc Switch switch

… והזמזם שלך אמור לעבור 2 שניות. אתה יכול פשוט לעשות זאת כמעט מכל דפדפן:

xinabox_switch.local/rpc/Switch

… עם אותה אפקט.

שלב 8: השלב הבא

אתה יכול להשתמש בכל כלי שיכול לפטר כתובת אתר. אני עושה את זה מאפליקציית אפל בשם Workflow, המאפשרת לי לעשות זאת מהטלפון שלי או כסיבוך מה- Apple Watch שלי, אך ישנן אפשרויות רבות אחרות. להלן סקריפט Workflow שלי, אך עם כתובת IP מקודדת: תהנו!

תמונה
תמונה

אפליקציית Apple: זרימת עבודה - כאן עם כתובת IP מקודדת

שלב 9: תרשימים

מעגל זמזם התקן את OC03 במקביל ללחצן הלחיצה הקיים.

הורד את זה כאן.

מעגל OC03 התקן את OC03 במקביל ללחצן הלחיצה הקיים.

הורד את זה כאן.

תמונה
תמונה

שלב 10: קוד

init.js JavaScript הקוד הראשי והיחיד שלך לפרויקט זה.

load ('api_config.js');

load ('api_gpio.js'); load ('api_i2c.js'); load ('api_net.js'); load ('api_sys.js'); load ('api_timer.js'); load ("api_rpc.js"); let led = Cfg.get ('pins.led'); תן adr = 0x38; תן אוטובוס = I2C.get (); I2C.writeRegB (אוטובוס, adr, 3, 0); I2C.writeRegB (אוטובוס, adr, 1, 0); / * כבה רק כדי להיות בטוח */ תן לעיכוב = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('מתג', פונקציה (ארגז) {GPIO.toggle (led); I2C.writeRegB (אוטובוס, ADR, 3, 0); / * במקרה שה- OC03 יתחבר מחדש * / I2C.writeRegB (אוטובוס, ADR, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

מוּמלָץ: