Mainos

Philips Hue -sarjavalot eivät todellakaan ole halpoja (on olemassa joitain vaihtoehtoja Philips Hue-vaihtoehdot, jotka ovat todella sen arvoisiaPhilips Hue -järjestelmä johtaa lataukseen älykkäiden valaistusten osalta, mutta arvokkaita vaihtoehtoja on olemassa. Olemme valinneet kolme, jotka kaikki tarjoavat saman perusominaisuuden ja hakkeroitavuuden. Lue lisää ), mutta yksi asia, jota arvostan todella, on hyvin dokumentoitu API Mitä ovat sovellusliittymät ja miten avoimet sovellusliittymät muuttavat InternetiäOletko koskaan miettinyt, kuinka tietokoneesi ja käymäsi verkkosivustojen ohjelmat "puhuvat" toistensa kanssa? Lue lisää omien Hue-sovellusten luomiseen. Tänään näytän sinulle, kuinka ohjata sävyvaloitasi Arduinosta - lisäämällä sitten yksinkertaisen liikeanturin.

Miksi teemme tämän? Koska kodin automaatiojärjestelmät voivat olla melko jäykkiä ja kalliita. Oppimalla hallitsemaan sävyä Arduinosta avaat ovet moniin räätälöityihin kotiautomaatiohankkeisiin, joita yksinkertaisesti ei voida lyödä hyllyltä pois. Jos asioiden yhteen hakkerointi ei vain ole sinun juttusi, kokeile näitä

8 upeaa Hue-sovellusta 7 parasta Philips Hue -sovellusta Androidille ja iPhonelleEtsitkö parhaita Philips Hue -sovelluksia, joita voit käyttää älypuhelimiesi kanssa? Tässä on useita hienoja sovelluksia iPhonelle ja Androidille. Lue lisää sen sijaan.

Sävyjärjestelmä

Saako vähän teknistä tietoa, jotta tiedät alla olevat järjestelmät, joiden kanssa työskentelet. Sävyvalot luovat mesh verkko Mesh Networks: Viestinnän tulevaisuusMesh-verkot ovat lähes haavoittumattomia. Mesh-verkossa ei ole kuristuspisteitä, joiden läpi kaikki liikenne kulkee. Sen sijaan tietoa siirretään yhdestä laitteesta toiseen, kunnes se saavuttaa määränpäähänsä. Lue lisää , käyttämällä lyhyen kantaman langatonta protokollaa nimeltä ZigBee - erityisesti, he ovat ZigBee Light Link sertifioitu, mikä tarkoittaa, että muiden ZLL-tuotteiden tulisi toimia myös sävyn rinnalla (teoriassa).

Vaikka ZigBee-verkon verkkoominaisuus on teknisesti pieni, se tarkoittaa, että jokainen uusi lamppu laajentaa verkkoa, välittäen viestejä muihin lamppuihin. Tämä tarkoittaa, että jos sinulla on vaikeuksia ohjata valoa talon toisella puolella, yritä sijoittaa toinen valo näiden kahden väliin.

Zigbee on hieno protokolla, mutta se on aivan erilainen kuin Wi-Fi tai kiinteä tietokoneverkko, joten tarvitsemme Philips Hue Bridge -sovelluksen liittyäksemme molempiin. Hue-silta käyttää muokattua avoimen lähdekoodin linux-ohjelmistoa, joka lähettää perusverkkopalvelinta.

Tätä näet, jos kirjoitat vain Hue-sillan IP-osoitteen selaimeesi. Et voi kuitenkaan tehdä paljon täältä.
Tätä näet, jos kirjoitat vain Hue-sillan IP-osoitteen selaimeesi. Et voi kuitenkaan tehdä paljon täältä.

Voit selvittää merkkivalojen nykyisen tilan ja hallita niitä vuorovaikutuksessa tämän paikallisen web-palvelimen kanssa.

Se on kauniisti yksinkertainen järjestelmä ja kypsä DIY-projekteihin. Kudos Philipsille siitä, että tämä asia on niin hakkeroitavissa.

Alkaen

Sinun on tehtävä se, ennen kuin voit käyttää sovellusliittymädokumentaatiota rekisteröidy kehittäjäksi. Se on ilmainen, mutta sinun on hyväksyttävä käyttöehdot. Tee tämä nyt.

Jokaisen, joka tuntee tavanomaiset verkkopalvelut tai Javascriptin, pitäisi voida työskennellä Hue: kaikki tiedot välitetään ja vastaanotetaan muodossa JSON-paketit Mikä on JSON? Yleisön yleiskatsausHaluatpa olla web-kehittäjä vai ei, on hyvä idea ainakin tietää, mikä on JSON, miksi se on tärkeä ja miksi sitä käytetään kaikkialla verkossa. Lue lisää .

Jotta voit tarkastella tätä toiminnassa, sinun on tiedettävä Hue-sillan IP-osoite. Voit tehdä tämän muutamalla tavalla:

  • Katso reitittimen järjestelmänvalvojan DHCP-osoitteen määritystaulukkoa
  • Suorita verkon kartoitusohjelma kuten IP-skannerin koti
  • Kokeile Philips UPnP -välittäjätyökalu
  • Ping “philips-hue.home”
verkon kartoitus sillan löytämiseksi

Kun olet valmis, siirry eteenpäin ja kirjoita se selaimen osoiteriville debug / clip.html liitetty URL-osoitteeseen. Minun tapauksessani tämä oli:

http://192.168.1.216/debug/clip.html

Tämä on virheenkorjaustyökalu, jonka avulla voit lähettää ja vastaanottaa JSON-paketteja yksinkertaisen verkkoliittymän kautta. Ensimmäinen askel on ottaa kehittäjäprofiili käyttöön itse Hue-sillassa - joka on oletuksena poistettu käytöstä turvallisuussyistä. Liitä seuraava RUNKO-kenttään, jätä URL-osoite nimellä /api/, ja lähetä POST-pyyntö napsauttamalla Lähetä-painike:

{"devicetype": "testikäyttäjä", "käyttäjänimi": "newdeveloper"}

Kun teet tämän ensimmäisen kerran, vastauksessa näet jonkin linkkipainikkeen painettuna. Tämä on suojausominaisuus, joka edellyttää, että kaikki uudet käyttämäsi sovellukset on fyysisesti valtuutettu. Mene ja löydä silta, paina painiketta ja lähetä sama pyyntö uudelleen 30 sekunnin sisällä. Tällä kertaa saat erilaisen vastauksen, ja käyttäjälle annetaan valtuutus. Jos haluat käyttää toista käyttäjänimeä, lue sovellusliittymädokumentit luoda käyttäjiä. Toistaiseksi tämä riittää.

Kun käyttäjän on asennettu, perus-URL-osoitteesta, jonka kanssa sinun tulee olla vuorovaikutuksessa, tulee /api/newdeveloper/. Voit lähettää GET-pyynnön saadaksesi selville kaiken, mitä Bridge tietää nykyisin käytetyistä valoista, hälytyksistä, kohtauksista ja lyhyestä lokista käytetyistä sovelluksista. Tässä on esimerkki joistakin yhden polttimen tilatiedoista.


"tila": {"päällä": totta, "bri": 254, "sävy": 14910, "sat": 144, "vaikutus": "ei mitään", "xy": [0.4596, 0.4105], "ct": 369, "hälytys": "ei mitään", "värimuoto": "ct", "tavoitettavissa": vääriä}, "tyyppi": "laajennettu värivalo", "nimi": "makuuhuone 1", "malli": "LCT001", 

Huomaa, että ”Päällä”: true osavaltio ei itse asiassa näytä, onko polttimo päällä vai ei; vain että Bridge-asetusten mukaan se pitäisi olla päällä. ”Tavoitettavissa”: väärä voivat osoittaa sekä liian kaukana olevan polttimon että yksinkertaisesti sammutetun virtakytkimestä.

Viimeinen esimerkki ennen kuin integroimme tämän Arduinoon: Varmista, että yksi valosi on näkyvissä ja palaa, ja tiedät, mikä numero se on. Muuta URL-osoitteeksi /api/newdevelopers/lights/1/state (vaihtamalla numeron valoon) ja lähetä PUT-pyyntö seuraavilla tiedoilla:

{"värisävy": 50100, "sat": 255, "bri": 255}

Sinun pitäisi nähdä valosi reagoivan näin:

värisävy

Mitä olet tehnyt, on työntää uusi tila polttimeen. Voit myös lisätä ”siirtymäajan”, joka on primitiivinen animaatiomenetelmä, joka osoittaa, kuinka monta sekuntia haluat tilan vaihtavan.

Väri voidaan asettaa sisään useilla eri tavoilla, mutta valitettavasti ei ole yksinkertaista tapaa lähettää RGB-arvoa. Yllä olevassa esimerkissä lähetimme värisävy, SATuraatio ja brightness. Yritä muuttaa värisävyarvoa ja lähettää PUT-pyyntö uudelleen.

Työskentelee Arduinolta

Siellä on olemassa Hue / Arduino -kirjasto nimeltään ArduinoHue johon Philips itse linkittää API-dokumentaatiossa, mutta tämän kirjaston ongelmana on, että se kommunikoi USB-yhteyden kautta tietokoneellesi, jonka on myös suoritettava Python-sovellus jatkuvasti. Eugh. Voit myös antaa tietokoneesi suorittaa koko asian siinä vaiheessa ja leikata Arduino kokonaan pois.

Sen sijaan näytän sinulle, kuinka ohjata värisävyä Arduinosta käyttämällä Ethernet-suojaa. Arduino-laitetta ei tarvitse kytkeä tietokoneeseen, joten se voi toimia itsenäisesti missä tahansa, johon voit laittaa Ethernet-kaapelin. Itse asiassa sen pitäisi toimia myös Wi-Fi-suojauksen kanssa, mutta minulla ei ole sellaista, jonka kanssa leikkiä.

