Mundarija:
- 1 -qadam: Ushbu loyihada ishlatilgan narsalar
- 2 -qadam: hikoya
- 3 -qadam: Tayyorgarlik
- 4 -qadam: Konfiguratsiya
- 5 -qadam: O'rnatish
- 6 -qadam: dasturlash
- 7 -qadam: Sinov
- 8 -qadam: Keyingi qadam
- 9 -qadam: sxemalar
- 10 -qadam: kod
Video: Mongoose OS va XinaBox yordamida virtual eshik tugmasi: 10 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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:
- 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!
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.
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:
Maxsus eshik tagligi, eshik qo'ng'irog'i: 6 qadam
Maxsus eshik tagligi eshikni qo'ng'irog'i. Salom! Mening ismim Jastin, men o'rta maktabda kichikman va bu ko'rsatma sizga kimdir eshik to'shagini bosganda qanday qo'ng'iroq qilish kerakligini ko'rsatib beradi va siz xohlagan ohang yoki qo'shiq bo'lishi mumkin! Eshik tagligi eshikni qo'zg'atgani uchun
Amazon Dash tugmasi jim eshik qo'ng'irog'i: 10 qadam (rasmlar bilan)
Amazon Dash tugmachasi jim eshik qo'ng'irog'i: Doimiy ravishda derazaga qarayapsizmi, shunda siz mehmonlarni eshik qo'ng'irog'ini bosishdan oldin ushlab tura olasizmi? Itlar va chaqaloq qachon jiringlasa, aqldan ozishdan charchadingizmi? &Quot; Aqlli " ga boylik sarflashni xohlamang. Yechim? Eshikka jim qo'ng'iroq qilish - bu
IFTTT yordamida simli eshik qo'ng'irog'ini aqlli eshik qo'ng'irog'iga aylantiring: 8 qadam
IFTTT yordamida simli eshik qo'ng'irog'ini aqlli eshik qo'ng'irog'iga aylantiring: WiFi eshik qo'ng'irog'i sizning mavjud simli eshik qo'ng'irog'ingizni aqlli eshik qo'ng'irog'iga aylantiradi. https://www.fireflyelectronix.com/product/wifidoor
Uy yordamchisi yordamida simli eshik qo'ng'irog'ini aqlli eshik qo'ng'irog'iga aylantiring: 6 qadam
Uy yordamchisi yordamida simli eshik qo'ng'irog'ini aqlli eshik qo'ng'irog'iga aylantiring: mavjud simli eshik qo'ng'irog'ini aqlli eshik qo'ng'irog'iga aylantiring. Kimdir sizning qo'ng'irog'ingizga qo'ng'iroq qilganda, fotosurat yoki video ogohlantirishni olish uchun telefoningizga yoki oldingi old kamerangiz bilan bog'laning
Eshik va eshik monitoriga ulangan avtomatik chiroqlar: 5 qadam
Eshik va eshik monitoriga ulangan avtomatik chiroqlar: zulmatda boshqaruv panelini topish juda qiyin bo'lib tuyuladi, lekin bu loyiha bu muammoni hal qilishda haqiqatan ham yordam beradi. Buning echimini bilish uchun quyidagi amallarni bajaring