Reklama

Rad svetiel Philips Hue určite nie je lacný (existuje niekoľko alternatív Philips Hue Alternatívy, ktoré si to skutočne zaslúžiaSystém Philips Hue stojí na čele poplatkov, pokiaľ ide o inteligentné osvetlenie, ale existujú aj hodné alternatívy. Vybrali sme tri, ktoré ponúkajú rovnakú základnú sadu funkcií a hackernosť. Čítaj viac ), ale jedna vec, ktorú si vážim, je dobre zdokumentovaná API Čo sú API a ako otvorené API menia internetPremýšľali ste niekedy nad tým, ako sa programy v počítači a webové stránky, ktoré navštevujete, navzájom „rozprávajú“? Čítaj viac na vytváranie vlastných odtieňových aplikácií. Dnes vám ukážem, ako ovládať svoje Hue svetlá z Arduina - potom pridám jednoduchý snímač pohybu.

Prečo to robíme? Pretože systémy domácej automatizácie môžu byť dosť rigidné a drahé. Učením, ako ovládať Hue od spoločnosti Arduino, otvárate dvere mnohým domácim automatizačným projektom na mieru, ktoré jednoducho nemôžu byť porazené zloženými komponentmi. Ak hackovanie vecí spolu nie je vaša vec, skúste to

instagram viewer
8 rozprávkových odtieňov 7 najlepších aplikácií Philips Hue pre Android a iPhoneHľadáte najlepšie aplikácie Philips Hue, ktoré sa dajú použiť s vašimi inteligentnými svetlami? Tu je niekoľko vynikajúcich aplikácií pre iPhone a Android. Čítaj viac miesto.

The Hue System

Poďme sa trochu venovať technickej situácii, aby ste vedeli základné systémy, s ktorými pracujete. Hue svetla vytvoriť sieť Mesh Networks: Budúcnosť komunikácieSieťoviny sú takmer nezraniteľné. V sieťovej sieti nie sú žiadne škrtiace body, cez ktoré prechádza všetka prevádzka. Namiesto toho sa informácie prenášajú z jedného zariadenia na ďalšie, až kým nedosiahnu svoj cieľ. Čítaj viac , pomocou bezdrôtového protokolu krátkeho dosahu nazývaného ZigBee - konkrétne sú ZigBee Light Link certifikované, čo znamená, že ďalšie produkty ZLL by mali tiež fungovať spolu s odtieňom (teoreticky).

Hoci je sieť ZigBee technicky krátkeho dosahu, znamená to, že každá nová žiarovka rozširuje sieť a odovzdáva správy iným žiarovkám. To znamená, že ak máte problémy s ovládaním svetla na druhej strane domu, skúste medzi ne umiestniť ďalšie svetlo.

Zigbee je vynikajúci protokol, ale je úplne odlišný od Wi-Fi alebo káblovej počítačovej siete, preto potrebujeme, aby sa k nim mohli pripojiť aj Philips Hue Bridge. Hue Bridge prevádzkuje upravený linuxový firmvér s otvoreným zdrojom, ktorý vysiela základný webový server.

To sa zobrazí, ak do prehliadača zadáte iba IP adresu mostíka Hue. Odtiaľto však nemôžete urobiť veľa.
Toto sa zobrazí, ak do prehliadača zadáte iba adresu IP mostíka Hue. Od tejto chvíle však nemôžete urobiť veľa.

Pomocou interakcie s týmto miestnym webovým serverom môžete zistiť aktuálny stav svetiel a ovládať ich.

Je to krásne jednoduchý systém a je zrelý na kutilské projekty. Kudos to Philips za to, že sa táto vec stala tak hackerskou.

Začíname

Predtým, ako budete mať prístup k dokumentácii API, musíte zaregistrovať sa ako vývojár. Je to zadarmo, musíte však akceptovať zmluvné podmienky. Urob to teraz.

Každý, kto pozná štandardné webové služby alebo Javascript, by mal byť schopný pracovať s odtieňom: všetky údaje sa odosielajú a prijímajú ako Pakety JSON Čo je JSON? Prehľad laikaČi už plánujete byť vývojárom webu alebo nie, je dobré aspoň vedieť, čo je JSON, prečo je to dôležité a prečo sa používa na celom webe. Čítaj viac .

Aby ste sa na to mohli pozrieť v praxi, musíte poznať IP adresu vášho Hue Bridge. Existuje niekoľko spôsobov, ako to urobiť:

  • Prezrite si tabuľku priradenia adries DHCP v administračnom rozhraní smerovača
  • Spustite program mapovania siete, ako je Domovská stránka skenera IP
  • Vyskúšajte Philips UPnP brokerský nástroj
  • Ping „philips-hue.home“
