Buton ușă virtuală folosind sistemul de operare Mongoose și XinaBox: 10 pași
Buton ușă virtuală folosind sistemul de operare Mongoose și XinaBox: 10 pași
Anonim
Buton de ușă virtuală folosind sistemul de operare Mongoose și XinaBox
Buton de ușă virtuală folosind sistemul de operare Mongoose și XinaBox

Folosind Mongoose și câteva xChips, am creat un buton virtual de ușă. În loc de un buton fizic în care să atragă personalul, acum îl pot face singuri.

Pasul 1: Lucruri utilizate în acest proiect

Componente hardware

  • XinaBox CW02 x 1 Puteți utiliza în schimb CW01
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Puteți utiliza IP01 doar pentru alimentare, dacă nu intenționați să programați mai multe module.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 „Adezivul” care face ca totul să funcționeze!

Aplicații software și servicii online

Sistem de operare Mongoose Instrument de dezvoltare IoT cu adevărat minunat și ușor … și gratuit

Pasul 2: Poveste

La recepția noastră, personalul nostru trebuia să fie convins, așa că am decis să ne luăm propriile medicamente și să creăm un buton virtual. Acest cod vă permite să trimiteți un apel RPC (Remote Procedure Call), care arată ca un apel HTTP normal din orice browser. Am folosit Mongoose, deoarece este foarte ușor și rapid de lucrat, iar actualizarea încorporată a codului OTA (Over The Air) înseamnă că am putea instala tehnologia noastră și, în timp, putem actualiza firmware-ul, fără a-l dezamăgi pentru reprogramare.

Pasul 3: Pregătirea

  • Instalați Mongoose-OS: direct, urmați acești pași foarte simpli pentru sistemul dvs. de operare aici:
  • Faceți clic pe IP01 și CW02 împreună folosind un conector XC10. Vezi imaginea de mai jos:
Imagine
Imagine
  • Introduceți IP01 în portul USB
  • Asigurați-vă că comutatoarele IP01 sunt în poziția B și DCE.
  • Flash Mongoose-OS la CW02 din linia de comandă. Asa:

CD

export MOS_PORT = bin / mos flash esp32

Puteți, de asemenea, să intrați în consolă și să faceți cel mai mult de acolo, dar aici o facem din linia de comandă, astfel încât lucrarea este rapidă. Pentru a intra în consolă:

CD

bin / mos

Pasul 4: Configurare

Deși acești pași ar putea fi realizați într-o singură declarație lungă, am decis să le împărțim și, întrucât le-ați copia și lipi oricum, permiteți-le să fie mai ușor:

Setați pinii I2C la standardul xChips:

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

Conectați-vă CW02 la WiFi:

bin / mos wifi

Deconectați WiFi în modul AP și configurați un nume de domeniu, astfel încât să vă puteți conecta la CW01 după numele gazdei în loc să găsiți adresa IP corectă. Acest lucru va funcționa numai dacă:

  • Deconectați WiFi în modul AP, așa cum facem mai jos.
  • Fie utilizați un Mac, fie instalați Bonjour pe computerul dvs. Windows.

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- nume ":" xinabox_switch "}}}

Și în cele din urmă trebuie să reporniți CW02 pentru ca configurarea să funcționeze

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

Foarte repede după aceasta, ar trebui să puteți face ping xinabox_switch.local

Pasul 5: Instalare

Deconectați IP01 de la computer și montați un circuit conform imaginii de sus.

Conectați PU01 (sau dacă ați decis să rămâneți cu IP01) la o sursă de alimentare USB. Conectați firele paralele de la comutatorul dvs. existent (lăsați asta, pentru orice eventualitate) la OC03 (polaritatea nu contează). Vezi desenul Fritzing.

Odată pornit și pentru a vedea că de fapt vorbiți cu xCW02, ce zici de scanarea BUS-ului, cunoscut și ca autobuzul I2C:

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

Dacă totul funcționează și xOC03 este instalat corect, ar trebui să vedeți un număr „56” returnat. Aceasta este adresa I2C a OC03 în zecimal (în hex este 0x38).

Pasul 6: Programare

  • Acum deschide Mongoose în modul consolă, vezi mai sus. Ar trebui să se deschidă cu o fereastră unde solicită un număr de port, introduceți: ws: //xinabox_switch.local/rpc
  • Va comunica cu CW02 și își va da seama că unitatea este deja intermitentă și conectată la WiFi, deci va da doar 3 bife. Închideți fereastra și reîmprospătați lista de fișiere
  • Copiați și lipiți codul de mai jos în init.js și faceți clic pe salvare + repornire
  • Circuitul dvs. este acum programat.

Pasul 7: Testați

Acum ați implementat un alt apel RPC, astfel încât de la terminalul dvs. puteți introduce:

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

… și buzzer-ul dvs. ar trebui să funcționeze timp de 2 secunde. De asemenea, puteți face acest lucru de la - aproape - orice browser:

xinabox_switch.local/rpc/Switch

… cu același efect.

Pasul 8: Pasul următor

Puteți utiliza orice instrument care poate declanșa o adresă URL. O fac dintr-o aplicație Apple numită Workflow, care îmi permite să o fac de pe telefon sau ca o complicație din Apple Watch, dar există multe alte opțiuni acolo. Iată scriptul meu Workflow, dar cu adresa IP codificată: Bucurați-vă!

Imagine
Imagine

Aplicația Apple: flux de lucru - aici cu adresa IP codificată

Pasul 9: Scheme

Buzzer Circuit Instalați OC03 în paralel cu butonul existent.

Descarcă-l aici.

Circuitul OC03 Instalați OC03 în paralel cu butonul existent.

Descarcă-l aici.

Imagine
Imagine

Pasul 10: Cod

init.js JavaScript Codul dvs. principal și unic pentru acest proiect.

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'); să adr = 0x38; let bus = I2C.get (); I2C.writeRegB (autobuz, adr, 3, 0); I2C.writeRegB (autobuz, adr, 1, 0); / * opriți doar pentru a fi sigur * / let delay = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * în cazul în care OC03 este reconectat * / I2C.writeRegB (bus, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Recomandat: