Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Koristeći Mongoose i neke xChips, napravili smo virtualni gumb za vrata. Umjesto fizičkog gumba za uključivanje osoblja, sada to mogu učiniti sami.
Korak 1: Stvari korištene u ovom projektu
Hardverske komponente
- XinaBox CW02 x 1 Umjesto toga možete koristiti CW01
- XinaBox IP01 x 1
- XinaBox PU01 x 1 Možete koristiti samo IP01 za napajanje, ako ne namjeravate programirati više modula.
- XinaBox OC03 x 1
- XinaBox XC10 x 1 "Ljepilo" zbog kojeg sve funkcionira!
Softverske aplikacije i mrežne usluge
Mongoose OS Zaista sjajan i jednostavan IoT razvojni alat … i besplatno
Korak 2: Priča
Na našoj recepciji je trebalo biti zaposleno naše osoblje, pa smo odlučili uzeti vlastiti lijek i stvoriti virtualni gumb. Ovaj kôd omogućuje vam slanje RPC -a (Remote Procedure Call), koji izgleda kao uobičajeni HTTP poziv iz bilo kojeg preglednika. Koristili smo Mongoose, jer je s njim vrlo jednostavno i brzo raditi, a ugrađeno je OTA (Over The Air) ažuriranje koda, što znači da bismo mogli instalirati našu tehnologiju i s vremenom ipak nadograditi firmver, bez da ga rastavljamo radi ponovnog programiranja.
Korak 3: Priprema
- Instalirajte Mongoose-OS: Odmah naprijed, samo slijedite ove vrlo jednostavne korake za vaš OS ovdje:
- Pritisnite IP01 i CW02 zajedno pomoću XC10 konektora. Pogledajte sliku ispod:
- Umetnite IP01 u USB priključak
- Provjerite jesu li prekidači IP01 u položaju B i DCE.
- Prebacite Mongoose-OS na CW02 iz naredbenog retka. Kao ovo:
CD
izvoz MOS_PORT = bin/mos flash esp32
Također možete samo ući u konzolu i odatle učiniti većinu, ali ovdje to radimo iz naredbenog retka, tako da je posao brzo obavljen. Za ulazak u konzolu:
CD
kanta/mos
Korak 4: Konfiguracija
Iako su se ti koraci mogli izvesti u jednoj dugoj izjavi, odlučili smo ih podijeliti, a budući da biste ih u svakom slučaju kopirali i zalijepili, olakšajte:
Postavite I2C pinove na standard xChips:
bin/mos config-set i2c.scl_gpio = 14 i2c.sda_gpio = 2
Priključite svoj CW02 na WiFi:
bin/mos wifi
Odspojite WiFi u načinu AP -a i postavite naziv domene, tako da se možete povezati s CW01 po imenu hosta umjesto da pronađete ispravnu IP adresu. Ovo će funkcionirati samo ako:
- Isključujete WiFi u načinu rada AP kao što dolje radimo.
- Ili upotrijebite Mac ili instalirajte Bonjour na Windows računalo.
bin/mos poziv Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'
bin/mos poziva Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos poziva Config. Set '{"config": {"dns_sd": {"host- name ":" xinabox_switch "}}}
I na kraju morate ponovno pokrenuti CW02 kako bi konfiguracija radila
bin/mos poziv Config. Save '{"reboot": true}'
Vrlo brzo nakon ovoga trebali biste moći pingati xinabox_switch.local
Korak 5: Instaliranje
Isključite IP01 iz računala i sastavite krug prema gornjoj slici.
Priključite PU01 (ili ako ste se odlučili držati IP01) u USB izvor napajanja. Spojite žice paralelno s postojećim prekidačem (ostavite to, za svaki slučaj) na OC03 (polaritet nije bitan). Pogledajte crtež Fritzing.
Nakon uključivanja i da vidite da zapravo razgovarate sa svojim xCW02, što je sa skeniranjem BUS -a, poznatim i kao I2C sabirnica:
bin/mos --port ws: //xinabox_switch.local/rpc poziv I2C. Scan
Ako sve radi i vaš xOC03 je ispravno instaliran, trebali biste vidjeti da se vraća broj '56'. To je I2C adresa OC03 u decimalnom obliku (u heksadecimalnom iznosu 0x38).
Korak 6: Programiranje
- Sada otvorite Mongoose u načinu konzole, pogledajte gore. Trebao bi se otvoriti s prozorom u kojem se traži broj porta, unesite: ws: //xinabox_switch.local/rpc
- On će komunicirati s CW02 i shvatiti da je jedinica već bljeskala i spojena na WiFi, pa će samo dati 3 kvačice. Zatvorite prozor i osvježite popis datoteka
- Kopirajte i zalijepite donji kôd u init.js, a zatim kliknite spremi+ponovno podizanje sustava
- Vaš krug je sada programiran.
Korak 7: Testirajte
Sada ste implementirali još jedan RPC poziv pa sa svog terminala možete unijeti:
bin/mos --port ws: //xinabox_switch.local/rpc Prekidač poziva
… i vaš bi se zvučni signal trebao oglasiti 2 sekunde. To možete učiniti i iz - gotovo - bilo kojeg preglednika:
xinabox_switch.local/rpc/Switch
… s istim učinkom.
Korak 8: Sljedeći korak
Možete koristiti bilo koji alat koji može aktivirati URL. Radim to iz Appleove aplikacije koja se zove Workflow, što mi omogućuje da to učinim sa svog telefona ili kao komplikaciju s Apple Watch -a, ali postoje mnoge druge mogućnosti. Evo moje skripte tijeka rada, ali s IP adresom koja je kodirana: Uživajte!
Apple App: Tijek rada - ovdje s tvrdo kodiranom IP adresom
Korak 9: Sheme
Krug zujalice Instalirajte OC03 paralelno s postojećim pritiskom na gumb.
Preuzmite ga ovdje.
Krug OC03 Ugradite OC03 paralelno s postojećim gumbom.
Preuzmite ga ovdje.
Korak 10: Kodirajte
init.js JavaScript Vaš glavni i jedini kod za ovaj projekt.
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"); neka led = Cfg.get ('pins.led'); neka je adr = 0x38; neka sabirnica = I2C.get (); I2C.writeRegB (sabirnica, adr, 3, 0); I2C.writeRegB (sabirnica, adr, 1, 0); / * isključite samo da biste bili sigurni */ neka odgoda = 2000; GPIO.set_mode (vodio, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', funkcija (args) {GPIO.toggle (led); I2C.writeRegB (sabirnica, adr, 3, 0); / * u slučaju da se OC03 ponovno poveže * / I2C.writeRegB (sabirnica, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (sabirnica, adr, 1, 0);}, null); return true;});