sieťové mapovanie na nájdenie mosta

Až budete hotoví, pokračujte a napíšte ho do panela s adresou prehliadača debug / clip.html pripojené k adrese URL. V mojom prípade to bolo:

http://192.168.1.216/debug/clip.html

Toto je nástroj na ladenie, ktorý vám umožňuje odosielať a prijímať pakety JSON prostredníctvom jednoduchého webového rozhrania. Prvým krokom je povolenie profilu vývojára na samotnom odtieni Hue Bridge - ktorý je z bezpečnostných dôvodov v predvolenom nastavení zakázaný. Vložte nasledujúci text do poľa BODY a webovú adresu ponechajte ako /api/a pošlite žiadosť o POST kliknutím na ikonu tlačidlo príspevku:

{"devicetype": "test user", "username": "newdeveloper"}

Keď to urobíte prvýkrát, niekde v odpovedi uvidíte niekde „tlačidlo odkazu nie je stlačené“. Toto je funkcia zabezpečenia, ktorá vyžaduje, aby každá nová aplikácia, ktorú používate, bola fyzicky autorizovaná. Choďte a nájdite most, stlačte tlačidlo a znova pošlite rovnakú žiadosť do 30 sekúnd. Tentoraz dostanete inú odpoveď a používateľ bude autorizovaný. Ak chcete použiť iné používateľské meno, prečítajte si dokumenty o rozhraní API vytváranie používateľov. Pre túto chvíľu to bude stačiť.

Po nastavení vášho používateľa sa stane základná adresa URL, s ktorou by ste mali interagovať /api/newdeveloper/. Môžete poslať žiadosť GET, aby ste zistili všetko, čo váš most v súčasnosti vie o prepojených svetlách, výstrahách, scénach a krátkom protokole aplikácií, ktoré boli použité. Tu je ukážka niektorých informácií o stave obsiahnutých v jednej žiarovke.


"state": {"on": true, "bri": 254, "hue": 14910, "sat": 144, "effect": "none", "xy": [0.4596, 0.4105], "ct": 369, "alert": "none", "colormode": "ct", "reachable": false}, "type": "Extended color light", "name": "Bedroom 1", "modelid": "LCT001" 

Všimnite si, že "On": true štát vám vlastne neukazuje, či je žiarovka zapnutá alebo nie; iba to podľa nastavenia Bridge mali by byť na. "Dosiahnuteľné": false môže označovať obe žiarovky, ktoré sú príliš ďaleko alebo jednoducho vypnuté pomocou sieťového vypínača.

Posledný príklad predtým, ako to začneme integrovať do Arduina: uistite sa, že jedno z vašich svetiel je viditeľné a zapnuté a či viete, aké je to číslo. Zmeňte adresu URL na /api/newdevelopers/lights/1/state (zmena čísla na svetlo) a odošlite požiadavku PUT s nasledujúcimi údajmi:

{"hue": 50100, "sat": 255, "bri": 255}

Mali by ste vidieť, ako vaše svetlo reaguje takto:

demo odtieňa

To, čo ste urobili, je tlačiť nový stav do žiarovky. Môžete tiež pridať „prechodný čas“, čo je primitívna metóda animácie, ktorá udáva, koľko sekúnd chcete, aby zmena stavu trvala.

Farbu je možné nastaviť rôznymi spôsobmi, bohužiaľ neexistuje jednoduchý spôsob, ako odoslať hodnotu RGB. Vo vyššie uvedenom príklade sme poslali odtieň, satmočenie a brightness. Skúste zmeniť hodnotu odtieňa a znova odošlite požiadavku PUT.

Práca z Arduino

Existuje existujúca knižnica Hue / Arduino s názvom ArduinoHue na ktoré sa samotná spoločnosť Philips odvoláva v dokumentácii API, ale problém s touto knižnicou je ten komunikuje prostredníctvom pripojenia USB k počítaču, ktorý tiež potrebuje spustiť aplikáciu Python nepretržite. EuGH. Môžete tiež nechať počítač bežať celú vec v tomto okamihu a úplne vyrezať Arduino.

Namiesto toho vám ukážem, ako ovládať odtieň z Arduina pomocou ethernetového štítu. Vaše Arduino nemusí byť pripojené k počítaču, takže môže pracovať nezávisle kdekoľvek, kam môžete umiestniť ethernetový kábel. V skutočnosti by to malo fungovať aj so štítom Wi-Fi, ale nemám s kým hrať.

ehternet-štít-box

Ak chcete preskočiť ďalej, celý vzorový kód je vložený nižšie alebo k dispozícii tu. Prispôsobil som to z uverejneného príkladu od Gilson Oguime. Ak ste nikdy predtým nehrávali s ethernetovým štítom, možno budete chcieť rýchlo prejsť sieťou výučba webového klienta - Budem predpokladať určitú úroveň oboznámenia sa s tým a nebudem sa vzťahovať na kód používaný na vytvorenie sieťovej adresy IP atď. Ukázali sme vám to ako vytvoriť mini webový server s Ethernetovým štítom Doprajte svojmu projektu Arduino vlastný mini-webový server s ethernetovým štítomPred chvíľou som vám ukázal, ako nastaviť internetový riadiaci systém pre svoje Arduino - ale na udržanie internetového pripojenia musel zostať pripojený k počítaču cez USB ... Čítaj viac .

Vytváranie zmien stavu

Vytvorenie nového stavu na tlačenie žiaroviek je jednoduchý prípad vytvorenia nového povrázok variabilný a vynechá všetky úvodzovky. Pridal som a random () aj tam fungujú a vytvárajú tak trochu dynamickú animáciu. Vyskúšajte, aby bola premenná odtieňa náhodná aj pre rôzne farby.

Príkaz typu String = "{\" on ": true, \" hue \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" transitiontime \ ":" + String (random (15, 25)) + "}";

Odoslanie velenia

Ak chcete príkaz skutočne poslať, máte pomocnú funkciu s názvom setHue (), ktorá ako argument vezme číslo svetla a reťazec príkazov:

setHue (1, príkaz);

Potom sa iba pripojí k mostu, vypláva príkaz ako požiadavka PUT, spolu so všetkými ostatnými nezmyslami, ktoré vyžaduje vytvorenie požiadavky HTTP.


client.print („PUT / api /“); client.print (hueUsername); client.print ( "/ svetla /"); client.print (lightNum); client.println ("/ state HTTP / 1.1"); client.println ( "keep-alive"); client.print ("Host:"); client.println (hueHubIP); client.print („Content-Length:“); client.println (command.length ()); client.println („Content-Type: text / plain; charset = UTF-8 "); client.println (); // prázdny riadok pred telom. client.println (príkaz); // Príkaz Hue. 

Pridanie snímača pohybu

Nakoniec som zapojil jednoduchý Pohybový senzor HC-SR501 na digitálny vstupno-výstupný pin 2. Keď je detekovaný pohyb, na stav mostíka sa tlačí séria stavov na 2 žiarovky, aby sa vytvorila pomalá dynamická animácia. Keď sa snímač pohybu deaktivuje, obom sa odošle príkaz na jedno vypnutie. V ideálnom prípade by sa vrátili do stavu, v akom boli pred detekciou pohybu, ale logika nie je taká inteligentná - my ich iba zapíname a vypíname.

obmedzenia

Aj keď je to síce neoficiálny kód, odosielanie žiadosti o jediný príkaz trvá takmer sekundu, kým sieťové rozhranie Arduino nezasiahne. Rovnaký príkaz som otestoval na počítači Mac pomocou rovnakého pripojenia Ethernet a bol schopný dosiahnuť desať až dvadsaťnásobok tejto rýchlosti (tu je AppleScript v prípade, že by ste chceli vyskúšať). V dôsledku toho nie je z Arduina možná žiadna rýchla animácia (snažil som sa vytvoriť efekt blikajúcej sviečky). To by nemal byť problém pre väčšinu projektov, len pre vysokorýchlostné svetelné animácie, ale je dobré poznať obmedzenia.

Je tiež ťažké úplne analyzovať akúkoľvek odpoveď JSON, ktorú dostanete späť z mosta; v Arduino nie je dostatok pamäte RAM na uloženie všetkých nespracovaných údajov. Z tohto dôvodu sa možno budete chcieť väčšinou obmedziť na odosielanie.

Hack the Hue

Teraz, keď ste oboznámení s tým, ako ovládať Hue úplne nezávisle, otvára sa svet hackov domácej automatizácie Hue. Skutočná otázka znie: čo urobíš?

James má bakalárske štúdium v ​​oblasti umelej inteligencie a je držiteľom certifikátu CompTIA A + a Network +. Je popredným vývojárom MakeUseOf a trávi svoj voľný čas hraním VR paintballu a spoločenských hier. Staval počítače od malička.