Sisällysluettelo:

Virtuaalisen oven painike Mongoose -käyttöjärjestelmän ja XinaBoxin avulla: 10 vaihetta
Virtuaalisen oven painike Mongoose -käyttöjärjestelmän ja XinaBoxin avulla: 10 vaihetta

Video: Virtuaalisen oven painike Mongoose -käyttöjärjestelmän ja XinaBoxin avulla: 10 vaihetta

Video: Virtuaalisen oven painike Mongoose -käyttöjärjestelmän ja XinaBoxin avulla: 10 vaihetta
Video: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Marraskuu
Anonim
Virtual Door -painike Mongoose -käyttöjärjestelmän ja XinaBoxin avulla
Virtual Door -painike Mongoose -käyttöjärjestelmän ja XinaBoxin avulla

Käyttämällä Mongoosea ja joitain xChipejä, teimme virtuaalisen ovipainikkeen. Fyysisen painikkeen sijasta henkilöstön houkuttelemiseksi he voivat nyt tehdä sen itse.

Vaihe 1: Tässä projektissa käytetyt asiat

Laitteiston osat

  • XinaBox CW02 x 1 Voit käyttää CW01: tä sen sijaan
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Voisit käyttää vain IP01 -verkkoa, jos et aio ohjelmoida lisää moduuleja.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 "Liima", joka saa kaiken toimimaan!

Ohjelmistosovellukset ja verkkopalvelut

Mongoose OS Todella mahtava ja helppo IoT -kehitystyökalu … ja ilmainen

Vaihe 2: Tarina

Vastaanotossamme henkilökuntamme tarvitsi kiirettä, joten päätimme ottaa oman lääkkeemme ja luoda virtuaalisen painikkeen. Tämän koodin avulla voit lähettää RPC: n (Remote Procedure Call), joka näyttää normaalilta HTTP -puhelulta miltä tahansa selaimelta. Käytimme Mongoosea, koska sen kanssa työskentely on todella helppoa ja nopeaa ja se on sisäänrakennettu OTA (Over The Air) -koodipäivitys, mikä tarkoittaa, että voisimme asentaa tekniikkamme ja päivittää laiteohjelmiston ajan mittaan purkamatta sitä uudelleenohjelmointia varten.

Vaihe 3: Valmistelu

  • Asenna Mongoose-OS: Suoraan eteenpäin, noudata käyttöjärjestelmäsi helppoja ohjeita täällä:
  • Napsauta IP01 ja CW02 yhdessä XC10 -liittimen avulla. Katso alla oleva kuva:
Kuva
Kuva
  • Liitä IP01 USB -porttiin
  • Varmista, että IP01 -kytkimet ovat asennossa B ja DCE.
  • Flash Mongoose-OS CW02 komentoriviltä. Kuten tämä:

CD

vienti MOS_PORT = bin/mos flash esp32

Voit myös mennä konsoliin ja tehdä suurimman osan sieltä, mutta täällä teemme sen komentoriviltä, joten työ tehdään nopeasti. Pääset konsoliin seuraavasti:

CD

bin/mos

Vaihe 4: Määritykset

Vaikka nämä vaiheet voitaisiin tehdä yhdellä pitkällä lausunnolla, päätimme jakaa ne osiin, ja koska kopioit ja liität ne joka tapauksessa, voit tehdä sen helpoksi:

Aseta I2C -nastat xChips -standardiin:

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

Liitä CW02 WiFi -verkkoon:

bin/mos wifi

Irrota WiFi AP -tilassa ja määritä verkkotunnus, jotta voit muodostaa yhteyden CW01: een isäntänimen perusteella oikean IP -osoitteen löytämisen sijaan. Tämä toimii vain, jos:

  • Irrotat WiFi -yhteyden AP -tilassa kuten alla.
  • Käytä joko Macia tai asenna Bonjour Windows -koneellesi.

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

Ja lopuksi sinun on käynnistettävä CW02 uudelleen, jotta kokoonpano toimisi

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

Hyvin nopeasti tämän jälkeen sinun pitäisi pystyä pingaamaan xinabox_switch.local

Vaihe 5: Asennus

Irrota IP01 tietokoneesta ja kokoa piiri piirustuksen mukaisesti.

Liitä PU01 (tai jos päätit pitää kiinni IP01: stä) USB -virtalähteeseen. Liitä johdot rinnakkain nykyisestä kytkimestäsi (jätä se joka tapauksessa) OC03: een (napaisuudella ei ole väliä). Katso Fritzing -piirustus.

Kun virta on kytketty ja näet, että puhut todella xCW02 -laitteesi kanssa, entä sitten BUS: n, eli I2C -väylän, skannaaminen:

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

Jos kaikki toimii ja xOC03 on asennettu oikein, sinun pitäisi palauttaa numero '56'. Tämä on OC03: n I2C -osoite desimaalilukuna (heksadesimaalina 0x38).

Vaihe 6: Ohjelmointi

  • Avaa nyt Mongoose konsolitilassa, katso yllä. Sen pitäisi avautua ikkunassa, jossa se pyytää portin numeroa, kirjoita: ws: //xinabox_switch.local/rpc
  • Se kommunikoi CW02: n kanssa ja huomaa, että laite on jo vilkkunut ja yhdistetty WiFi -verkkoon, joten se antaa vain 3 valintamerkkiä. Sulje ikkuna ja päivitä tiedostoluettelo
  • Kopioi ja liitä alla oleva koodi init.js -tiedostoon ja napsauta tallenna+käynnistä uudelleen
  • Piiri on nyt ohjelmoitu.

Vaihe 7: Testaa

Olet nyt toteuttanut toisen RPC -puhelun, joten päätelaitteeltasi voit kirjoittaa:

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

… Ja summerin pitäisi mennä 2 sekunniksi. Voit myös tehdä sen lähes miltä tahansa selaimelta:

xinabox_switch.local/rpc/Switch

… Samalla vaikutuksella.

Vaihe 8: Seuraava vaihe

Voit käyttää mitä tahansa työkalua, joka voi laukaista URL -osoitteen. Teen sen Applen sovelluksesta nimeltä Workflow, jonka avulla voin tehdä sen puhelimestani tai Apple Watchin komplikaationa, mutta siellä on monia muita vaihtoehtoja. Tässä on työnkulun skriptini, mutta kovakoodatulla IP -osoitteella: Nauti!

Kuva
Kuva

Apple -sovellus: Työnkulku - tässä kovakoodattu IP -osoite

Vaihe 9: Kaaviot

Summeri -piiri Asenna OC03 rinnakkain olemassa olevan painikkeen kanssa.

Lataa se tästä.

OC03 -piiri Asenna OC03 rinnakkain olemassa olevan painikkeen kanssa.

Lataa se tästä.

Kuva
Kuva

Vaihe 10: Koodi

init.js JavaScript Tämän projektin tärkein ja ainoa koodi.

lataa ('api_config.js');

lataa ('api_gpio.js'); lataa ('api_i2c.js'); lataa ('api_net.js'); lataa ('api_sys.js'); lataa ('api_timer.js'); lataa ("api_rpc.js"); anna led = Cfg.get ('pins.led'); anna adr = 0x38; anna väylä = I2C.get (); I2C.writeRegB (väylä, adr, 3, 0); I2C.writeRegB (väylä, adr, 1, 0); / * sammuta vain varmuuden vuoksi */ anna viive = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * jos OC03 yhdistetään uudelleen * / I2C.writeRegB (bus, adr), 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Suositeltava: