Taula de continguts:

Botó de porta virtual amb Mongoose OS i XinaBox: 10 passos
Botó de porta virtual amb Mongoose OS i XinaBox: 10 passos

Vídeo: Botó de porta virtual amb Mongoose OS i XinaBox: 10 passos

Vídeo: Botó de porta virtual amb Mongoose OS i XinaBox: 10 passos
Vídeo: 🔴 TODAS AS FORMAS de instalação de Software no Linux Mint - VÍDEO COMPLETO 2024, Desembre
Anonim
Botó de porta virtual que utilitza Mongoose OS i XinaBox
Botó de porta virtual que utilitza Mongoose OS i XinaBox

Amb Mongoose i alguns xChips, vam crear un botó de porta virtual. En lloc d’un botó físic per animar el personal, ara ho poden fer ells mateixos.

Pas 1: coses utilitzades en aquest projecte

Components de maquinari

  • XinaBox CW02 x 1 Podeu utilitzar el CW01
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Si no teniu intenció de programar més mòduls, podeu utilitzar l'IP01 per alimentar-lo.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 La "cola" que fa que tot funcioni!

Aplicacions de programari i serveis en línia

Mongoose OS Eina de desenvolupament d'IoT realment fantàstica i senzilla … i gratuïta

Pas 2: història

A la nostra recepció, el nostre personal necessitava estar atent, de manera que vam decidir prendre el nostre propi medicament i crear un botó virtual. Aquest codi us permet enviar un RPC (Remote Procedure Call), que sembla una trucada HTTP normal des de qualsevol navegador. Vam fer servir Mongoose, ja que és molt fàcil i ràpid de treballar i actualitza el codi integrat en OTA (Over The Air), vol dir que podríem instal·lar la nostra tecnologia i actualitzar el firmware encara amb el temps, sense desmuntar-lo per reprogramar-lo.

Pas 3: Preparació

  • Instal·leu Mongoose-OS: directament, seguiu aquests passos molt fàcils per al vostre sistema operatiu aquí:
  • Feu clic a la IP01 i a la CW02 juntes mitjançant un connector XC10. Vegeu la imatge següent:
Imatge
Imatge
  • Introduïu l'IP01 al port USB
  • Assegureu-vos que els commutadors IP01 estiguin a la posició B i DCE.
  • Feu llançar el sistema operatiu Mongoose a CW02 des de la línia d'ordres. Com això:

cd

export MOS_PORT = bin / mos flash esp32

També podeu entrar a la consola i fer el màxim des d’aquí, però aquí ho fem des de la línia d’ordres, de manera que el treball es realitza ràpidament. Per entrar a la consola:

cd

bin / mos

Pas 4: Configuració

Tot i que aquests passos es podrien fer en una declaració llarga, vam decidir dividir-los i, ja que els copieu i enganxeu de qualsevol manera, us ho facilitem:

Estableix els pins I2C a l'estàndard xChips:

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

Connecteu el CW02 al vostre WiFi:

bin / mos wifi

Desconnecteu el WiFi en mode AP i configureu un nom de domini perquè pugueu connectar-vos al CW01 per nom d'amfitrió en lloc de trobar l'adreça IP correcta. Això només funcionarà si:

  • Desconnecteu el WiFi en mode AP com fem a continuació.
  • Feu servir un Mac o instal·leu Bonjour a la vostra màquina 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- nom ":" xinabox_switch "}}}

I finalment heu de reiniciar el CW02 perquè la configuració funcioni

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

Molt ràpidament, hauríeu de fer ping a xinabox_switch.local

Pas 5: Instal·lació

Desconnecteu l'IP01 de l'ordinador i munteu un circuit segons la imatge superior.

Connecteu el PU01 (o si heu decidit quedar-vos amb l’IP01) a una font d’alimentació USB. Connecteu els cables paral·lels del commutador existent (deixeu-ho, per si de cas) a l'OC03 (la polaritat no importa). Vegeu dibuix de Fritzing.

Un cop engegat i per veure que realment esteu parlant amb el vostre xCW02, què passa amb escanejar el BUS, també conegut com el bus I2C:

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

Si tot funciona i el vostre xOC03 està instal·lat correctament, hauríeu de veure el número 56. Aquesta és l'adreça I2C de l'OC03 en decimal (en hexadecimal és 0x38).

Pas 6: Programació

  • Ara obriu Mongoose en mode consola, vegeu més amunt. S'hauria d'obrir amb una finestra on sol·liciteu un número de port, introduïu: ws: //xinabox_switch.local/rpc
  • Es comunicarà amb el CW02 i s’adonarà que la unitat ja està intermitent i està connectada a WiFi, de manera que només donarà 3 marques de verificació. Tanqueu la finestra i actualitzeu la llista de fitxers
  • Copieu i enganxeu el codi següent a init.js i feu clic a Desa + reinicia
  • El vostre circuit està programat.

Pas 7: prova

Ara heu implementat una altra trucada RPC, de manera que des del vostre terminal podeu introduir:

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

… i el brunzidor hauria d'anar durant 2 segons. També podeu fer-ho des de-gairebé qualsevol navegador:

xinabox_switch.local/rpc/Switch

… amb el mateix efecte.

Pas 8: següent pas

Podeu utilitzar qualsevol eina que pugui activar un URL. Ho faig des d’una aplicació d’Apple anomenada Workflow, que em permet fer-ho des del meu telèfon o com a complicació del meu Apple Watch, però hi ha moltes altres opcions. Aquí teniu el meu script de flux de treball, però amb una adreça IP codificada:

Imatge
Imatge

Apple App: flux de treball: aquí amb una adreça IP codificada

Pas 9: esquemes

Buzzer Circuit Instal·leu l'OC03 en paral·lel al polsador existent.

Descarregueu-lo aquí.

Circuit OC03 Instal·leu l'OC03 en paral·lel al polsador existent.

Descarregueu-lo aquí.

Imatge
Imatge

Pas 10: Codi

init.js JavaScript El vostre codi principal i únic per a aquest projecte.

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'); deixi adr = 0x38; let bus = I2C.get (); I2C.writeRegB (bus, adr, 3, 0); I2C.writeRegB (bus, adr, 1, 0); / * apagueu només per estar segur * / let delay = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * en cas que l'OC03 es torni a connectar * / I2C.writeRegB (bus, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Recomanat: