Mundarija:

Mongoose OS va XinaBox yordamida virtual eshik tugmasi: 10 qadam
Mongoose OS va XinaBox yordamida virtual eshik tugmasi: 10 qadam

Video: Mongoose OS va XinaBox yordamida virtual eshik tugmasi: 10 qadam

Video: Mongoose OS va XinaBox yordamida virtual eshik tugmasi: 10 qadam
Video: ☒XinaBox: modular electronics for developing, making products and learning 2024, Noyabr
Anonim
Mongoose OS va XinaBox yordamida virtual eshik tugmasi
Mongoose OS va XinaBox yordamida virtual eshik tugmasi

Mongoose va ba'zi xChips -dan foydalanib, biz virtual eshik tugmachasini yasadik. Xodimlarni shovqin -suron qilish uchun jismoniy tugma o'rniga, ular buni o'zlari qilishlari mumkin.

1 -qadam: Ushbu loyihada ishlatilgan narsalar

Uskuna komponentlari

  • XinaBox CW02 x 1 Buning o'rniga CW01 dan foydalanishingiz mumkin
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Agar siz boshqa modullarni dasturlash niyatida bo'lmasangiz, faqat quvvat uchun IP01 dan foydalanishingiz mumkin.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 Hammasini ishga soladigan "elim"!

Dasturiy ta'minot va onlayn xizmatlar

Mongoose OS haqiqatan ham ajoyib va oson IoT ishlab chiqish vositasi … va bepul

2 -qadam: hikoya

Bizning qabulxonamizda xodimlar shovqin -suron qilishlari kerak edi, shuning uchun biz o'z dori -darmonlarimizni qabul qilib, virtual tugma yaratishga qaror qildik, bu kod sizga har qanday brauzerdan oddiy HTTP qo'ng'irog'iga o'xshash RPC (masofali protsedura qo'ng'irog'i) yuborish imkonini beradi. Biz Mongoose-dan foydalandik, chunki u bilan ishlash juda oson va tez va u OTA (Havo orqali) kodini yangilaydi, demakki, biz o'z texnologiyamizni o'rnatamiz va vaqt o'tishi bilan dasturiy ta'minotni qayta dasturlash uchun ajratmasdan yangilay olamiz.

3 -qadam: Tayyorgarlik

  • Mongoose-OS-ni o'rnating: To'g'ridan-to'g'ri, bu erda OS uchun juda oddiy qadamlarni bajaring:
  • XC10 ulagichi yordamida IP01 va CW02 ni bosing. Quyidagi rasmga qarang:
Rasm
Rasm
  • IP01 -ni USB portiga joylashtiring
  • IP01 kalitlari B va DCE holatida ekanligiga ishonch hosil qiling.
  • Mongoose-OS-ni buyruq satridan CW02-ga o'chiring. Shunga o'xshash:

CD

eksport MOS_PORT = bin/mos flesh esp32

Siz ham konsolga kirishingiz va ko'p narsani u erdan qilishingiz mumkin, lekin bu erda biz buni buyruq satridan qilamiz, shuning uchun ish tezda bajariladi. Konsolga kirish uchun:

CD

bin/mos

4 -qadam: Konfiguratsiya

Bu qadamlar bitta uzun bayonotda bajarilishi mumkin bo'lsa -da, biz ularni ajratishga qaror qildik va siz ularni nusxa ko'chirishingiz va joylashtirishingiz mumkin bo'lgani uchun, buni osonlashtiraylik:

I2C pinlarini xChips standartiga o'rnating:

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

CW02 -ni Wi -Fi -ga ulang:

bin/mos Wi -Fi

Wi -Fi -ni AP rejimida uzing va domen nomini o'rnating, shunda siz to'g'ri IP -manzilni topish o'rniga CW01 -ga xost nomi bilan ulanishingiz mumkin. Bu faqat quyidagi hollarda ishlaydi:

  • Siz Wi -Fi -ni AP rejimida, biz quyida ko'rsatganimizdek, uzib qo'yasiz.
  • Yoki Mac -dan foydalaning yoki Windows mashinangizga Bonjour -ni o'rnating.

bin/mos qo'ng'iroq Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}' ni o'rnating.

bin/mos qo'ng'iroq Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos qo'ng'iroq Config. Set '{"config": {"dns_sd": {"host- ism ":" xinabox_switch "}}}

Va nihoyat, konfiguratsiya ishlashi uchun CW02 -ni qayta ishga tushirishingiz kerak

bin/mos qo'ng'iroq Config. Save '{"reboot": true}'

Shundan so'ng, siz xinabox_switch.local -ga qo'ng'iroq qilishingiz kerak

5 -qadam: O'rnatish

IP01 -ni kompyuterdan uzing va yuqori rasmdagi sxemani yig'ing.

PU01 -ni (yoki siz IP01 -ga tayanishga qaror qilgan bo'lsangiz) USB quvvat manbaiga ulang. Simlarni mavjud kalitdan parallel ravishda ulang (faqat shunday holatda qoldiring) OC03 ga (qutblanish muhim emas). Fritzing rasmini ko'ring.

Ishga tushgandan so'ng va siz xCW02 bilan gaplashayotganingizni ko'rish uchun, avtobusni, ya'ni I2C avtobusini skanerlash haqida nima deyish mumkin:

bin/mos -port ws: //xinabox_switch.local/rpc qo'ng'irog'i I2C. Scan

Agar hammasi ishlayotgan bo'lsa va sizning xOC03 to'g'ri o'rnatilgan bo'lsa, '56' raqami qaytarilishini ko'rishingiz kerak. Bu OC03 ning o'nlik kasrdagi I2C manzili (oltilikda u 0x38).

6 -qadam: dasturlash

  • Endi Mongoose -ni konsol rejimida oching, yuqoriga qarang. U oyna bilan ochilishi kerak, u erda port raqami so'raladi, kiriting: ws: //xinabox_switch.local/rpc
  • U CW02 bilan aloqa o'rnatadi va qurilma allaqachon yonib ketganini va Wi -Fi tarmog'iga ulanganligini tushunadi, shuning uchun u faqat 3 ta tasdiq belgisini beradi. Oynani yoping va fayllar ro'yxatini yangilang
  • Quyidagi kodni nusxa ko'chiring va init.js -ga joylashtiring va saqlash+qayta ishga tushirish -ni bosing
  • Sizning davringiz hozir dasturlashtirilgan.

7 -qadam: Sinov

Siz hozir boshqa RPC qo'ng'irog'ini amalga oshirdingiz, shuning uchun terminalingizdan kirishingiz mumkin:

bin/mos -port ws: //xinabox_switch.local/rpc qo'ng'iroqni almashtirish

… Va sizning ovozli signalingiz 2 soniya davom etishi kerak. Siz buni deyarli har qanday brauzerdan qilishingiz mumkin:

xinabox_switch.local/rpc/Switch

… xuddi shunday ta'sir bilan.

8 -qadam: Keyingi qadam

Siz URLni o'chirib tashlaydigan har qanday vositadan foydalanishingiz mumkin. Men buni Workflow deb nomlangan Apple ilovasidan qilaman, bu menga telefonimdan yoki Apple Watch -ning murakkabligi sifatida bajarishga imkon beradi, lekin u erda boshqa variantlar ko'p. Mana mening Workflow skriptim, lekin qattiq kodlangan IP -manzili bilan: rohatlaning!

Rasm
Rasm

Apple App: Ish oqimi - bu erda qattiq kodlangan IP -manzil

9 -qadam: sxemalar

Buzzer davri OC03 ni mavjud tugmachaga parallel ravishda o'rnating.

Bu yerdan yuklab oling.

OC03 sxemasi OC03 ni mavjud tugmachaga parallel ravishda o'rnating.

Bu yerdan yuklab oling.

Rasm
Rasm

10 -qadam: kod

init.js JavaScript Ushbu loyihaning asosiy va yagona kodi.

yuk ('api_config.js');

yuk ('api_gpio.js'); yuk ('api_i2c.js'); yuk ('api_net.js'); yuk ('api_sys.js'); yuk ('api_timer.js'); yuk ("api_rpc.js"); let = Cfg.get ('pins.led'); adr = 0x38 bo'lsin; bus = I2C.get () ga ruxsat bering; I2C.writeRegB (avtobus, adr, 3, 0); I2C.writeRegB (avtobus, adr, 1, 0); / * ishonch hosil qilish uchun o'chiring */ let kechikish = 2000; GPIO.set_mode (LED, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', funktsiyasi (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * agar OC03 qayta ulangan bo'lsa * / I2C.writeRegB (avtobus, adr), 1, 1); Timer.set (kechikish, noto'g'ri, funktsiya () {GPIO.toggle (bosh); I2C.writeRegB (avtobus, adr, 1, 0);}, null); rost qaytarish;});

Tavsiya: