Tartalomjegyzék:

Virtuális ajtó gomb a Mongoose OS és a XinaBox használatával: 10 lépés
Virtuális ajtó gomb a Mongoose OS és a XinaBox használatával: 10 lépés

Videó: Virtuális ajtó gomb a Mongoose OS és a XinaBox használatával: 10 lépés

Videó: Virtuális ajtó gomb a Mongoose OS és a XinaBox használatával: 10 lépés
Videó: A virtuális kisautó 2024, November
Anonim
Virtuális ajtó gomb a Mongoose OS és a XinaBox használatával
Virtuális ajtó gomb a Mongoose OS és a XinaBox használatával

A Mongoose és néhány xChip segítségével virtuális ajtó gombot készítettünk. Fizikai gomb helyett, amellyel a személyzetet fel lehet hívni, most már maguk is megtehetik.

1. lépés: A projektben használt dolgok

Hardver alkatrészek

  • XinaBox CW02 x 1 Ehelyett használhatja a CW01 -et
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Csak akkor használja az IP01 -et áramellátásra, ha nem kíván több modult programozni.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 A "ragasztó", amellyel minden működik!

Szoftveralkalmazások és online szolgáltatások

Mongoose OS Tényleg fantasztikus és egyszerű IoT fejlesztő eszköz … és ingyenes

2. lépés: Történet

Fogadásunkon munkatársainkat zümmögni kellett, ezért úgy döntöttünk, hogy saját gyógyszert veszünk, és létrehozunk egy virtuális gombot. Ez a kód lehetővé teszi, hogy RPC -t (távoli eljáráshívást) küldjön, amely úgy néz ki, mint egy normál HTTP -hívás bármely böngészőből. A Mongoose-t használtuk, mivel nagyon könnyű és gyors vele dolgozni, és a beépített OTA (Over The Air) kódfrissítés azt jelenti, hogy telepíthetjük a technológiánkat, és idővel frissíthetjük a firmware-t, anélkül, hogy szétszerelnénk az újraprogramozáshoz.

3. lépés: Előkészítés

  • A Mongoose-OS telepítése: Egyenesen, kövesse ezeket a nagyon egyszerű lépéseket az operációs rendszeréhez itt:
  • Kattintson az IP01 -re és a CW02 -re együtt egy XC10 csatlakozó segítségével. Lásd az alábbi képet:
Kép
Kép
  • Helyezze be az IP01 -et az USB -portba
  • Győződjön meg arról, hogy az IP01 kapcsolók B és DCE állásban vannak.
  • A parancssorból flashítse a Mongoose-OS-t CW02-re. Mint ez:

CD

export MOS_PORT = bin/mos flash esp32

Ön is csak beléphet a konzolba, és onnan teheti a legtöbbet, de itt a parancssorból tesszük, így a munka gyorsan elkészül. Belépés a konzolba:

CD

bin/mos

4. lépés: Konfiguráció

Bár ezeket a lépéseket egy hosszú nyilatkozatban is meg lehetett tenni, úgy döntöttünk, hogy felosztjuk őket, és mivel másolni és beilleszteni szeretné őket, egyszerűbbé teheti:

Állítsa az I2C csapokat az xChips szabványra:

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

Csatlakoztassa a CW02 -t a WiFi -hez:

bin/mos wifi

Válassza le a WiFi -t AP módban, és állítson be tartománynevet, így a megfelelő IP -cím helyett a hostnév alapján tud csatlakozni a CW01 -hez. Ez csak akkor működik, ha:

  • Ön lekapcsolja a WiFi -t AP módban, mint az alábbiakban.
  • Használjon Mac -et, vagy telepítse a Bonjour -t a Windows gépére.

bin/mos call 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 "}}}

És végül újra kell indítani a CW02 -t, hogy a konfiguráció működjön

bin/mos hívja a Config. Save '{"reboot": true}'

Ezt követően nagyon gyorsan képesnek kell lennie a xinabox_switch.local pingelésére

5. lépés: Telepítés

Húzza ki az IP01 -et a számítógépről, és szereljen össze egy áramkört a felső kép szerint.

Csatlakoztassa a PU01 -et (vagy ha úgy döntött, hogy ragaszkodik az IP01 -hez) egy USB -áramforráshoz. Csatlakoztassa a vezetékeket párhuzamosan a meglévő kapcsolóval (hagyja ezt, minden esetre) az OC03 -hoz (a polaritás nem számít). Lásd Fritzing rajz.

Miután bekapcsolta, és látja, hogy valójában az xCW02 -vel beszél, mi a helyzet a busz, azaz az I2C busz beolvasásával:

bin/mos --port ws: //xinabox_switch.local/rpc call I2C. Scan

Ha minden működik, és az xOC03 megfelelően van telepítve, akkor az '56' számot kell megjelenítenie. Ez az OC03 I2C címe decimális formában (hexadecimálisan 0x38).

6. lépés: Programozás

  • Most nyissa meg a Mongoose -t konzol módban, lásd fent. Egy ablakkal kell megnyílnia, ahol portszámot kér, írja be: ws: //xinabox_switch.local/rpc
  • Kommunikálni fog a CW02 -vel, és rájön, hogy az egység már villog és csatlakozik a WiFi -hez, így csak 3 pipa jelenik meg. Zárja be az ablakot, és frissítse a fájllistát
  • Másolja ki és illessze be az alábbi kódot az init.js fájlba, majd kattintson a mentés+újraindítás gombra
  • Az áramkör programozva van.

7. lépés: Teszt

Most végrehajtott egy másik RPC hívást, így a terminálról beírhatja:

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

… És a hangjelző 2 másodpercig szól. Ezt szinte bármilyen böngészőből is elvégezheti:

xinabox_switch.local/rpc/Switch

… Ugyanazzal a hatással.

8. lépés: Következő lépés

Bármilyen eszközt használhat, amely ki tudja kapcsolni az URL -t. A munkafolyamat nevű Apple alkalmazásból teszem, amely lehetővé teszi, hogy a telefonomról vagy az Apple Watch bonyodalmaként tegyem, de sok más lehetőség is létezik. Íme a munkafolyamat szkriptem, de kemény kódolású IP -címmel: Élvezze!

Kép
Kép

Apple App: Munkafolyamat - itt keménykódolt IP -címmel

9. lépés: Vázlatok

Zümmögő áramkör Telepítse az OC03 -at a meglévő nyomógombbal párhuzamosan.

Töltse le itt.

OC03 áramkör Szerelje be az OC03 -at a meglévő nyomógombbal párhuzamosan.

Töltse le itt.

Kép
Kép

10. lépés: Kód

init.js JavaScript A projekt fő és egyetlen kódja.

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'); legyen adr = 0x38; legyen busz = I2C.get (); I2C.writeRegB (busz, adr, 3, 0); I2C.writeRegB (busz, adr, 1, 0); / * kapcsolja ki csak azért, hogy biztos legyen benne */ let delay = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (busz, adr, 3, 0); / * ha az OC03 újra csatlakozik * / I2C.writeRegB (busz, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Ajánlott: