Turinys:
- 1 žingsnis: šiame projekte naudojami dalykai
- 2 žingsnis: istorija
- 3 žingsnis: Paruošimas
- 4 žingsnis: konfigūravimas
- 5 žingsnis: diegimas
- 6 žingsnis: programavimas
- 7 žingsnis: išbandykite
- 8 žingsnis: Kitas žingsnis
- 9 žingsnis: schemos
- 10 žingsnis: kodas
Video: Virtualių durų mygtukas naudojant „Mongoose OS“ir „XinaBox“: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Naudodami „Mongoose“ir kai kuriuos „xChips“, sukūrėme virtualų durų mygtuką. Vietoj fizinio mygtuko, skirto darbuotojams, jie dabar gali tai padaryti patys.
1 žingsnis: šiame projekte naudojami dalykai
Techninės įrangos komponentai
- XinaBox CW02 x 1 Vietoj to galite naudoti CW01
- „XinaBox“IP01 x 1
- „XinaBox PU01 x 1“Jei neketinate užprogramuoti daugiau modulių, galite tiesiog naudoti maitinimo šaltinį IP01.
- XinaBox OC03 x 1
- XinaBox XC10 x 1 „Klijai“, dėl kurių viskas veikia!
Programinės įrangos programos ir internetinės paslaugos
„Mongoose OS“Tikrai nuostabus ir lengvas daiktų interneto kūrimo įrankis … ir nemokamai
2 žingsnis: istorija
Mūsų priėmime mūsų darbuotojai turėjo būti sujaudinti, todėl nusprendėme paimti savo vaistus ir sukurti virtualų mygtuką. Šis kodas leidžia jums siųsti RPC (nuotolinės procedūros skambutį), kuris atrodo kaip įprastas HTTP skambutis iš bet kurios naršyklės. Mes naudojome „Mongoose“, nes su juo tikrai lengva ir greita dirbti, o jame yra įmontuotas OTA („Over The Air“) kodo atnaujinimas, reiškia, kad galėtume įdiegti savo technologiją ir vis tiek laikui bėgant atnaujinti programinę-aparatinę įrangą, neišardydami jos perprogramuoti.
3 žingsnis: Paruošimas
- Įdiekite „Mongoose-OS“: tiesiai į priekį, tiesiog atlikite šiuos labai paprastus savo OS veiksmus čia:
- Spustelėkite IP01 ir CW02 kartu naudodami XC10 jungtį. Žiūrėkite paveikslėlį žemiau:
- Įdėkite IP01 į USB prievadą
- Įsitikinkite, kad IP01 jungikliai yra B ir DCE padėtyse.
- Iš komandinės eilutės paleiskite „Mongoose-OS“į CW02. Kaip šitas:
cd
eksportuoti MOS_PORT = bin/mos flash esp32
Taip pat galite tiesiog įeiti į konsolę ir atlikti daugumą iš ten, tačiau čia tai darome iš komandinės eilutės, todėl darbas greitai atliekamas. Norėdami įeiti į konsolę:
cd
bin/mos
4 žingsnis: konfigūravimas
Nors šiuos veiksmus galima atlikti vienu ilgu pareiškimu, mes nusprendėme juos padalyti, o kadangi jūs bet kokiu atveju juos nukopijuosite ir įklijuosite, tai palengvins:
Nustatykite „I2C“kaiščius į „xChips“standartą:
bin/mos konfigūracijos rinkinys i2c.scl_gpio = 14 i2c.sda_gpio = 2
Prijunkite CW02 prie „WiFi“:
bin/mos wifi
Atjunkite „WiFi“AP režimu ir nustatykite domeno pavadinimą, kad galėtumėte prisijungti prie CW01 pagal pagrindinio kompiuterio pavadinimą, o ne rasti teisingą IP adresą. Tai veiks tik tuo atveju, jei:
- Jūs atjungiate „WiFi“AP režimu, kaip tai darome žemiau.
- Naudokite „Mac“arba įdiekite „Bonjour“savo „Windows“kompiuteryje.
bin/mos skambinkite konfig. Nustatykite '{"config": {"wifi": {"ap": {"enable": false}}}}"
bin/mos skambinkite Config. Set '{"config": {"dns_sd": {"enable": true}}} "bin/mos skambinti Config. Set' {" config ": {" dns_sd ": {" host- pavadinimas ":" xinabox_switch "}}}
Ir galiausiai turite iš naujo paleisti CW02, kad konfigūracija veiktų
bin/mos skambinkite Config. Save '{"reboot": true}'
Labai greitai po to turėtumėte sugebėti pateikti ping xinabox_switch.local
5 žingsnis: diegimas
Atjunkite IP01 nuo kompiuterio ir surinkite grandinę pagal viršutinį vaizdą.
Prijunkite PU01 (arba jei nusprendėte laikytis IP01) prie USB maitinimo šaltinio. Prijunkite laidus lygiagrečiai nuo esamo jungiklio (palikite tai, tik tuo atveju) prie OC03 (poliškumas nesvarbu). Žr. Fritzing piešinį.
Kai įjungsite maitinimą ir pamatysite, kad iš tikrųjų kalbate su savo „xCW02“, ką daryti, kai nuskaitote autobusą, dar žinomą kaip I2C magistralė:
bin/mos --port ws: //xinabox_switch.local/rpc call I2C. Scan
Jei viskas veikia ir jūsų xOC03 yra tinkamai įdiegtas, turėtumėte pamatyti skaičių „56“. Tai yra OC03 I2C adresas dešimtainiu skaičiumi (šešioliktainis yra 0x38).
6 žingsnis: programavimas
- Dabar atidarykite „Mongoose“konsolės režimu, žr. Jis turėtų būti atidarytas su langu, kuriame jis prašo prievado numerio, įveskite: ws: //xinabox_switch.local/rpc
- Jis bendraus su „CW02“ir supras, kad įrenginys jau mirksi ir prijungtas prie „WiFi“, todėl bus tik 3 žymės. Uždarykite langą ir atnaujinkite failų sąrašą
- Nukopijuokite ir įklijuokite žemiau esantį kodą į init.js, tada spustelėkite išsaugoti+perkrauti
- Jūsų grandinė dabar užprogramuota.
7 žingsnis: išbandykite
Dabar įgyvendinote kitą RPC skambutį, todėl iš savo terminalo galite įvesti:
bin/mos --port ws: //xinabox_switch.local/rpc call Switch
… ir jūsų garsinis signalas turėtų veikti 2 sekundes. Taip pat galite tai padaryti beveik iš bet kurios naršyklės:
xinabox_switch.local/rpc/Switch
… Su tuo pačiu poveikiu.
8 žingsnis: Kitas žingsnis
Galite naudoti bet kurį įrankį, kuris gali suaktyvinti URL. Aš tai darau iš „Apple“programos, vadinamos „Workflow“, kuri leidžia tai padaryti iš savo telefono arba kaip „Apple Watch“komplikacija, tačiau yra daug kitų variantų. Čia yra mano darbo eigos scenarijus, tačiau su koduotu IP adresu: Mėgaukitės!
„Apple“programa: darbo eiga - čia su koduotu IP adresu
9 žingsnis: schemos
Signalinė grandinė Įdiekite OC03 lygiagrečiai su esamu mygtuku.
Atsisiųskite jį čia.
OC03 grandinė Įdiekite OC03 lygiagrečiai su esamu mygtuku.
Atsisiųskite jį čia.
10 žingsnis: kodas
init.js JavaScript Jūsų pagrindinis ir vienintelis šio projekto kodas.
apkrova ('api_config.js');
apkrova ('api_gpio.js'); apkrova ('api_i2c.js'); apkrova ('api_net.js'); apkrova ('api_sys.js'); įkelti ('api_timer.js'); apkrova ("api_rpc.js"); tegul led = Cfg.get ('pins.led'); tegul adr = 0x38; tegul autobusas = I2C.get (); I2C.writeRegB (magistralė, adr, 3, 0); I2C.writeRegB (magistralė, adr, 1, 0); / * išjunkite, kad būtumėte tikri */ let delay = 2000; GPIO.set_mode (LED, GPIO. MODE_OUTPUT); RPC.addHandler („Switch“, funkcija (args) {GPIO.toggle (led); I2C.writeRegB (magistralė, adr, 3, 0); / * tuo atveju, jei OC03 vėl bus prijungtas * / I2C.writeRegB (magistralė, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});
Rekomenduojamas:
Individualizuotas durų kilimėlis, įjungtas durų varpas: 6 žingsniai
Individualizuotas durų kilimėlis, įjungtas durų varpas: Sveiki! Mano vardas Justinas, aš esu jaunesnysis vidurinėje mokykloje, ir ši instrukcija parodys, kaip padaryti skambutį, kuris suveikia, kai kas nors užlipa ant jūsų durų kilimėlio, ir gali būti bet kokia melodija ar daina! Kadangi durų kilimėlis paleidžia duris
„Amazon Dash“mygtukas tylus durų skambutis: 10 žingsnių (su nuotraukomis)
„Amazon“brūkšnio mygtukas tylus durų skambutis: Nuolat žiūri pro langą, kad galėtum sulaikyti lankytojus prieš jiems skambinant? Pavargote nuo šunų ir kūdikio išprotėjimo, kai tik suskamba? Nenorite išleisti pinigų „protingam“; sprendimas? Tylus durų skambutis yra toks pat
Pasukite laidinį durų skambutį į išmanųjį durų skambutį naudodami IFTTT: 8 žingsniai
Paverskite laidinį durų skambutį į išmanųjį durų skambutį naudodami IFTTT: „WiFi“durų skambutis paverčia esamą laidinį skambutį į išmanųjį durų skambutį. https://www.fireflyelectronix.com/product/wifidoor
Paverskite laidinį durų skambutį į išmanųjį durų skambutį su namų asistentu: 6 veiksmai
Paverskite laidinį durų skambutį į išmanųjį durų skambutį su namų asistentu: paverskite esamą laidinį durų skambutį išmaniuoju durų skambučiu. Gaukite pranešimą į savo telefoną arba susiekite su esama priekinių durų kamera, kad gautumėte įspėjimą apie nuotrauką ar vaizdo įrašą bet kuriuo metu, kai kas nors paskambins į jūsų durų skambutį. Sužinokite daugiau šiuo adresu: fireflyelectronix.com/pro
Perdirbtas skaitmeninis nuotraukų rėmelis su virtualiu palaikymu: 7 žingsniai (su nuotraukomis)
Perdirbtas skaitmeninis nuotraukų rėmelis su virtualiu padėjėju: Sveiki visi! Ši pamoka gimė iš perpjauto nešiojamojo kompiuterio, nupirkto iš draugo. Pirmasis tokio projekto bandymas buvo mano „Lego“skaitmeninis nuotraukų rėmelis, tačiau, būdamas entuziastingas „Siri“ir „Google“dabar vartotojas, nusprendžiau jį perkelti į naują