Բովանդակություն:

Վիրտուալ դռան կոճակ `օգտագործելով Mongoose OS և XinaBox: 10 քայլ
Վիրտուալ դռան կոճակ `օգտագործելով Mongoose OS և XinaBox: 10 քայլ

Video: Վիրտուալ դռան կոճակ `օգտագործելով Mongoose OS և XinaBox: 10 քայլ

Video: Վիրտուալ դռան կոճակ `օգտագործելով Mongoose OS և XinaBox: 10 քայլ
Video: Летний Ламповый стрим. Отвечаем на вопросы. 2024, Նոյեմբեր
Anonim
Վիրտուալ դռան կոճակ `օգտագործելով Mongoose OS և XinaBox
Վիրտուալ դռան կոճակ `օգտագործելով Mongoose OS և 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 «Սոսինձ», որն ամեն ինչ աշխատում է:

Softwareրագրային ապահովման ծրագրեր և առցանց ծառայություններ

Mongoose OS իսկապես հիանալի և հեշտ IoT զարգացման գործիք … և անվճար:

Քայլ 2: Պատմություն

Մեր ընդունելության ժամանակ մեր անձնակազմը պետք է աշխուժանար, ուստի որոշեցինք վերցնել մեր սեփական դեղամիջոցը և ստեղծել վիրտուալ կոճակ: Այս ծածկագիրը թույլ է տալիս Ձեզ ուղարկել RPC (Հեռակա ընթացակարգի զանգ), որը սովորական HTTP զանգի տեսք ունի ցանկացած դիտարկիչից: Մենք օգտագործում էինք Mongoose- ը, քանի որ դրա հետ աշխատելը իսկապես հեշտ և արագ է, և դրա ներկառուցված ծածկագիրը OTA (Over The Air) թարմացումն է, ինչը նշանակում է, որ մենք կարող ենք տեղադրել մեր տեխնոլոգիան և ժամանակի ընթացքում կատարելագործել որոնվածը ՝ առանց այն ծրագրավորման համար ապամոնտաժելու:

Քայլ 3: Նախապատրաստում

  • Տեղադրեք Mongoose-OS: Ուղիղ առաջ, պարզապես հետևեք ձեր OS- ի այս շատ հեշտ քայլերին այստեղ ՝
  • Կտտացրեք IP01- ին և CW02- ին ՝ օգտագործելով XC10 միակցիչ: Տե՛ս ստորև բերված պատկերը.
Պատկեր
Պատկեր
  • Տեղադրեք IP01- ը ձեր USB պորտի մեջ
  • Համոզվեք, որ IP01 անջատիչները գտնվում են B և DCE դիրքերում:
  • Ձեր հրամանի տողից միացրեք Mongoose-OS- ը 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- անունը ":" xinabox_switch "}}}

Եվ վերջապես, դուք պետք է վերագործարկեք CW02- ը, որպեսզի կազմաձևը գործի

bin/mos զանգահարեք Config. Save '{"reboot": true}'

Դրանից հետո շատ արագ դուք պետք է կարողանաք գրավել xinabox_switch.local- ը

Քայլ 5: Տեղադրում

Անջատեք IP01- ը ձեր համակարգչից և միացրեք միացում ըստ վերևի պատկերի:

Միացրեք PU01- ը (կամ եթե որոշեցիք մնալ IP01- ով) USB հոսանքի աղբյուրի մեջ: Միացրեք լարերը ձեր առկա անջատիչից զուգահեռ (թողեք դա, ամեն դեպքում) OC03- ին (բևեռականությունը նշանակություն չունի): Տես Fritzing նկարչություն:

Միացնելուց և տեսնելու համար, որ դուք իրականում խոսում եք ձեր xCW02- ի հետ, իսկ ավտոբուսը սկանավորելու մասին, որը հայտնի է որպես I2C ավտոբուս:

bin/mos --port ws: //xinabox_switch.local/rpc զանգահարել I2C. Scan

Եթե ամեն ինչ աշխատում է, և ձեր xOC03- ը ճիշտ տեղադրված է, ապա պետք է տեսնեք, որ «56» թիվը վերադարձվի: Դա OC03- ի I2C հասցեն է ՝ տասնորդական (վեցանկյունում ՝ 0x38):

Քայլ 6: mingրագրավորում

  • Այժմ բացեք մանգուսը մխիթարել ռեժիմում, տես վերևում: Այն պետք է բացվի պատուհանով, որտեղ նա պահանջում է նավահանգստի համար, մուտքագրեք ՝ ws: //xinabox_switch.local/rpc
  • Այն կշփվի CW02- ի հետ և կհասկանա, որ միավորն արդեն բռնկվել է և միացված է WiFi- ին, ուստի այն պարզապես կտա 3 ստուգման նշան: Փակեք պատուհանը և թարմացրեք ֆայլերի ցանկը
  • Պատճենեք և տեղադրեք ստորև նշված կոդը init.js- ում և կտտացրեք պահպանել+վերագործարկել
  • Ձեր միացումն այժմ ծրագրավորված է:

Քայլ 7: Փորձարկում

Դուք այժմ իրականացրել եք մեկ այլ RPC զանգ, այնպես որ ձեր տերմինալից կարող եք մուտքագրել.

bin/mos --port ws: //xinabox_switch.local/rpc զանգ Switch

… Եվ ձեր ազդանշանը պետք է տևի 2 վայրկյան: Կարող եք նաև դա անել գրեթե ցանկացած դիտարկիչից.

xinabox_switch.local/rpc/Switch

… Նույն ազդեցությամբ:

Քայլ 8: Հաջորդ քայլը

Դուք կարող եք օգտագործել ցանկացած գործիք, որը կարող է անջատել URL- ը: Ես դա անում եմ Apple Flow- ից, որը կոչվում է Workflow, որը թույլ է տալիս ինձ դա անել իմ հեռախոսից կամ որպես բարդություն իմ Apple Watch- ից, բայց այնտեղ շատ այլ տարբերակներ կան: Ահա իմ Workflow սցենարը, բայց կոդավորված IP հասցեով. Վայելեք:

Պատկեր
Պատկեր

Apple App: Workflow - այստեղ կոդավորված IP հասցեով

Քայլ 9: Սխեմաներ

Buzzer Circuit Տեղադրեք OC03- ը զուգահեռ առկա կոճակին:

Ներբեռնեք այստեղ:

OC03 միացում Տեղադրեք OC03- ը `առկա կոճակին զուգահեռ:

Ներբեռնեք այստեղ:

Պատկեր
Պատկեր

Քայլ 10: Կոդ

init.js JavaScript Այս ծրագրի ձեր հիմնական և միակ կոդը:

բեռ ('api_config.js');

բեռ ('api_gpio.js'); բեռ ('api_i2c.js'); բեռ ('api_net.js'); բեռ ('api_sys.js'); բեռ ('api_timer.js'); բեռ («api_rpc.js»); թող 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 («Փոխարկիչ», գործառույթ (args) {GPIO.toggle (led); I2C.writeRegB (ավտոբուս, adr, 3, 0); / * այն դեպքում, երբ OC03- ը նորից միանա * / I2C.writeRegB (ավտոբուս, adr, 1, 1); Timer.set (ուշացում, կեղծ, գործառույթ () {GPIO.toggle (led); I2C.writeRegB (ավտոբուս, adr, 1, 0);}, null); վերադարձնել ճշմարիտ;});

Խորհուրդ ենք տալիս: