Satura rādītājs:

Virtuālo durvju poga, izmantojot Mongoose OS un XinaBox: 10 soļi
Virtuālo durvju poga, izmantojot Mongoose OS un XinaBox: 10 soļi

Video: Virtuālo durvju poga, izmantojot Mongoose OS un XinaBox: 10 soļi

Video: Virtuālo durvju poga, izmantojot Mongoose OS un XinaBox: 10 soļi
Video: Часть 8 - Аудиокнига «Тэсс из рода д'Эрбервиллей» Томаса Харди (главы 51–59) 2024, Novembris
Anonim
Virtuālo durvju poga, izmantojot Mongoose OS un XinaBox
Virtuālo durvju poga, izmantojot Mongoose OS un XinaBox

Izmantojot Mongoose un dažus xChips, mēs izveidojām virtuālu durvju pogu. Tā vietā, lai ievilktu darbiniekus fiziskas pogas vietā, tagad viņi to var izdarīt paši.

1. darbība. Šajā projektā izmantotās lietas

Aparatūras komponenti

  • XinaBox CW02 x 1 Tā vietā varat izmantot CW01
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Ja jūs neplānojat programmēt vairāk moduļu, strāvai varat izmantot IP01.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "Līme", kas liek tam darboties!

Programmatūras lietotnes un tiešsaistes pakalpojumi

Mongoose OS Patiešām lielisks un vienkāršs IoT izstrādes rīks … un bez maksas

2. darbība: stāsts

Mūsu reģistratūrā mūsu darbiniekus vajadzēja ievilkt, tāpēc mēs nolēmām lietot savas zāles un izveidot virtuālu pogu. Šis kods ļauj nosūtīt RPC (attālās procedūras zvanu), kas izskatās kā parasts HTTP zvans no jebkuras pārlūkprogrammas. Mēs izmantojām Mongoose, jo ar to ir ļoti viegli un ātri strādāt, un tajā ir iebūvēts OTA (Over The Air) koda atjauninājums, tas nozīmē, ka mēs varētu instalēt savu tehnoloģiju un vēl laika gaitā atjaunināt programmaparatūru, neizjaucot to pārprogrammēšanai.

3. solis: Sagatavošana

  • Instalējiet Mongoose-OS: taisni uz priekšu, vienkārši izpildiet šīs ļoti vienkāršās darbības savai operētājsistēmai šeit:
  • Noklikšķiniet uz IP01 un CW02 kopā, izmantojot XC10 savienotāju. Skatiet attēlu zemāk:
Attēls
Attēls
  • Ievietojiet IP01 USB portā
  • Pārliecinieties, vai IP01 slēdži ir B un DCE pozīcijā.
  • Flash no Mongoose-OS uz CW02 no savas komandrindas. Kā šis:

cd

eksportēt MOS_PORT = bin/mos flash esp32

Jūs varētu arī vienkārši ieiet konsolē un darīt lielāko daļu no turienes, bet šeit mēs to darām no komandrindas, tāpēc darbs tiek ātri paveikts. Lai ieietu konsolē:

cd

tvertne/mos

4. darbība: konfigurēšana

Lai gan šīs darbības varēja veikt vienā garā paziņojumā, mēs nolēmām tās sadalīt, un, tā kā jūs tās jebkurā gadījumā kopētu un ielīmētu, ļaujiet to izdarīt vienkārši:

Iestatiet I2C tapas xChips standartam:

bin/mos konfigurācijas komplekts i2c.scl_gpio = 14 i2c.sda_gpio = 2

Pievienojiet CW02 savam WiFi:

bin/mos wifi

Atvienojiet WiFi AP režīmā un iestatiet domēna nosaukumu, lai jūs varētu izveidot savienojumu ar CW01 pēc saimniekdatora nosaukuma, nevis atrast pareizo IP adresi. Tas darbosies tikai tad, ja:

  • Jūs atvienojat WiFi AP režīmā, kā mēs to darām tālāk.
  • Vai nu izmantojiet Mac, vai instalējiet Bonjour savā Windows datorā.

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 "}}}

Visbeidzot, jums ir jāpārstartē CW02, lai konfigurācija darbotos

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

Ļoti ātri pēc tam jums vajadzētu būt iespējai pingēt xinabox_switch.local

5. darbība: instalēšana

Atvienojiet IP01 no datora un salieciet ķēdi atbilstoši augšējam attēlam.

Pievienojiet PU01 (vai, ja esat nolēmis palikt pie IP01) USB barošanas avotā. Pievienojiet vadus paralēli esošajam slēdzim (atstājiet to, tikai gadījumā) OC03 (polaritātei nav nozīmes). Skatiet Fritzing zīmējumu.

Kad esat ieslēgts un redzat, ka jūs faktiski runājat ar savu xCW02, kā būtu ar BUS, jeb I2C kopnes, skenēšanu:

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

Ja tas viss darbojas un jūsu xOC03 ir pareizi instalēts, jums vajadzētu redzēt skaitli “56”. Tā ir OC03 I2C adrese decimāldaļās (hexā tā ir 0x38).

6. darbība: programmēšana

  • Tagad atveriet Mongoose konsoles režīmā, skatiet iepriekš. Tam vajadzētu atvērt ar logu, kurā tiek prasīts porta numurs, ievadiet: ws: //xinabox_switch.local/rpc
  • Tas sazināsies ar CW02 un sapratīs, ka iekārta jau ir mirgojoša un savienota ar WiFi, tāpēc tā vienkārši piešķirs 3 atzīmes. Aizveriet logu un atsvaidziniet failu sarakstu
  • Nokopējiet un ielīmējiet zemāk esošo kodu mapē init.js un noklikšķiniet uz Saglabāt+pārstartēt
  • Jūsu ķēde tagad ir ieprogrammēta.

7. solis: pārbaudiet

Tagad esat ieviesis vēl vienu RPC zvanu, lai no sava termināļa varētu ievadīt:

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

… Un skaņas signālam jāieslēdzas 2 sekundes. To var izdarīt arī no gandrīz jebkuras pārlūkprogrammas:

xinabox_switch.local/rpc/Switch

… Ar tādu pašu efektu.

8. darbība. Nākamais solis

Varat izmantot jebkuru rīku, kas var aktivizēt URL. Es to daru no Apple lietotnes ar nosaukumu Workflow, kas ļauj to darīt no sava tālruņa vai kā Apple Watch komplikācija, taču ir daudz citu iespēju. Šeit ir mans darbplūsmas skripts, bet ar kodētu IP adresi: Izbaudiet!

Attēls
Attēls

Apple lietotne: darbplūsma - šeit ar kodētu IP adresi

9. darbība. Shēmas

Signāla ķēde Instalējiet OC03 paralēli esošajai spiedpogai.

Lejupielādējiet to šeit.

OC03 ķēde Uzstādiet OC03 paralēli esošajai spiedpogai.

Lejupielādējiet to šeit.

Attēls
Attēls

10. darbība: kods

init.js JavaScript Jūsu galvenais un vienīgais šī projekta kods.

ielādēt ('api_config.js');

ielādēt ('api_gpio.js'); ielādēt ('api_i2c.js'); ielādēt ('api_net.js'); ielādēt ('api_sys.js'); ielādēt ('api_timer.js'); ielādēt ("api_rpc.js"); let led = Cfg.get ('pins.led'); lai adr = 0x38; ļaujiet kopnei = I2C.get (); I2C.writeRegB (kopne, adr, 3, 0); I2C.writeRegB (kopne, adr, 1, 0); / * izslēdziet, lai pārliecinātos */ let delay = 2000; GPIO.set_mode (LED, GPIO. MODE_OUTPUT); RPC.addHandler ('Pārslēgt', funkcija (args) {GPIO.toggle (led); I2C.writeRegB (kopne, adr, 3, 0); / * gadījumā, ja OC03 atkal tiks pievienots * / I2C.writeRegB (kopne, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Ieteicams: