Oglas

Paleta luči Philips Hue zagotovo ni poceni (obstaja nekaj alternativ Nadomestni odtenki Philipsa za odtenek, ki si jih v resnici zaslužijoSistem Philips Hue vodi napolnjenost, ko gre za pametno razsvetljavo, vendar obstaja nekaj vrednih alternativ. Izbrali smo tri, ki ponujajo enak nabor funkcij in možnost zaklepanja. Preberi več ), ampak ena stvar, ki jo zelo cenim, je dobro dokumentirana API Kaj so API-ji in kako odprti API-ji spreminjajo internetSte se že kdaj vprašali, kako se programi v računalniku in na spletnih straneh, ki jih obiščete, med seboj "pogovarjajo"? Preberi več za izdelavo lastnih aplikacij Hue. Danes vam bom pokazal, kako lahko upravljate lučke Hue iz Arduino - in nato dodal preprost senzor gibanja.

Zakaj to počnemo? Ker so sistemi za avtomatizacijo domov lahko precej toga in dragi. Če se naučite nadzirati odtenek iz Arduinoja, odprete vrata za različne projekte domače avtomatizacije, ki jih preprosto ne morejo premagati sestavni deli. Če hekanje stvari samo ni vaša stvar, poskusite to

8 čudovitih Hue aplikacij 7 najboljših aplikacij Philips Hue za Android in iPhoneIščete najboljše aplikacije Philips Hue za pametne luči? Tu je nekaj odličnih aplikacij za iPhone in Android. Preberi več namesto tega.

Sistem odtenkov

Naj se nekoliko posvetimo tehničnim informacijam, tako da boste poznali osnovne sisteme, s katerimi delate. Lučke odtenkov ustvarijo mrežaste mreže Mesh Networks: Prihodnost komunikacijeMrežne mreže so skoraj neranljive. V mrežastem omrežju ni zastojnih točk, skozi katere prehaja ves promet. Namesto tega se informacije prenašajo z ene naprave na drugo, dokler ne dosežejo svojega cilja. Preberi več , z uporabo brezžičnega protokola kratkega dosega, imenovanega ZigBee - konkretno, so ZigBee Light Link certificirano, kar pomeni, da bi morali tudi drugi izdelki ZLL delovati poleg Hue (teoretično).

Čeprav je tehnično majhen doseg, ZigBee omrežno omrežje pomeni, da vsaka nova žarnica širi omrežje in prenaša sporočila na druge žarnice. To pomeni, da če imate težave pri nadzoru luči na drugi strani hiše, poskusite postaviti drugo luč med njih.

Zigbee je odličen protokol, vendar je precej drugačen kot Wi-Fi ali žično računalniško omrežje, zato potrebujemo Philips Hue Bridge, da se skupaj pridružimo obema. Most Hue poganja spremenjeno programsko opremo linux Linux, ki oddaja osnovni spletni strežnik.

To boste videli, če v brskalnik samo vtipkate naslov IP mostu Hue. Od tu pa ne moreš veliko storiti.
To boste videli, če v brskalnik samo vtipkate naslov IP mostu Hue. Od tu pa ne morete veliko storiti.

S trenutnim stanjem lučk lahko ugotovite trenutno stanje luči in jih nadzorujete.

Je zelo preprost sistem in zrel za projekte naredi sam. Kudos Philipsu, da je to stvar naredila tako, da jo je mogoče pokvariti.

Začenjati

Preden lahko dostopate do dokumentacije API-ja, boste morali registrirajte se kot razvijalec. Brezplačno je, vendar morate sprejeti določila in pogoje. To storite zdaj.

Vsi, ki poznajo standardne spletne storitve ali Javascript, bi morali imeti možnost dela s Hue: vsi podatki so posredovani in sprejeti kot Paketi JSON Kaj je JSON? Laičev pregledNe glede na to, ali želite biti spletni razvijalec ali ne, je dobro vsaj vedeti, kaj je JSON, zakaj je to pomembno in zakaj se uporablja po vsem spletu. Preberi več .

Če si želite to ogledati v akciji, boste morali vedeti IP naslov mostu Hue. Obstaja nekaj načinov za to:

  • Poglejte tabelo dodeljevanja naslova DHCP v skrbniškem vmesniku usmerjevalnika
  • Zaženite program za preslikavo omrežja, kot je Domači skener IP
  • Poskusite Orodje za posredovanje Philips UPnP
  • Ping »philips-hue.home«
