Përmbajtje:

Butoni i dyerve virtuale duke përdorur sistemin operativ Mongoose dhe XinaBox: 10 hapa
Butoni i dyerve virtuale duke përdorur sistemin operativ Mongoose dhe XinaBox: 10 hapa

Video: Butoni i dyerve virtuale duke përdorur sistemin operativ Mongoose dhe XinaBox: 10 hapa

Video: Butoni i dyerve virtuale duke përdorur sistemin operativ Mongoose dhe XinaBox: 10 hapa
Video: Konfigurimi i qasjes në internet -- sistemi operativ Windows 7 ose Vista 2024, Nëntor
Anonim
Butoni i dyerve virtuale duke përdorur OS Mongoose dhe XinaBox
Butoni i dyerve virtuale duke përdorur OS Mongoose dhe XinaBox

Duke përdorur Mongoose dhe disa xChips, ne bëmë një buton të derës virtuale. Në vend të një butoni fizik për të lëvizur stafin, ata tani mund ta bëjnë vetë.

Hapi 1: Gjërat e përdorura në këtë projekt

Komponentët e harduerit

  • Në vend të kësaj, mund të përdorni CW01
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Ju thjesht mund të përdorni IP01 për energji, nëse nuk keni ndërmend të programoni më shumë module.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "Ngjitësja" që i bën të gjitha të funksionojnë!

Aplikacionet softuerike dhe shërbimet online

Mongoose OS Me të vërtetë një mjet i mrekullueshëm dhe i lehtë i zhvillimit të IoT … dhe falas

Hapi 2: Histori

Në pritjen tonë stafi ynë duhej të ishte i zhurmshëm, kështu që ne vendosëm të merrnim ilaçin tonë dhe të krijonim një buton virtual. Ky kod ju lejon të dërgoni një RPC (Thirrje e Procedurës në Largësi), e cila duket si një telefonatë normale HTTP nga çdo shfletues. Ne përdorëm Mongoose, meqenëse është me të vërtetë e lehtë dhe e shpejtë për të punuar me të dhe është i integruar në kodin OTA (Over The Air), do të thotë që ne mund të instalojmë teknologjinë tonë dhe me kalimin e kohës të përmirësojmë firmware-in, pa e shpërndarë atë për riprogramim.

Hapi 3: Përgatitja

  • Instaloni Mongoose-OS: Drejt përpara, thjesht ndiqni këto hapa shumë të thjeshtë për OS tuaj këtu:
  • Klikoni IP01 dhe CW02 së bashku duke përdorur një lidhës XC10. Shikoni imazhin më poshtë:
Imazhi
Imazhi
  • Futni IP01 në portën tuaj USB
  • Sigurohuni që çelsat IP01 janë në pozicionin B dhe DCE.
  • Ndizni Mongoose-OS në CW02 nga rreshti juaj i komandës. Si kjo:

cd

eksport MOS_PORT = bin/mos flash esp32

Ju gjithashtu mund të hyni në tastierë dhe të bëni shumicën prej andej, por këtu ne e bëjmë atë nga rreshti i komandës, kështu që puna është bërë shpejt. Për të hyrë në tastierë:

cd

bin/mos

Hapi 4: Konfigurimi

Ndërsa këto hapa mund të bëhen në një deklaratë të gjatë, ne vendosëm t'i ndajmë ato, dhe meqenëse ju do t'i kopjoni dhe ngjisni ato në çdo mënyrë, le ta bëjmë më të lehtë:

Vendosni kunjat I2C në standardin xChips:

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

Lidhni CW02 me WiFi tuaj:

bin/mos wifi

Shkëputeni WiFi në modalitetin AP dhe vendosni një emër domaini, në mënyrë që të lidheni me CW01 me emrin e hostit në vend që të gjeni adresën e saktë IP. Kjo do të funksionojë vetëm nëse:

  • Ju shkëputni WiFi në modalitetin AP siç bëjmë më poshtë.
  • Ose përdorni një Mac ose instaloni Bonjour në kompjuterin tuaj Windows.

bin/mos telefononi Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'

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

Dhe së fundi ju duhet të rindizni CW02 në mënyrë që konfigurimi të funksionojë

bin/mos telefononi Config. Save '{"reboot": true}'

Shumë shpejt pas kësaj ju duhet të jeni në gjendje të bëni ping xinabox_switch.local

Hapi 5: Instalimi

Shkëputeni IP01 nga kompjuteri juaj dhe mblidhni një qark sipas imazhit të sipërm.

Lidheni PU01 (ose nëse keni vendosur të qëndroni me IP01) në një burim energjie USB. Lidhni telat paralelisht me çelësin tuaj ekzistues (lëreni atë, për çdo rast) me OC03 (polariteti nuk ka rëndësi). Shihni Vizatimi i ngrirë.

Pasi të aktivizohet dhe të shihni se në të vërtetë po flisni me xCW02 tuaj, po skanimi i BUS -it, i njohur si autobusi I2C:

bin/mos --port ws: //xinabox_switch.local/rpc telefononi I2C. Skanoni

Nëse gjithçka funksionon dhe xOC03 juaj është instaluar si duhet, duhet të shihni që një numër '56' të kthehet. Kjo është adresa I2C e OC03 në numër dhjetor (në magji është 0x38).

Hapi 6: Programimi

  • Tani hapni Mongoose në modalitetin e tastierës, shihni më lart. Duhet të hapet me një Dritare ku kërkon një numër porti, futni: ws: //xinabox_switch.local/rpc
  • Do të komunikojë me CW02 dhe do të kuptojë që njësia tashmë është ndezur dhe e lidhur me WiFi, kështu që do të japë vetëm 3 shenja kontrolli. Mbyllni dritaren dhe rifreskoni listën e skedarëve
  • Kopjoni dhe ngjisni kodin më poshtë në init.js dhe klikoni në ruani+rindizni
  • Qarku juaj tani është programuar.

Hapi 7: Testoni

Tani keni zbatuar një thirrje tjetër RPC kështu që nga terminali juaj mund të futni:

bin/mos --port ws: //xinabox_switch.local/rpc kaloni thirrjen

… Dhe zile juaj duhet të shkojë për 2 sekonda. Ju gjithashtu mund ta bëni atë nga - pothuajse - çdo shfletues:

xinabox_switch.local/rpc/Switch

… Me të njëjtin efekt.

Hapi 8: Hapi tjetër

Ju mund të përdorni çdo mjet që mund të shkarkojë një URL. Unë e bëj atë nga një Aplikacion Apple i quajtur Workflow, që më lejon ta bëj nga telefoni im ose si një ndërlikim nga Apple Watch, por ka shumë mundësi të tjera atje. Këtu është skenari im i Workflow, por me adresë IP të koduar: Kënaquni!

Imazhi
Imazhi

Aplikacioni Apple: Rrjedha e punës - këtu me adresë IP të koduar

Hapi 9: Skemat

Qarku i sinjalizimit Instaloni OC03 paralelisht me butonin ekzistues të shtypjes.

Shkarkojeni këtu.

Qarku OC03 Instaloni OC03 paralelisht me butonin ekzistues.

Shkarkojeni këtu.

Imazhi
Imazhi

Hapi 10: Kodi

init.js JavaScript Kodi juaj kryesor dhe i vetëm për këtë projekt.

ngarkesë ('api_config.js');

ngarkesa ('api_gpio.js'); ngarkesë ('api_i2c.js'); ngarkesa ('api_net.js'); ngarkesë ('api_sys.js'); ngarkesë ('api_timer.js'); ngarkesë ("api_rpc.js"); le led = Cfg.get ('kunjat.led'); le adr = 0x38; le bus = I2C.get (); I2C.writeRegB (autobus, adr, 3, 0); I2C.writeRegB (autobus, adr, 1, 0); / * fikeni vetëm për të qenë të sigurt */ le të vonojë = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Ndërro', funksioni (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * në rast se OC03 rilidhet * / I2C.writeRegB (autobus, adr, 1, 1); Timer.set (vonesë, false, funksion () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); kthehu true;});

Recommended: