Kako napraviti DIY siri-kontrolirano Wi-Fi svjetlo

  • Lesley Fowler
  • 1
  • 2569
  • 635
Oglas

HomeKit je napokon u divljini, omogućavajući glasovnu kontrolu putem Siri za pregršt potrošačkih pametnih uređaja.

Nažalost, mislim na doslovnu pregršt - sve što ste već kupili vjerojatno nije kompatibilno. Međutim, protokol je već obrnuto dizajniran i emulator otvorenog koda za HomeKit API je dostupan: ili na običnom engleskom jeziku sada možete kreirati “lažan” HomeKit uređaji i Siri nadzirat će ih poput bilo kojeg drugog službenog HomeKit dodatka.

Danas ćemo stvoriti Wi-Fi kontrolirano svjetlo i upravljati njime Siri. Evo demonstracije.

Evo što će vam trebati:

  • Raspberry Pi (koristio sam RPi2, postoji mala razlika u verzijama Node za instaliranje s obzirom na nadograđenu ARM arhitekturu - vidi bilješke kasnije).
  • MQTT broker instaliran na Raspberry Pi. Pogledajte odjeljak “Instalirajte Mosquitto na svoj Pi” u mom OpenHAB vodiču 2. dio OpenHAB vodič za početnike 2. dio: ZWave, MQTT, pravila i grafikoni OpenHAB vodič za početnike 2. dio: ZWave, MQTT, pravila i grafikoni OpenHAB, softver za automatizaciju kućnih automata otvorenog koda, daleko nadmašuje mogućnosti ostalih sustava za automatizaciju kućanstava na tržištu - ali nije se lako postaviti. U stvari, to može biti ravno frustrirajuće. , Ne treba ga instalirati posebno na Pi - čak možete koristiti MQTT poslužitelj utemeljen na oblaku, ali budući da smo Pi za ovaj udžbenik ionako, to je zgodno.
  • NodeMCU v2 (kompatibilan sa Arduino)
  • Neopikselne LED (preporučam 4 piksela za testiranje, a zatim možete dodati vanjsko napajanje i dodati onoliko koliko želite)

Instaliranje HomeKit mosta

Instalirat ćemo NodeJS aplikaciju pod nazivom HAP-NodeJS na Raspberry Pi: to će tvoriti most između HomeKit zahtjeva i Wi-Fi uređaja. Za sada ćemo ovaj most konfigurirati s jednim dodatkom, ali možete dodati onoliko koliko želite.

Zapravo to instaliram na moj postojeći kućni poslužitelj koji radi na OpenHAB-u - nadam se da ću ih kasnije povezati zajedno, ali za sada znam da mogu postojati na istom Raspberry Pi-u. Ako radite isto, za svaki slučaj, napravite sigurnosnu kopiju vaše trenutne Pi SD kartice Lako klonirajte SD karticu za Raspberry Pip računarstvo bez problema Jednostavno klonirajte SD karticu Za Raspberry Pi Computing bez problema Bez obzira imate li je SD kartica ili nekoliko njih, jedna stvar koja će vam trebati je mogućnost stvaranja sigurnosne kopije kartica kako biste izbjegli probleme koji nastaju kada se vaš Raspberry Pi ne pokrene. , Ako sve pođe po zlu, možete se vratiti na to.

Započnite s potpunom nadogradnjom sa terminala ili SSH sesije Podešavanje vašeg Raspberry Pi za bezglavu upotrebu sa SSH Podešavanje vašeg Raspberry Pi za bezglavu upotrebu sa SSH Raspberry Pi može prihvatiti SSH naredbe kada je spojen na lokalnu mrežu (bilo putem Ethernet-a ili Wi-Fi), što vam omogućuje jednostavno postavljanje. Prednosti SSH-a nadilaze uznemirujući svakodnevni pregled… .

sudo apt-get update nadograditi sudo apt-get nadogradnju 

Možda ćete trebati to učiniti dva puta ako je prošlo neko vrijeme.

Sada instalirajte nekoliko osnovnih paketa koji će nam trebati:

sudo apt-get install npm git-core libnss-mdns libavahi-compat-libdnssd-dev 

Zatim ćemo instalirati najnoviju verziju NodeJS-a. Možda biste bili u iskušenju da to učinite apt-get, ali nemojte - ta verzija je sada stvarno stara i neće raditi. Umjesto toga, posjetite nodejs.org, idite na download / otpuštanje / najnovije-v5.x.0 / direktoriju i provjerite koja je veza za najnoviju verziju. Tražite Linux-armv7l za Raspberry Pi 2, ili linuxarmv6l za originalne RPi modele. Zatim, prilagođavajući URL-ove i nazive direktorija, po potrebi preuzmite i instalirajte pomoću sljedećih naredbi.

wget https://nodejs.org/download/release/latest-v5.x.0/node-v5.5.0-linux-armv7l.tar.gz tar -xvf node-v5.5.0-linux-armv7l.tar.gz cd node-v5.5.0-linux-armv7l sudo cp -R * / usr / local 

Potvrdite tipkanjem

verzija čvora 

A trebali biste vidjeti v5.5 (ili sve najnovije što ste preuzeli).

Zatim imamo nekoliko modula čvora za instaliranje.

sudo npm install -g npm sudo npm install -g čvor-gyp 

U toj prvoj naredbi zapravo koristimo Node Package Manager (npm) za instaliranje novije verzije sebe. Pametan!

Sada, za preuzimanje HomeKit emulatora pod nazivom HAP-NodeJS:

git klon https://github.com/KhaosT/HAP-NodeJS.git cd HAP-NodeJS npm obnova sudo npm instalacija node-uporno sudo npm install srp 

U ovom trenutku pokrenuo sam ovu pogrešku: “#error Ova inačica čvora / NAN / v8 zahtijeva C ++ 11 prevodilac“. Ako vam se to dogodi, instalirajte noviji C ++ prevodilac sa naredbama:

sudo apt-get install gcc-4,8 g ++ - 4,8 sudo update-alternative --install / usr / bin / gccgcc / usr / bin / gcc-4.6 20 sudo update-alternative --install / usr / bin / gcc gcc / usr / bin / gcc-4.8 50 sudo update-alternative --install / usr / bin / g ++ g ++ /usr/bin/g++-4.6 20 sudo update-alternative --install / usr / bin / g ++ g ++ / usr / bin / g ++ - 4,8 50 

Sada ne biste trebali imati problema. Nastavite izvršavati ove naredbe, jednu po jednu:

sudo npm instaliraj srp sudo npm instaliraj mdns --unsafe-perm sudo npm instaliraj debug sudo npm install ed25519 --unsafe-perm sudo npm instaliraj curve25519 --unsafe-perm 

To bi trebalo biti sve. Pokušajte pokrenuti emulator sa:

čvor Core.js 

Ako se pojave pogreške kako kaže da ne može pronaći takav i takav modul, samo upotrijebite sudo npm instalirati naredbe i zalijepite ime onog modula koji nedostaje. Ako pretpostavimo da je sve u redu, trebali biste vidjeti nekoliko upozorenja i pokrenut će se vaš HomeKit most. Ovako izgleda uspjeh:

Odmah možete vidjeti da je već stvoren set od 6 lažnih uređaja. Kasnije ćemo ih koristiti kao polazište vlastitog Wi-Fi svjetla, ali sada ćemo ih koristiti samo za testiranje. Također možete vidjeti više informacija o uklanjanju pogrešaka ako pokrenete poslužitelj sa:

DEBUG = * čvor Core.js

Pređite na Appleov uređaj koji može pokrenuti Siri. Apple znatiželjno ne nudi početnu aplikaciju HomeKit osim registriranim programerima, pa preuzmite besplatnu Elgato Eve aplikaciju, aplikaciju za upravljanje HomeKit koja vam omogućuje dodavanje (čak i ne-Elgato) uređaja u vašu HomeKit mrežu.

Kad prvi put pokrenete aplikaciju, trebate imenovati svoj dom, nastavite i prođite kroz to. Zatim odaberite “Dodajte dodatnu opremu”. Zanemarite poruku o tome da ste joj blizu!

Reći će vam da tražite jedinstveno “HomeKit instalacijski kod” Sljedeći. Zanemari to i pogodi “Dodajte u [ime svog doma]”.

Također će vam reći da uređaj nije certificiran. Zapravo nije. Samo nastavite. Kad dođete na ekran tražite dodatni kod ...

Odaberite unesite kôd ručno i utipkajte sljedeće:

031-45-154

Ovo se može pronaći / promijeniti u Light_accessory.js datoteku, ali o tome više kasnije. Dodajte ovaj pribor u zadanu sobu, nazovite ga Lažna svjetlost, i nastavite hodati kroz dijaloške okvire za odabir ikone itd.

