Innholdsfortegnelse:

Knapp for virtuell dør ved hjelp av Mongoose OS og XinaBox: 10 trinn
Knapp for virtuell dør ved hjelp av Mongoose OS og XinaBox: 10 trinn

Video: Knapp for virtuell dør ved hjelp av Mongoose OS og XinaBox: 10 trinn

Video: Knapp for virtuell dør ved hjelp av Mongoose OS og XinaBox: 10 trinn
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Juli
Anonim
Virtuell dørknapp ved hjelp av Mongoose OS og XinaBox
Virtuell dørknapp ved hjelp av Mongoose OS og XinaBox

Ved å bruke Mongoose og noen xChips laget vi en virtuell dørknapp. I stedet for en fysisk knapp for å surre ansatte i, kan de nå gjøre det selv.

Trinn 1: Ting som brukes i dette prosjektet

Maskinvarekomponenter

  • XinaBox CW02 x 1 Du kan bruke CW01 i stedet
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Du kan bare bruke IP01 for strøm, hvis du ikke har tenkt å programmere flere moduler.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "Limet" som får det hele til å fungere!

Programvare -apper og online -tjenester

Mongoose OS Virkelig fantastisk og enkelt IoT -utviklingsverktøy … og gratis

Trinn 2: Historie

I vår resepsjon måtte personalet vårt buzzes inn, så vi bestemte oss for å ta vår egen medisin og lage en virtuell knapp. Denne koden lar deg sende en RPC (Remote Procedure Call), som ser ut som et vanlig HTTP -anrop fra hvilken som helst nettleser. Vi brukte Mongoose, siden det er veldig enkelt og raskt å jobbe med, og det er innebygd OTA (Over The Air) oppdatering av kode, betyr at vi kan installere teknologien vår og fremdeles over tid oppgradere fastvaren, uten å demontere den for omprogrammering.

Trinn 3: Forberedelse

  • Installer Mongoose-OS: Rett frem, bare følg disse enkle trinnene for operativsystemet ditt her:
  • Klikk på IP01 og CW02 sammen med en XC10 -kontakt. Se bildet under:
Bilde
Bilde
  • Sett IP01 inn i USB -porten
  • Kontroller at IP01 -bryterne er i posisjon B og DCE.
  • Flash Mongoose-OS til CW02 fra kommandolinjen. Som dette:

cd

eksport MOS_PORT = bin/mos flash esp32

Du kan også bare gå inn på konsollen og gjøre det meste derfra, men her gjør vi det fra kommandolinjen, så arbeidet blir raskt gjort. Slik går du inn på konsollen:

cd

bin/mos

Trinn 4: Konfigurasjon

Selv om disse trinnene kan utføres i en lang uttalelse, bestemte vi oss for å dele dem opp, og siden du uansett ville kopiere og lime dem inn, kan vi gjøre det enkelt:

Sett I2C -pinnene til xChips -standarden:

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

Koble CW02 til WiFi -enheten din:

bin/mos wifi

Koble fra WiFi i AP -modus og konfigurer et domenenavn, slik at du kan koble deg til CW01 etter vertsnavn i stedet for å finne riktig IP -adresse. Dette fungerer bare hvis:

  • Du kobler fra WiFi i AP -modus som vi gjør nedenfor.
  • Bruk enten en Mac eller installer Bonjour på din Windows -maskin.

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

Og til slutt må du starte CW02 på nytt for at konfigurasjonen skal fungere

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

Veldig raskt etter dette bør du kunne pinge xinabox_switch.local

Trinn 5: Installere

Koble IP01 fra datamaskinen og sett sammen en krets i henhold til toppbildet.

Koble PU01 (eller hvis du bestemte deg for å holde deg til IP01) til en USB -strømkilde. Koble ledninger parallelt fra den eksisterende bryteren (la det være, i tilfelle) til OC03 (polaritet spiller ingen rolle). Se Fritzing -tegning.

Når den er slått på og for å se at du faktisk snakker med xCW02, hva med å skanne BUS, også kjent som I2C -bussen:

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

Hvis alt fungerer og xOC03 er riktig installert, bør du se nummeret '56' returneres. Det er I2C -adressen til OC03 i desimal (i hex er det 0x38).

Trinn 6: Programmering

  • Åpne nå Mongoose i konsollmodus, se ovenfor. Den skal åpne med et vindu der den ber om et portnummer, skriv inn: ws: //xinabox_switch.local/rpc
  • Den vil kommunisere med CW02, og innse at enheten allerede er blinket og koblet til WiFi, så den vil bare gi 3 haker. Lukk vinduet og oppdater fillisten
  • Kopier og lim inn koden nedenfor i init.js, og klikk på lagre+omstart
  • Kretsen din er nå programmert.

Trinn 7: Test

Du har nå implementert et nytt RPC -anrop, så fra terminalen kan du angi:

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

… og summeren din skal gå i 2 sekunder. Du kan også bare gjøre det fra - nesten - hvilken som helst nettleser:

xinabox_switch.local/rpc/Switch

… med samme effekt.

Trinn 8: Neste trinn

Du kan bruke et hvilket som helst verktøy som kan slå av en URL. Jeg gjør det fra en Apple -app som heter Workflow, som lar meg gjøre det fra telefonen eller som en komplikasjon fra Apple Watch, men det er mange andre alternativer der ute. Her er Workflow -skriptet mitt, men med hardkodet IP -adresse: Enjoy!

Bilde
Bilde

Apple App: Workflow - her med hardkodet IP -adresse

Trinn 9: Skjemaer

Summerkrets Installer OC03 parallelt med den eksisterende trykknappen.

Last den ned her.

OC03 -krets Installer OC03 parallelt med den eksisterende trykknappen.

Last den ned her.

Bilde
Bilde

Trinn 10: Kode

init.js JavaScript Din viktigste og eneste kode for dette prosjektet.

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"); la led = Cfg.get ('pins.led'); la adr = 0x38; la buss = I2C.get (); I2C.writeRegB (buss, adr, 3, 0); I2C.writeRegB (buss, adr, 1, 0); / * slå av bare for å være sikker */ la forsinkelse = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', funksjon (args) {GPIO.toggle (led); I2C.writeRegB (buss, adr, 3, 0); / * i tilfelle OC03 blir koblet til igjen * / I2C.writeRegB (buss, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Anbefalt: