Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
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:
- 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!
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ä.
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;});