Na kraju, vratite se na SSH sesiju u kojoj imate pokrenut HAP-NodeJS. Možda ste već vidjeli poruku koja kaže “Jesmo li na?” - to je Elgato aplikacija za svjetlosni status. Otvori Siri i reci joj “Uključite lažno svjetlo”, zatim ga pokušajte ponovo isključiti. Nadamo se da ćete vidjeti neke ispravke pogrešaka s HAP-NodeJS da pokažu da je primio naredbe.

Jesmo li na? Ne. Uključivanje svjetla! Ugasi svjetlo!

Fantastično, to je korak prvi. Sada će nam trebati stvarno svjetlo prije nego što se vratimo za ponovno postavljanje mosta.

Izgradnja Wi-Fi svjetla

Hardverska strana ovog koraka iznenađujuće je jednostavna ako započnemo sa samo četiri neopiksela jer ih možemo napajati izravno s NodeMCU ploče za razvoj i njegove USB veze. Ako imate duži strip, ne brinite - to smo definirali u softveru, tako da se ostatak jednostavno neće uključiti.

Crveni kabel napajanja iz kabela neopiksela spojite na VIN pin, plavi uzemljenje na GND, a zeleni signalni kabel na pin označen s D2 na NodeMCU. Budite vrlo oprezni u pogledu polariteta: ako pomiješate zemlju i VIN, poslat ćete veliku snagu kroz ploču i uništiti je u procesu.

Ako vaše Arduino okruženje još nije postavljeno za rad s ESP8266, nastavite i slijedite vodič u mom ESP8266: Arduino ubojica Upoznajte Arduino ubojicu: ESP8266 Upoznajte Arduino ubojicu: ESP8266 Što ako vam kažem da postoji arduino kompatibilni dev ploča s ugrađenim Wi-Fi-jem za manje od 10 dolara? Pa, postoji. vodiča, a zatim se vratite nakon što potvrdite da djeluje. Instalirajte ove dodatne biblioteke:

  • lmroy's PubSubClient
  • Adafruitovi NeoPixelsi

Kôd koji koristimo je modifikacija Github korisnika Aditya Tannua - Uklonila sam nepotrebnu funkcionalnost ažuriranja putem zraka, dodala neke funkcije HSV-a koje su nedostajale i olakšala sam stvaranje više svjetla promjenom jedna varijabla. Ako ne vidite kôd ugrađen u nastavku, naći ćete ga u ovom popisu.

Ažurirajte sljedeće redove s vlastitim mrežnim podacima i jedinstvenim nazivom svakog učvršćenja koje stvorite (host).

const char * ssid = "..."; const char * password = "..."; const char * host = "uredsko svjetlo"; IPAdress MQTTserver (192, 168, 1, 99);

IP adresa ovog učvršćenja automatski se dobiva putem DHCP-a - nije važno mijenja li se budući da se svaki put povezujemo na isti MQTT poslužitelj.

Za sada koristimo samo 4 neopiksela, ali kasnije možete povećati broj ako ih napajate iz vanjskog izvora. Prenesite kôd i testirajmo - koristite svoj omiljeni MQTT klijent za slanje naredbi (podesite ime glavnog računala u sljedećim uputama ako ste ga promijenili).

  • Možeš poslati na do korijena officelight kanal da ga uključite. Pošaljite bilo koju drugu vrijednost na tom kanalu da biste ga isključili.
  • Možete poslati broj od 0-360 kancelarijskom svjetlu / nijansi da promijenite boju. Koristimo prostor u boji HSV, pa su 0 i 360 crveni, 120 zeleni, a 240 plavi.
  • Šaljete postotak vrijednosti za svjetlinu (0-100, ne uključuje simbol%).
  • Isto za zasićenje. Vrijednost 100 bit će potpuno zasićena (tj. Čvrste boje), a nula će biti čisto bijela, bez obzira na specificiranu nijansu.

Jednom kada potvrdite da vaš rasvjetni uređaj pokrenut MQTT radi, nastavite dalje.

Konfiguriranje novog HomeKit dodatka

Vratite se na Raspberry Pi i zatvorite HAP-NodeJS aplikaciju ako već niste. Dođite do odjeljka /pribor imenik. Da biste to učinili, možete izravno preuzeti kôd koji je već uparen s “officelight” učvršćivanje upišite sljedeće:

wget https://gist.githubusercontent.com/jamesabruce/a6607fa9d93e41042fee/raw/12e4fd1d1c2624e7540ba5e17c3e79bc6bdec5fd/Officelight_accessory.js

U osnovi, ovo je duplikat zadanog pribora za svjetlo, pri čemu su promijenjena neka imena varijabli (opet prilagođena Adysanovom radu, pojednostavljena radi lakše uporabe). Evo što biste trebali znati za stvaranje vlastitog prilagođenog pribora na temelju toga.

  • Sav pribor mora biti imenovan *_accessory.js
  • Promijenite IP adresu u varijabli opcija na vrhu na vašem MQTT poslužitelju
  • Ako imate drugo ime učvršćenja, pretražite / zamijenite sve instance “officelight” s vašim jedinstvenim imenom učvršćenja. Možete pretražiti / zamijeniti u Nanou pritiskom na CTRL i \, upišite izraz pronaći, termin zamijeniti, a zatim pritisnite (što znači sve instance). Kroz svaki od njih naučite precizno koje se varijable ažuriraju.
  • Napravite jedinstveno šesterokutno korisničko ime za dodatak (light.username = “1B: 2B: 3C: 5D: 6E: FF”;)
  • Ne mijenjajte PIN kod. Slijedi određeni format, a ako ne znate što radite, neće se moći upariti. Nema problema s održavanjem istih između svjetala.
  • Možete učvrstiti svoje kućište drugačije “Ime Siri” kada ih dodate u Elgato Eve aplikaciju i uredite ih u bilo kojem trenutku tako da niste zaglavljeni u svom početnom izboru. Nema potrebe za uređivanjem konfiguracijskih datoteka niti ponovno pokretanjem poslužitelja.
  • Nakon što dobijete više učvršćenja, pomoću Elgato Eve aplikacije možete ih grupirati po sobi ili stvoriti određene scene koje se sastoje od više složenih radnji. Scene se mogu sastojati od više radnji, poput: upalite uredsko svjetlo, smanjite ga na 25%, učinite crvenim i aktivirajte aparat za kavu.

Morat ćete ponovo dodati svoj novi dodatak putem HomeKit aplikacije po izboru.

Konačno, želimo pokrenuti našu HAP-NodeJS aplikaciju svaki put kada se Pi ponovno pokrene. Dodajte sljedeće na svoj etc / rc.local datoteku, neposredno prije izlaz 0.

sudo node /home/pi/HAP-NodeJS/Core.js < /dev/null &

Možete vidjeti da sam to kombinirao s nekim drugim naredbama koje sam već postavio za pokretanje.

Ako prvi put koristite rc.local, možda ćete ga trebati postaviti kao izvršnog:

sudo chmod 755 /etc/rc.local

Ako ga iz nekog razloga trebate ponovo pokrenuti u načinu uklanjanja pogrešaka, možete ubiti pokrenutu aplikaciju Node pomoću:

killall čvor

Posljednji korak: pomaknite se do imenika dodataka i izbrišite GarageDoorOpener_accessory.js. U vrijeme pisanja stranica je to buggy, te će uzrokovati da se server nakon nekog vremena pokvari.

Što ćete kontrolirati sa Siri?

Sada kada ste oborili osnove, zaista nema ograničenja u onome što možete kontrolirati - ako ga možete kodirati u Javascriptu, možete napraviti vlastitu datoteku dodatne opreme. Ovdje ima toliko potencijala, mislim da ćete se jako dobro zabaviti. Javite mi u komentarima što sve smislite!




16.02.23 07:27
Are you in search of a specific, shortage, or restricted IC? Or perhaps you have the ability to supply us with such components? If so, we invite you to consider Sourcing IC Ltd HK as your trusted partner in the world of semiconductors. Our team has years of experience in the industry, and we have established strong relationships with top manufacturers and suppliers worldwide. This allows us to offer competitive pricing and quick turnaround times, ensuring that our customers receive the components they need on time and within budget. Whether you are looking for a specific component or need help with a hard-to-find integrated circuit, we are here to help. We offer a range of services, including sourcing, logistics, and quality assurance, to ensure that you receive the best possible service. NO MOQ is required! If you're interested in learning more about our services, please feel free to visit our website https://icsouring.com or contact us directly at Whatsapp : 852-61937363 Email: [email protected] We would be more than happy to discuss your needs and we look forward to the opportunity to work with you. Payment Method: Paypal / Western Uniuon / TT See you! Best Regards, Elaine, IC Sourcing Ltd If you wish to no longer receive emails from us you can <a href="https://bigoffers.org/unsubscribe/">Unsubscribe Here</a>
O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.