preslikava omrežja za iskanje mostu

Ko končate, nadaljujte in vnesite v naslovno vrstico brskalnika odpravljanje napak / clip.html priloženo URL-ju. V mojem primeru je bilo to:

http://192.168.1.216/debug/clip.html

To je orodje za odpravljanje napak, s katerim lahko pošiljate in prejemate pakete JSON prek preprostega spletnega vmesnika. Prvi korak je omogočiti profil razvijalca na samem mostu Hue - ta je zaradi varnostnih razlogov privzeto onemogočen. V polje BODY prilepite naslednje, URL pa pustite kot /api/, in pošljite zahtevo POST s klikom na gumb za objavo:

{"devicetype": "testni uporabnik", "username": "newdeveloper"}

Ko prvič to storite, boste nekje v odgovoru videli gumb za povezavo, ki ni pritisnjen. To je varnostna funkcija, ki zahteva, da se vsaka nova aplikacija, ki jo uporabljate, fizično pooblasti. Pojdite in poiščite svoj Bridge, pritisnite gumb in ponovno pošljite isto zahtevo v 30 sekundah. Tokrat boste prejeli drugačen odgovor in uporabnik bo pooblaščen. Če želite uporabiti drugo uporabniško ime, preberite dokumente API o ustvarjanje uporabnikov. Za zdaj bo to dovolj.

Ko uporabnik nastavi, postane osnovni URL, s katerim bi morali komunicirati /api/newdeveloper/. Lahko pošljete zahtevo GET, če želite izvedeti vse, kar vaš Bridge trenutno ve o priključenih lučkah, alarmih, prizorih in kratkem dnevniku že uporabljenih aplikacij. Tu je vzorec nekaterih informacij o stanju, ki jih vsebuje posamezna žarnica.


"stanje": {"on": res, "bri": 254, "odtenek": 14910, "sit": 144, "učinek": "nič", "xy": [0.4596, 0.4105], "ct": 369, "alarm": "noben", "colormode": "ct", "dosegljiv": false}, "type": "razširjena barvna luč", "name": "spalnica 1", "modelid": "LCT001", 

Upoštevajte, da "On": res stanje dejansko ne kaže, ali je žarnica vklopljena ali ne; le da glede na nastavitve Bridge, to naj bi biti na. "Dosegljiv": napačen lahko označi žarnico, ki je predaleč ali pa jo preprosto izklopite na stikalu za vklop.

Še zadnji primer, preden to vključimo v Arduino: preverite, ali je ena od vaših luči vidna in vklopljena, in da veste, katera številka je. Spremenite URL v /api/newdevelopers/lights/1/state (spremenite številko na vašo luč) in pošljite zahtevo PUT z naslednjimi podatki:

{"odtenek": 50100, "sit": 255, "bri": 255}

Morali bi videti, kako vaša svetloba reagira tako:

hue demo

Kar morate storiti, je, da na žarnico potisnete novo stanje. Dodate lahko tudi "tranitiontime", ki je primitivna metoda animacije, ki kaže, koliko sekund želite, da se stanje spremeni.

Barva se lahko nastavi več različnih načinov, vendar žal ni preprostega načina za pošiljanje vrednosti RGB. V zgornjem primeru smo poslali odtenek, sedeluracija in brightness. Poskusite spremeniti vrednost odtenka in znova poslati zahtevo PUT.

Delo Arduino

Obstaja obstoječa Hue / Arduino knjižnica, imenovana ArduinoHue na katero se sami Philips sklicujejo v dokumentaciji API, vendar je težava te knjižnice v tem, da je ta komunicira prek povezave USB z računalnikom, ki mora zagnati tudi aplikacijo Python nenehno. Eugh. Na tistem mestu lahko tudi pustite, da vaš računalnik vodi celotno zadevo in Arduino v celoti izrezuje.

Namesto tega vam pokažem, kako lahko nadzirate odtenek iz Arduina z uporabo ethernetnega ščita. Vašega Arduina ni treba povezati z računalnikom, tako da lahko deluje neodvisno, kjer koli lahko postavite Ethernet kabel. Pravzaprav bi moral delovati tudi z zaščito Wi-Fi, vendar nimam s kom igrati.

ehternet-sheild-box

Če želite preskočiti naprej, je spodaj vdelana celotna vzorčna koda oz na voljo tukaj. Prilagodil sem ga iz primera, objavljenega avtor Gilson Oguime. Če se še nikoli niste igrali s ščitnikom Ethernet, boste morda želeli hitro teči skozi vadnica spletnega odjemalca - Predvidevam, da sem s tem seznanjen in ne bom pokrival kode, ki se uporablja za vzpostavitev omrežnega IP-ja itd. Pokazali smo vam tudi kako ustvariti mini spletni strežnik s ščitnikom Ethernet Podarite svojemu projektu Arduino lasten mini-spletni strežnik z ethernetnim ščitomPred časom sem vam pokazal, kako lahko nastavite internetni nadzorni sistem za svoj Arduino - vendar je za vzdrževanje internetne povezave moral ostati povezan z računalnikom prek USB-ja ... Preberi več .

Ustvarjanje sprememb stanja

Ustvarjanje novega stanja za potiskanje žarnic je preprost primer ustvarjanja novega Vrvica spremenljivka in izmika vsem dvojnim navedkom. Dodala sem naključen() tam tudi delujejo, da ustvarijo nekoliko dinamično animacijo. Poskusite spremeniti odtenek naključno tudi za različne barve.

String ukaz = "{\" on ": true, \" hue \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" prehodni čas \ ":" + niz (naključno (15, 25)) + "}";

Pošiljanje ukaza

Če želite dejansko poslati ukaz, imate pomočniško funkcijo, imenovano setHue (), ki vzame svetlobno številko in ukazni niz kot argument, tako:

setHue (1, ukaz);

Potem se poveže na most, izpusti ukaz kot zahtevo PUT, skupaj z vsemi drugimi neumnostmi, ki jih ustvarja zahteva HTTP.


client.print ("PUT / api /"); odjemalec.print (hueUsername); client.print ("/ luči /"); odjemalec.print (lightNum); client.println ("/ stanje HTTP / 1.1"); client.println ("ohrani pri življenju"); client.print ("Gostitelj:"); client.println (hueHubIP); client.print ("Dolžina vsebine:"); client.println (command.length ()); client.println ("Vrsta vsebine: besedilo / navaden; charset = UTF-8 "); odjemalec.println (); // prazna vrstica pred telesom. client.println (ukaz); // Hue ukaz. 

Dodajanje senzorja gibanja

Končno sem napeljal preprosto HC-SR501 senzor gibanja na digitalni I / O pin 2. Ko zaznamo gibanje, se za dve žarnici na mostu potisne niz stanj, da se ustvari počasna, dinamična animacija. Ko se senzor gibanja izklopi, se obema pošlje en sam ukaz. V idealnem primeru bi jih vrnili v stanje, v katerem so bili, preden je bilo zaznano gibanje, vendar logika ni tako pametna - samo vklopili in izklopili jih bomo.

Omejitve

Čeprav očitno neoptimizirana koda traja skoraj sekundo, da omrežni vmesnik Arduino pošlje eno samo ukazno zahtevo. Isti ukaz sem preizkusil v Macu z isto povezavo z Ethernetom in bil je sposoben od deset do dvajsetkrat večja hitrost (tukaj je AppleScript v primeru, da želite preizkusiti). Posledično katera koli hitra animacija (poskušala sem ustvariti utripajoč učinek sveč) preprosto ni mogoča pri Arduinu. To ne bi smelo biti problem za večino projektov, samo za svetlobne animacije visoke hitrosti, vendar je dobro, da se zavedate omejitve.

Prav tako je težko v celoti razčleniti vse JSON-ove odzive, ki jih dobite z mostu; samo na Arduinu ni dovolj RAM-a, da shrani vse neobdelane podatke. Zaradi tega se boste morda želeli večinoma omejiti na pošiljanje.

Hack Hue

Zdaj, ko ste oboroženi z znanjem, kako popolnoma neodvisno nadzirati Hue, odpira svet kramp hiš Hue avtomatizacije. Pravo vprašanje je: kaj boš naredil?

James ima doktorat iz področja umetne inteligence in ima certifikat CompTIA A + in Network +. Je vodilni razvijalec MakeUseOf in svoj prosti čas preživlja z igranjem VR paintball in družabnih iger. Z računalniki gradi že od malih nog.