Innehållsförteckning:
- Steg 1: Kom igång
- Steg 2: Hue App
- Steg 3: Anslut bron
- Steg 4: IP -adress
- Steg 5:
- Steg 6: Debug Your Hue
- Steg 7: Låt oss komma igång
- Steg 8:
- Steg 9: Låt oss göra något med lamporna
- Steg 10:
- Steg 11: Låt oss styra ljuset
- Steg 12:
- Steg 13:
- Steg 14:
- Steg 15:
- Steg 16:
- Steg 17:
- Steg 18:
- Steg 19:
Video: IoT School Project Philips Hue: 19 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Det här är en manual som jag var tvungen att skriva för skolan. Det är inte komplett och jag är inte säker på om du ens kan använda det. Min kunskap om API: er är ett minimum. Vi ville göra en interaktiv spegel med lampor på baksidan som reagerade på vädret, ljus utifrån etc.
Jag tittade på hur jag kunde programmera en Philips Hue -lampa med en Arduino. I detta förklarar jag alla mina steg och hur långt jag har kommit. Jag har inte lyckats programmera nyansen med Arduino men jag tycker att det är en bra start.
Jag har behövt detta: en Arduino en nyanslampa och ett Philips Hue -utvecklarkonto
Källor: https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/en/latest/e…https:// www.makeuseof.com/tag/control-philips-hue-…
Steg 1: Kom igång
Innan du kan komma åt API -dokumentationen måste du registrera dig som utvecklare. Det är gratis, men du måste acceptera villkoren. Du kan göra en här>
Steg 2: Hue App
Ladda ner den officiella Philips Hue -appen. Anslut din telefon till det nätverk du vill att Hue -bron är på.
Steg 3: Anslut bron
Anslut din bro med ditt nätverk och fungerar korrekt. Testa att smartphone -appen kan styra lamporna på samma nätverk. Det måste vara på samma Wi-Fi-nätverk.
Steg 4: IP -adress
Då måste du upptäcka IP -adressen för bron i ditt nätverk. Tryck på länken för att ansluta till bron i appen och försök att styra lamporna.
Steg 5:
Om allt fungerar, gå till inställningsmenyn i appen. Gå sedan till "Min bro", gå till "Nätverksinställningar". Stäng av DHCP -växeln så ser du IP -adressen till bron. Notera IP -adressen och slå sedan på DHCP igen.
Steg 6: Debug Your Hue
När du skrev det måste du felsöka din nyans. Du behöver IP-adressen för detta steg. Du måste besöka nästa webbplats.
/debug/clip.html
Gränssnittet kommer att se ut så här på bilden. Detta är grunden för all webbtrafik och för nyans RESTful -gränssnittet.
Jag fick den här informationen om det vilsamma gränssnittet på Philips Hue -webbplatsen.
URL: detta är faktiskt den lokala adressen till en specifik resurs (sak) inuti nyanssystemet. Det kan vara ljus, en grupp ljus eller många fler saker. Detta är objektet du kommer att interagera med inom detta kommando.
En kropp: detta är den del av meddelandet som beskriver vad du vill ändra och hur. Här anger du i JSON -format resursnamnet och värdet du vill ändra/lägga till.
En metod: här kan du välja mellan de 4 HTTP -metoder som nyansanropet kan använda.
GET: detta är kommandot för att hämta all information om den adresserade resursen
PUT: detta är kommandot för att ändra en adresserad resurs
POST: detta är kommandot för att skapa en ny resurs i den adresserade resursen
DELETE: detta är kommandot för att ta bort den adresserade resursen Svar: I det här området ser du svaret på ditt kommando. Även i JSON -format.
Steg 7: Låt oss komma igång
Nu behöver vi ett slumpmässigt genererat användarnamn som bron skapar för dig. Du får en genom att fylla i denna.
Sätt in webbadressen:
/api/
Sätt i KROPPEN:
och tryck på GET
Detta kommando säger i princip "snälla skapa en ny resurs inuti /api" (där användarnamnen sitter) med följande egenskaper. Först får du ett fel, och det beror på att det är säkerhetssteget för Philips Hue. Genom att trycka på knappen bevisar de att du har fysisk åtkomst till bron.
Steg 8:
Tryck nu på knappen på bron och klicka på POST igen.
Nu får du ett användarnamn som bron skapade åt dig.
Steg 9: Låt oss göra något med lamporna
Kopiera ditt användarnamn och lägg det på följande rad.
Lägg detta i din URL
/api//lights
Tryck på GET
Du bör få ett JSON -svar med alla lampor i ditt system och deras namn.
Steg 10:
Jag lånade några Hue Lights från skolan, den jag använder är den med id 3. Jag vill ha specifik information om detta ljus.
Lägg det här bredvid webbadressen du redan hade:
/api//lights/3
Tryck på GET
Nu får du all information om Led 3 (om du har ett annat nummer som 1 ser du information om det).
Steg 11: Låt oss styra ljuset
Du ser i "tillstånd" att min LED är "på". Vi vill styra ljuset i "tillstånd".
Lägg det här bredvid URL: en du redan hade: https:/// api// lights/ 3/ state
Sätt nästa rad i BODY
Tryck på PUT
Nu kommer ditt ljus att släckas! Ändra värdet i kroppen till true och ljuset tänds igen.
Steg 12:
Nu fungerar allt. Jag vill göra det här med min Arduino. Jag tittade på länken Philips Hue gav för att ändra ljusfärgen. Men du behöver Python för detta, jag har aldrig arbetat med Python så jag letade efter något annat.
Om du gillar att titta på den här koden har jag Github -länken här:
github.com/bsalinas/ArduinoHue
Steg 13:
Jag såg hur jag kunde få information från denna utvecklarwebbplats till min arduino. För det mesta förstod jag inte språket. Men jag hittade lite kod på en webbplats från James Bruce.
Detta är länken till webbplatsen.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Steg 14:
Först såg jag att han använde en Ethernet -kabel. Jag hade bara en Hue -lampa och Bridge en Arduino, och lite förståelse för kod. Det tog ett tag innan jag förstod hans kod, men jag förstår fortfarande inte riktigt det.
Jag lade först till detta bibliotek för internet.
#omfatta
Detta är för ditt nätverk (det måste vara samma som Hue -lampan)
const char* ssid = ""; // lägg här ditt WiFi -nätverk SSIDconst char* password = ""; // lägg här ditt WiFi -nätverkslösenord
Det här är ID: n för din Bridge och användarnamnet som din bridge gav dig. (Jag vet inte var 80 -talet står för men när jag gjorde lite research såg jag att det användes för nätverk).
// Nyanskonstanter const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue användarnamn const int hueHubPort = 80;
// Nyansvariabler bool hueOn; // på/av int hueBri; // ljusstyrka värde long hueHue; // nyansvärde String hueCmd; // Hue -kommando
osignerad lång buffert = 0; // buffert för mottagen datalagring osignerad lång addr;
Steg 15:
För tomrumsinställningen gjorde jag mest för internetanslutningen. I den här koden letar Arduino om han kan ansluta till nätverket.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Ansluter till %s", ssid);
WiFi.begin (ssid, lösenord);
medan (WiFi.status ()! = WL_CONNECTED) {
fördröjning (500);
Serial.print ("."); }
Serial.println ("ansluten"); }
Steg 16:
I James loop såg jag att han hade ett If and else -uttalande. Men det var för ethernet -kabeln, så jag försökte lämna detta. Jag försökte också ibland justera det, men jag visste inte ännu med mycket data. Vissa saker i koden förstod jag, i strängen finns data som ges till Hue -ljuset.
void loop () {
// En serie med fyra provkommandon, vilken färg bleknar två ljus mellan rött och rosa. Läs om Hue API // -dokumentationen för mer information om de exakta kommandona som ska användas, men observera att citattecken måste undvikas.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+String (random (15, 25))+"}"; setHue (1, kommando);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" övergångstid ":"+String (random (15, 25))+"}"; setHue (2, kommando);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" övergångstid / ":"+String (random (15, 25))+"}"; setHue (1, kommando);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" övergångstid / ":"+String (random (15, 25))+"}"; setHue (2, kommando);
}
Steg 17:
Nästa kod var en booleskt, men i Arduino måste du skriva Bool. Först fick jag många fel på grund av ordet klient. Så jag letade upp det och såg att någon kod använde raden "WifiClient -klient;". Så jag använde det till och det fungerade.
I if -satsen ser du ofta client.print. Om du tittar in i koden ser du att webbadressen du angav tidigare är uppdelad i bitar. Ange nu din egen kod. Jag var tvungen att välja mitt tredje LED -ljus.
/ * setHue () är vår huvudsakliga kommandofunktion, som måste skickas till ett lätt nummer och en * korrekt formaterad kommandosträng i JSON -format (i grunden en Javascript -stilmatris med variabler * och värden. Den gör sedan en enkel HTTP PUT -begäran till bron vid den IP som angavs i början. */
bool setHue (int lightNum, String -kommando) {
WiFiClient -klient;
if (client.connect (hueHubIP, hueHubPort)) {
medan (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); // hueLight zero based, lägg till 1 client.println ("3/state"); // här ändrade jag nyansnamnet och stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Content-Length:"); client.println (command.length ()); client.println ("Content-Type: text/plain; charset = UTF-8"); client.println (); // tom rad före body client.println (kommando); // Hue -kommando
} client.stop (); återvända sant; // kommando kört}
annars returnera falskt; // kommandot misslyckades}
Steg 18:
Vid den andra booleska gjorde jag samma sak med att ändra några ord. Jag laddade upp den för att se om den fungerade.
/* En hjälpfunktion om din logik beror på ljusets nuvarande tillstånd. * Detta anger ett antal globala variabler som du kan kontrollera för att ta reda på om en lampa för närvarande är tänd eller inte * och nyansen etc. Behövs inte bara för att skicka ut kommandon */
bool getHue (int lightNum) {
WiFiClient -klient;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); client.println ("3/state"); client.print ("Host:"); client.println (hueHubIP); client.println ("Innehållstyp: applikation/json"); client.println ("keep-alive"); client.println ();
medan (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // om lampan lyser, ställ in variabeln till true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // ställ in variabel till ljusstyrka värde client.findUntil ("\" nyans / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // ställ in variabel till nyansvärdesbrytning; // inte fångar andra ljusattribut ännu}} client.stop (); återvända sant; // fångad på, bri, hue} annars returnera false; // fel vid läsning på, bri, nyans}
Steg 19:
Jag tror att jag skulle kunna ansluta till Philips Hue. Jag får information men den måste fortfarande användas.
Tyvärr går detta utöver vad jag kan koda. Om du vet svaret, eller om det finns riktiga fel som måste korrigeras, vill jag gärna höra det.:-)
Rekommenderad:
Dela och förläng Philips Hue Lightstrip: 8 steg (med bilder)
Dela och förläng Philips Hue Lightstrip: Jag har lagt till fler " smarta hem " typ prylar till mitt hus, och en av de saker jag har lekt med är Philips Hue Lightstrip. Det är en remsa med LED -lampor som kan styras från en app eller från en smart assistent som Alexa eller
Fantastisk School Spy Gadget! Invisible Ink Pen Hack: 6 steg
Fantastisk School Spy Gadget! Invisible Ink Pen Hack: Med denna fantastiska hack kan du skicka hemliga meddelanden till någon eller till och med fuska i klassprov
Gledopto: Billigt Philips Hue Light Strip Alternativ: 3 steg
Gledopto: Billigt Philips Hue Light Strip-alternativ: Philips Hue säljer för närvarande sina Philips Hue Light-remsor för endast $ 71-90 för bara 2 meter. Jag tyckte att detta var ett mycket absurt pris så jag började leta efter alternativ. Jag kom över ett märke som heter Gledopto som gör LED -bandkontroller som
DIY Philips Hue Panel Light: 4 steg (med bilder)
DIY Philips Hue Panel Light: Jag köpte nyligen några Philips Hue -lampor till mitt sovrum. De är bra! Jag kan styra dem med min röst med hjälp av Alexa och även styra dem via min telefon. Jag försökte hitta en färgskiftande panelbelysning men som du kanske känner till ser Philips Hue inte
Mood Projector (Hacked Philips Hue Light With GSR) TfCD: 7 steg (med bilder)
Mood Projector (Hacked Philips Hue Light With GSR) TfCD: Av Laura Ahsmann & Maaike Weber Syfte: Lågt humör och stress är en stor del av det moderna snabba livet. Det är också något som är osynligt utifrån. Tänk om vi kunde visuellt och akustiskt projicera vårt stressnivå med