ehternet-sheild-box

Jos haluat ohittaa eteenpäin, koko näytekoodi on upotettu alapuolelle tai saatavana täältä. Olen mukauttanut sen lähetetystä esimerkistä kirjoittanut Gilson Oguime. Jos et ole koskaan pelannut Ethernet-suojaussasi aiemmin, saatat haluta suorittaa nopean läpi verkkoasiakasohjelma - Oletan, että tuntevat tämän jonkin verran, enkä kata koodia, jota käytetään verkko-IP: n luomiseen jne. Olemme myös osoittaneet sinulle kuinka luoda mini-web-palvelin Ethernet-suojauksella Anna Arduino-projektille oma mini-web-palvelin, jossa Ethernet-suojaJokin aika sitten näyttelin sinulle kuinka määrittää Internet-ohjausjärjestelmä Arduinollesi - mutta sen piti pysyä yhteydessä tietokoneeseen USB: n kautta Internet-yhteyden ylläpitämiseksi ... Lue lisää .

Tilamuutosten luominen

Uuden tilan luominen polttimille työntämiseksi on yksinkertainen tapa luoda uusi jono muuttuva ja välttää kaikki kaksoislainaukset. Olen lisännyt random () toimivat myös siellä luodaksesi hieman dynaamisen animaation. Yritä tehdä sävymuuttuja satunnaiseksi myös eri väreille.

Merkkijonokomento = "{\" päällä ": totta, \" sävy \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" siirtymäaika \ ":" + merkkijono (satunnainen (15, 25)) + "}";

Komennon lähettäminen

Komentosarjan lähettämiseksi sinulla on auttajatoiminto nimeltään setHue (), joka ottaa kevyen numeron ja komentojonon argumentiksi, kuten näin:

setHue (1, komento);

Ainoa mitä se tekee, on sitten yhteyden muodostaminen siltaan, spyling-komennon PUT-pyynnön lisäksi kaikkien muiden hölynpölyjen kanssa, joita HTTP-pyynnön luominen aiheuttaa.


asiakas.jälki ("PUT / api /"); asiakas.jälki (hueUsername); client.print ( "/ valot /"); asiakas.jälki (lightNum); client.println ("/ tila HTTP / 1.1"); client.println ( "keep-alive"); asiakas.print ("isäntä:"); asiakas.println (hueHubIP); asiakas.print ("Sisällön pituus:"); asiakas.println (komento.pituus ()); client.println ("Sisältötyyppi: teksti / tavallinen; charset = UTF-8" ); client.println (); // tyhjä rivi ennen runkoa. asiakas.println (komento); // Sävykomento. 

Liiketunnistimen lisääminen

Lopuksi johdin yksinkertaisen HC-SR501-liiketunnistin digitaaliseen I / O-nastaan ​​2. Kun liike havaitaan, sarja tiloja työnnetään siltaan 2 sipulille hitaan, dynaamisen animaation luomiseksi. Kun liikeanturi deaktivoituu, molemmille lähetetään kertakäyttöinen komento. Ihannetapauksessa ne palautetaan tilaan, jossa he olivat ennen liikkeen havaitsemista, mutta logiikka ei ole niin älykästä - me vain kytkemme ne päälle ja pois päältä.

rajoitukset

Vaikka myöntämättä on optimoimaton koodi, vie vain sekunnin, ennen kuin Arduinon verkkoliitäntä lähettää yhden komentopyynnön. Testasin samaa komentoa Macilta, käyttäen samaa Ethernet-yhteyttä, ja se kykeni kymmenen - kaksikymmentä kertaa nopeudella (tässä on AppleScript jos haluat testata). Näin ollen minkäänlainen nopea animaatio (yritin luoda välkyvän kynttilävaikutuksen) ei vain ole mahdollista Arduinosta. Tämän ei pitäisi olla ongelma useimmissa hankkeissa, vain nopeissa kevyissä animaatioissa, mutta on hyvä olla tietoinen rajoituksesta.

On myös vaikeaa jäsentää kaikki sillasta takaisin saamasi JSON-vastaukset. Arduinossa ei vain riitä RAM-muistin tallentamista kaikkiin raakatietoihin. Tästä syystä kannattaa ehkä rajoittaa itsesi lähettämiseen.

Hakkeroi sävy

Nyt kun olet aseistettu tietämään kuinka hallita Hueä täysin itsenäisesti, se avaa Hue-kotiautomaatio hakkeroiden maailman. Todellinen kysymys on: mitä teet?

Jamesilla on teknisen älykunnan kandidaatin tutkinto ja hän on CompTIA A + ja Network + -sertifioitu. Hän on MakeUseOfin johtava kehittäjä ja viettää vapaa-aikansa pelaamalla VR-paintballia ja lautapelejä. Hän on rakennettu tietokoneita lapsuudestaan ​​asti.