Reklāma

Philips Hue lukturu klāsts noteikti nav lēts (ir dažas alternatīvas Philips Hue alternatīvas, kas patiesībā ir tā vērtsPhilips Hue sistēma uzlādē ar viedo apgaismojumu, taču ir arī dažas cienīgas alternatīvas. Mēs izvēlējāmies trīs, kuri visi piedāvā to pašu pamata funkciju komplektu un hackability. Lasīt vairāk ), bet viena lieta, ko es patiešām novērtēju, ir labi dokumentēta API Kas ir API un kā atvērtās API maina internetuVai esat kādreiz domājis, kā datorā un jūsu apmeklētajās vietnēs esošās programmas "sarunājas" savā starpā? Lasīt vairāk lai izveidotu savas Hue lietotnes. Šodien es jums parādīšu, kā vadīt nokrāsas gaismas no Arduino - pēc tam pievienojot vienkāršu kustības sensoru.

Kāpēc mēs to darām? Tā kā mājas automatizācijas sistēmas var būt diezgan stingras un dārgas. Uzzinot, kā kontrolēt nokrāsu no Arduino, jūs atverat durvis dažādiem individuālu māju automatizācijas projektiem pēc individuāla pasūtījuma, kurus vienkārši nevar pārspēt ar plauktiem nesaistīti komponenti. Ja lietu uzlaušana vienkārši nav jūsu lieta, izmēģiniet to

8 pasakainas Hue lietotnes 7 labākās Philips Hue lietotnes Android un iPhoneVai meklējat labākās Philips Hue lietotnes, kuras izmantot kopā ar jūsu viedajām gaismām? Šeit ir vairākas lieliskas lietotnes iPhone un Android. Lasīt vairāk tā vietā.

Krāsu sistēma

Paņemsim mazliet tehnisko, lai jūs zinātu pamatā esošās sistēmas, ar kurām strādājat. Krāsu gaismas rada acu tīkls Tīkla tīkli: komunikācijas nākotneAcs tīkli ir gandrīz neievainojami. Linuma acs tīklā nav neviena aizdares punkta, caur kuru šķērso visa satiksme. Tā vietā informācija tiek nodota no vienas ierīces uz otru, līdz tā sasniedz galamērķi. Lasīt vairāk , izmantojot maza diapazona bezvadu protokolu ar nosaukumu ZigBee - konkrēti, tie ir ZigBee gaismas saite sertificēts, kas nozīmē, ka citiem ZLL produktiem vajadzētu darboties arī līdz ar Hue (teorētiski).

Lai arī tas ir tehniski mazs, ZigBee tīkla tīkla funkcija nozīmē, ka katra jauna spuldze paplašina tīklu, pārraidot ziņojumus uz citām spuldzēm. Tas nozīmē, ka, ja jums rodas grūtības kontrolēt gaismu mājas otrā pusē, mēģiniet novietot starp tām otru gaismu.

Zigbee ir lielisks protokols, taču tas ir diezgan atšķirīgs no Wi-Fi vai vadu datoru tīkla, tāpēc mums ir nepieciešams Philips Hue Bridge, lai divus kopā savienotu. Hue tilts vada modificētu atvērtā koda linux firmware, kas pārraida pamata tīmekļa serveri.

Tas ir tas, ko redzēsit, ja pārlūkprogrammā vienkārši ierakstīsit sava Hue tilta IP adresi. Tomēr no šejienes jūs nevarat daudz izdarīt.
Tas ir tas, ko redzēsit, ja pārlūkprogrammā vienkārši ievadīsit sava Hue tilta IP adresi. No šejienes jūs tomēr nevarat daudz izdarīt.

Mijiedarbojoties ar šo vietējo tīmekļa serveri, jūs varat uzzināt apgaismojuma pašreizējo statusu un kontrolēt tos.

Tā ir skaisti vienkārša sistēma, nobriedusi DIY projektiem. Kudos Philips par šīs lietas padarīšanu tik hakeru.

Sākot

Lai varētu piekļūt API dokumentācijai, jums tas būs jāveic reģistrējieties kā izstrādātājs. Tas ir bez maksas, taču jums ir jāpiekrīt pakalpojumu sniegšanas noteikumiem. Dariet to tagad.

Ikvienam, kas pārzina standarta tīmekļa pakalpojumus vai Javascript, jāspēj strādāt ar Hue: visi dati tiek nodoti un saņemti kā JSON paciņas Kas ir JSON? Nespeciālista pārskatsNeatkarīgi no tā, vai plānojat būt tīmekļa izstrādātājs vai ne, ir laba ideja vismaz zināt, kas ir JSON, kāpēc tas ir svarīgs un kāpēc tas tiek izmantots visā tīmeklī. Lasīt vairāk .

Lai apskatītu šo darbību, jums būs jāzina sava Hue tilta IP adrese. Ir daži veidi, kā to izdarīt:

  • Skatiet DHCP adrešu piešķiršanas tabulu maršrutētāja administratora saskarnē
  • Palaidiet tīkla kartēšanas programmu, piemēram IP skenera mājas lapa
  • Izmēģiniet Philips UPnP starpnieka rīks
  • Ping “philips-hue.home”
tīkla kartēšana tilta atrašanai

Kad esat pabeidzis, dodieties uz priekšu un ierakstiet to pārlūkprogrammas adreses joslā ar atkļūdošana / clip.html pievienots vietrādim URL. Manā gadījumā tas bija:

http://192.168.1.216/debug/clip.html

Šis ir atkļūdošanas rīks, kas ļauj jums nosūtīt un saņemt JSON paketes, izmantojot vienkāršu tīmekļa saskarni. Pirmais solis ir iespējot izstrādātāja profilu pašā Hue Bridge - kas pēc noklusējuma ir atspējots drošības apsvērumu dēļ. Ielīmējiet šo elementu laukā BODY, atstājiet URL kā /api/un nosūtiet POST pieprasījumu, noklikšķinot uz poga poga:

{"devicetype": "testa lietotājs", "lietotājvārds": "newdeveloper"}

Pirmoreiz to darot, atbildē kaut kur redzēsit “saites poga nav nospiesta”. Šī ir drošības funkcija, kas pieprasa, lai katra jaunā lietojumprogramma būtu fiziski autorizēta. Ejiet un atrodiet savu Bridge, nospiediet pogu un vēlreiz nosūtiet to pašu pieprasījumu 30 sekunžu laikā. Šoreiz jūs saņemsit atšķirīgu atbildi, un lietotājs tiks pilnvarots. Ja vēlaties izmantot citu lietotājvārdu, izlasiet API dokumentus par lietotāju izveidošana. Pagaidām ar to pietiks.

Kad jūsu lietotājs ir iestatīts, kļūst pamata URL, ar kuru jums vajadzētu mijiedarboties /api/newdeveloper/. Jūs varat nosūtīt GET pieprasījumu, lai uzzinātu visu, ko jūsu tilts šobrīd zina, par sapludinātajām gaismām, trauksmēm, sižetiem un īsu izmantoto lietotņu žurnālu. Šeit ir dažas statusa informācijas paraugs, kas ietverts vienai spuldzei.


"stāvoklis": {"ieslēgts": patiess, "bri": 254, "nokrāsa": 14910, "sat": 144, "efekts": "nav", "xy": [0,4596, 0,4105], "ct": 369, "trauksmes signāls": "nav", "krāsu mode": "ct", "sasniedzams": nepatiess}, "tips": "paplašināta krāsu gaisma", "nosaukums": "guļamistaba 1", "modelis": "LCT001", 

Ņemiet vērā, ka “Ieslēgts”: patiess stāvoklis faktiski neparāda, vai spuldze ir ieslēgta vai nē; tikai to, ka saskaņā ar tilta iestatījumiem tas vajadzētu būt ieslēgtam “Sasniedzams”: nepatiess var norādīt gan pārāk tālu spuldzi, gan vienkārši izslēgtu pie barošanas slēdža.

Pēdējais piemērs, pirms mēs to integrējam Arduino: pārliecinieties, vai viens no jūsu lukturiem ir redzams un ieslēgts, un vai jūs zināt, kurš numurs tas ir. Mainiet URL uz /api/newdevelopers/lights/1/state (mainot numuru uz jūsu apgaismojumu) un nosūtiet PUT pieprasījumu ar šādiem datiem:

{"nokrāsa": 50100, "sat": 255, "bri": 255}

Jums vajadzētu redzēt, kā gaisma reaģē šādi:

nokrāsas demonstrācija

Tas, ko esat paveicis, ir spuldzei piespiest jaunu stāvokli. Varat arī pievienot “pārejas laiku”, kas ir primitīva animācijas metode, norādot, cik sekunžu laikā vēlaties veikt stāvokļa maiņu.

Krāsu var iestatīt daudzos dažādos veidos, bet diemžēl nav vienkārša veida, kā nosūtīt RGB vērtību. Iepriekš minētajā piemērā mēs nosūtījām nokrāsa, sēdējaurācija un brightness. Mēģiniet mainīt nokrāsas vērtību un vēlreiz nosūtīt PUT pieprasījumu.

Darbs no Arduino

Ir esoša Hue / Arduino bibliotēka ar nosaukumu ArduinoHue kurus paši Philips saista API dokumentācijā, taču šīs bibliotēkas problēma ir tā izmantojot USB savienojumu, sazinās ar datoru, kuram arī jādarbojas Python lietojumprogrammai pastāvīgi. Eugh. Jūs arī varat ļaut jūsu datoram tajā brīdī palaist visu lietu un pilnībā izgriezt Arduino.

Tā vietā es jums parādīšu, kā vadīt nokrāsu no Arduino izmantojot Ethernet vairogu. Jūsu Arduino nav nepieciešams pievienot datoram, tāpēc tas var darboties neatkarīgi visur, kur varat ievietot Ethernet kabeli. Patiesībā tam vajadzētu darboties arī ar Wi-Fi vairogu, bet man nav ar ko spēlēt.

ehternet-sheild-box

Ja vēlaties izlaist uz priekšu, pilns parauga kods ir iestrādāts zemāk, vai pieejams šeit. Es to pielāgoju no iesūtītā piemēra autors Gilsons Oguime. Ja jūs nekad iepriekš neesat spēlējis ar savu Ethernet vairogu, iespējams, vēlēsities ātri palaist cauri tīmekļa klienta apmācība - Es pieņemšu, ka tas zināmā mērā ir pazīstams, un es neaptveru kodu, ko izmanto tīkla IP izveidošanai utt. Mēs esam parādījuši arī jūs kā izveidot mini tīmekļa serveri ar Ethernet vairogu Piešķiriet savam Arduino projektam savu Mini-tīmekļa serveri ar Ethernet vairoguPirms kāda laika es jums parādīju, kā iestatīt interneta vadības sistēmu savam Arduino - taču tai bija jāpaliek savienotai ar datoru, izmantojot USB, lai uzturētu interneta savienojumu ... Lasīt vairāk .

Izveidojot stāvokļa izmaiņas

Jauna stāvokļa izveidošana spuldzēm ir vienkāršs jaunas izveidošanas gadījums Stīgu mainīgs un aizbēg no visām pēdiņām. Esmu pievienojis a izlases () darbojas arī tur, lai izveidotu nedaudz dinamisku animāciju. Mēģiniet padarīt nokrāsu mainīgu arī nejauši dažādām krāsām.

Stīgu komanda = "{\" ieslēgta ": patiesa, \" nokrāsa \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" pārejas laiks \ ":" + virkne (nejauša (15, 25)) + "}";

Komandas nosūtīšana

Lai faktiski nosūtītu komandu, jums ir palīga funkcija ar nosaukumu setHue (), kas kā argumentu ņem gaismas numuru un komandas virkni, piemēram:

setHue (1, komanda);

Viss, ko tas dara, ir savienojums ar tiltu, izspiež komandu kā PUT pieprasījumu kopā ar visām citām muļķībām, kas saistītas ar HTTP pieprasījuma izveidi.


klients.druka ("PUT / api /"); klients.druka (hueUsername); klients.drukā ("/ gaismas /"); klients.print (lightNum); client.println ("/ stāvoklis HTTP / 1.1"); klients.println ("uzturēt dzīvu"); klients.print ("Host:"); klients.println (hueHubIP); client.print ("Satura garums:"); klients.println (komanda.length ()); client.println ("Satura tips: teksts / vienkāršs; korsete = UTF-8 "); klients.println (); tukša rinda pirms pamatteksta. klients.println (komanda); // Nokrāsa komanda. 

Kustības sensora pievienošana

Visbeidzot, es vadu vienkāršu HC-SR501 kustības sensors uz digitālā I / O tapu 2. Kad tiek noteikta kustība, virkne stāvokļu tiek uzstumti uz tilta 2 spuldzēm, lai izveidotu lēnu, dinamisku animāciju. Kad kustības sensors tiek deaktivizēts, abiem tiek nosūtīta vienreizēja izslēgšanas komanda. Ideālā gadījumā tie tiktu atjaunoti tādā stāvoklī, kādā viņi bija pirms kustības noteikšanas, bet loģika nav tik gudra - mēs tos vienkārši ieslēgsim un izslēgsim.

Ierobežojumi

Lai arī tas, iespējams, nav optimizēts, Arduino tīkla saskarnei vienas sekundes pieprasījuma nosūtīšana prasa gandrīz sekundi. Es pārbaudīju to pašu komandu no Mac, izmantojot to pašu Ethernet savienojumu, un tā bija spējīga desmit līdz divdesmit reizes pārsniegt ātrumu (šeit ir AppleScript ja vēlaties izmēģināt). Līdz ar to jebkura veida ātra animācija (es mēģināju radīt mirgojošas sveces efektu) no Arduino vienkārši nav iespējama. Tas nedrīkstētu būt problēma lielākajai daļai projektu, tikai ātrgaitas gaismas animācijām, taču ir labi zināt, ka ir ierobežojums.

Ir arī grūti pilnībā parsēt jebkuru JSON reakciju, ko saņemat no tilta; Arduino nepietiek tikai RAM, lai saglabātu visus neapstrādātos datus. Šī iemesla dēļ jūs varētu vēlēties galvenokārt aprobežoties ar sūtīšanu.

Kapāt nokrāsu

Tagad, kad esat bruņots ar zināšanām par to, kā pilnīgi neatkarīgi vadīt Hue, tas atver Hue mājas automatizācijas hacks pasauli. Patiesais jautājums ir: ko jūs uztaisīsit?

Džeimsam ir mākslīgā intelekta bakalaura grāds, un viņš ir sertificēts CompTIA A + un Network +. Viņš ir galvenais MakeUseOf izstrādātājs un brīvo laiku pavada, spēlējot VR peintbolu un galda spēles. Kopš mazotnes viņš būvēja datorus.