Indholdsfortegnelse:
- Trin 1: Kom godt i gang
- Trin 2: Hue App
- Trin 3: Tilslut broen
- Trin 4: IP -adresse
- Trin 5:
- Trin 6: Debug din nuance
- Trin 7: Lad os komme i gang
- Trin 8:
- Trin 9: Lad os gøre noget med lysene
- Trin 10:
- Trin 11: Lad os kontrollere lyset
- Trin 12:
- Trin 13:
- Trin 14:
- Trin 15:
- Trin 16:
- Trin 17:
- Trin 18:
- Trin 19:
Video: IoT -skoleprojekt Philips Hue: 19 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Dette er en manual, jeg skulle skrive til skolen. Det er ikke komplet, og jeg er ikke sikker på, om du overhovedet kan bruge det. Min viden om API'er er det minimale. Vi ville lave et interaktivt spejl med lys på bagsiden, der reagerede på vejret, lys udefra osv.
Jeg kiggede på, hvordan jeg kunne programmere en Philips Hue -lampe med en Arduino. I dette forklarer jeg alle mine trin, og hvor langt jeg er nået. Det er ikke lykkedes mig at programmere Hue med Arduino, men jeg synes, det er en god start.
Jeg har haft brug for dette: en Arduino a hue lampe en bridge Philips Hue udviklerkonto
Kilder: 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-…
Trin 1: Kom godt i gang
Før du kan få adgang til API -dokumentationen, skal du registrere dig som udvikler. Det er gratis, men du skal acceptere vilkårene og betingelserne. Du kan lave en her>
Trin 2: Hue App
Download den officielle Philips Hue -app. Tilslut din telefon til det netværk, du vil have Hue -broen på.
Trin 3: Tilslut broen
Forbind din bro med dit netværk og fungerer korrekt. Test, at smartphone -appen kan styre lysene på det samme netværk. Det skal være på det samme Wi-Fi-netværk.
Trin 4: IP -adresse
Derefter skal du opdage IP -adressen på broen på dit netværk. Tryk på linket for at oprette forbindelse til broen i appen, og prøv at kontrollere lys.
Trin 5:
Hvis det hele fungerer, skal du gå til indstillingsmenuen i appen. Gå derefter til "Min bro", gå til "Netværksindstillinger". Sluk for DHCP -skifteren, og du ser broens IP -adresse. Bemærk IP -adressen, og tænd derefter DHCP igen.
Trin 6: Debug din nuance
Når du skrev det ned, skal du fejlsøge din nuance. Du har brug for IP-adressen til dette trin. Du skal besøge det næste websted.
/debug/clip.html
Grænsefladen vil se sådan ud på billedet. Dette er grundlaget for al webtrafik og for farvetonen RESTful interface.
Jeg fik disse oplysninger om den afslappende grænseflade på Philips Hue -webstedet.
URL: dette er faktisk den lokale adresse for en bestemt ressource (ting) inde i farvesystemet. Det kan være lys, en gruppe lys eller mange flere ting. Dette er det objekt, du vil interagere inden for denne kommando.
En krop: dette er den del af meddelelsen, der beskriver, hvad du vil ændre, og hvordan. Her indtaster du i JSON -format det ressourcenavn og den værdi, du gerne vil ændre/tilføje.
En metode: her har du mulighed for at vælge mellem de 4 HTTP -metoder, hue -opkaldet kan bruge.
GET: dette er kommandoen til at hente alle oplysninger om den adresserede ressource
PUT: dette er kommandoen til at ændre en adresseret ressource
POST: dette er kommandoen til at oprette en ny ressource inde i den adresserede ressource
SLET: dette er kommandoen for at slette den adresserede ressource Svar: I dette område ser du svaret på din kommando. Også i JSON -format.
Trin 7: Lad os komme i gang
Nu har vi brug for et tilfældigt genereret brugernavn, som broen skaber til dig. Du får en ved at udfylde denne.
Indsæt URL'en:
/api/
Læg KROPPEN i:
og tryk på GET
Denne kommando siger dybest set "opret en ny ressource inde /api" (hvor brugernavne sidder) med følgende egenskaber. Først får du en fejl, og det er fordi det er Philips Hues sikkerhedstrin. Ved at trykke på knappen beviser de, at du har fysisk adgang til broen.
Trin 8:
Tryk nu på knappen på broen, og klik på POST igen.
Nu får du et brugernavn, som broen har lavet til dig.
Trin 9: Lad os gøre noget med lysene
Kopiér dit brugernavn og sæt det i følgende linje.
Indsæt dette i din URL
/api//lights
Tryk på GET
Du bør få et JSON -svar med alle lysene i dit system og deres navne.
Trin 10:
Jeg lånte nogle Hue Lights fra skolen, den jeg bruger er den med id 3. Jeg vil have specifikke oplysninger om dette lys.
Sæt dette ud for den URL, du allerede havde:
/api//lights/3
Tryk på GET
Nu får du al information om Led 3 (hvis du har et andet nummer som 1, vil du se oplysninger om det ene).
Trin 11: Lad os kontrollere lyset
Du ser i "tilstand", at min LED er "tændt". Vi vil kontrollere lyset i "tilstand".
Sæt dette ved siden af den URL, du allerede havde: https:/// api// lights/ 3/ state
Sæt den næste linje i KROPPEN
Tryk på PUT
Nu slukker dit lys! Skift værdien i kroppen til sand, og lyset tændes igen.
Trin 12:
Nu fungerer alt. Jeg vil gøre dette med min Arduino. Jeg kiggede på linket Philips Hue gav for at ændre lysfarven. Men du har brug for Python til dette, jeg har aldrig arbejdet med Python, så jeg ledte efter noget andet.
Hvis du kan lide at se på denne kode, har jeg Github -linket her:
github.com/bsalinas/ArduinoHue
Trin 13:
Jeg kiggede på, hvordan jeg kunne få oplysninger fra dette udviklerwebsted til min arduino. For det meste forstod jeg ikke sproget. Men jeg fandt noget kode på et websted fra James Bruce.
Dette er linket til webstedet.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Trin 14:
Først så jeg, at han brugte et Ethernet -kabel. Jeg havde kun en Hue pære og Bridge en Arduino, og lidt forståelse for kode. Det tog et stykke tid for mig at forstå hans kode, men jeg forstår det stadig ikke rigtigt.
Jeg tilføjede først dette bibliotek til internettet.
#omfatte
Dette er for dit netværk (det skal være det samme som Hue -pæren)
const char* ssid = ""; // læg her dit WiFi -netværk SSIDconst char* password = ""; // sæt her din WiFi -netværksadgangskode
Disse er din bros id og brugernavnet, din bro gav dig. (Jeg ved ikke, hvor de 80 står for, men da jeg lavede nogle undersøgelser, så jeg, at den blev brugt til netværk).
// Hue -konstanter const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue brugernavn const int hueHubPort = 80;
// Hue -variabler bool hueOn; // on/off int hueBri; // lysstyrkeværdi lang hueHue; // farvetone værdi String hueCmd; // Hue -kommando
usigneret lang buffer = 0; // buffer for modtaget datalagring usigneret lang addr;
Trin 15:
For tomrumsopsætningen gjorde jeg mest for internetforbindelsen. I denne kode leder Arduino efter, om han kan oprette forbindelse til netværket.
ugyldig opsætning () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Opretter forbindelse til %s", ssid);
WiFi.begin (ssid, adgangskode);
mens (WiFi.status ()! = WL_CONNECTED) {
forsinkelse (500);
Serial.print ("."); }
Serial.println ("tilsluttet"); }
Trin 16:
I James loop så jeg, at han havde en If and else -erklæring. Men det var til ethernet -kablet, så jeg forsøgte at lade dette være. Jeg forsøgte også nogle gange at justere det, men jeg vidste ikke endnu med en masse data. Nogle ting i koden forstod jeg, i strengen er de data, der gives til Hue -lyset.
void loop () {
// En serie på fire prøvekommandoer, hvilken farve falmer to lys mellem rødt og pink. Læs mere om Hue API // dokumentation for flere detaljer om de nøjagtige kommandoer, der skal bruges, men bemærk, at citatmærker skal undgås.
Stringkommando = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" overgangstid ":"+streng (tilfældig (15, 25))+"}"; setHue (1, kommando);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+streng (tilfældig (15, 25))+"}"; setHue (2, kommando);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" overgangstid / ":"+streng (tilfældig (15, 25))+"}"; setHue (1, kommando);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" overgangstid / ":"+streng (tilfældig (15, 25))+"}"; setHue (2, kommando);
}
Trin 17:
Den næste kode var en boolsk, men i Arduino skal du skrive bool. Først fik jeg mange fejl på grund af ordet klient. Så jeg slog det op og så, at en kode brugte linjen "WifiClient -klient;". Så jeg brugte det til og det virkede.
I if -sætningen ser du ofte client.print. Hvis du kigger på koden, vil du se, at den webadresse, du indtastede tidligere, er delt i stykker. Indtast nu din egen kode. Jeg var nødt til at vælge mit 3. LED -lys.
/ * setHue () er vores hovedkommandofunktion, som skal sendes et lysnummer og en * korrekt formateret kommandostreng i JSON -format (grundlæggende et Javascript -stil array af variabler * og værdier. Det sender derefter en simpel HTTP PUT -anmodning til broen ved den IP, der blev angivet i starten. */
bool setHue (int lightNum, strengkommando) {
WiFiClient -klient;
hvis (client.connect (hueHubIP, hueHubPort)) {
mens (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); // hueLight zero based, tilføj 1 client.println ("3/state"); // her ændrede jeg nuancenavnet og stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Indholdslængde:"); client.println (command.length ()); client.println ("Indholdstype: tekst/almindelig; charset = UTF-8"); client.println (); // tom linje før body client.println (kommando); // Hue -kommando
} client.stop (); vende tilbage sandt; // kommando udført}
ellers returner falsk; // kommando mislykkedes}
Trin 18:
Ved den anden boolske gjorde jeg det samme med at ændre nogle ord. Jeg uploadede det for at se om det fungerede.
/* En hjælperfunktion, hvis din logik afhænger af lysets aktuelle tilstand. * Dette angiver en række globale variabler, som du kan kontrollere for at finde ud af, om et lys i øjeblikket er tændt eller ej * og farvetonen osv. Ikke nødvendig bare for at sende kommandoer */
bool getHue (int lightNum) {
WiFiClient -klient;
hvis (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); client.println ("3/tilstand"); client.print ("Host:"); client.println (hueHubIP); client.println ("Indholdstype: applikation/json"); client.println ("hold dig i live"); client.println ();
mens (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // hvis lyset er tændt, indstil variabel til true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // sæt variabel til lysstyrkeværdi client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // indstil variabel til farvetoneværdi; // fanger endnu ikke andre lysattributter}} client.stop (); vende tilbage sandt; // fanget på, bri, hue} else return false; // fejl ved læsning på, bri, hue}
Trin 19:
Jeg tror, jeg kunne oprette forbindelse til Philips Hue. Jeg modtager information, men den skal stadig bruges.
Desværre går dette ud over, hvad jeg kan kode. Hvis du kender svaret, eller hvis der er reelle fejl, der skal rettes, hører jeg det gerne.:-)
Anbefalede:
Genbrug Philips Wake Up Light HF3550 + Ipod Touch 4.: 5 trin
Genbrug Philips Wake Up Light HF3550 + Ipod Touch 4th: EDIT 2019/10/28 Jeg har uploadet en ny revnet IPA -fil (tak irastignac) og opdateret det anonyme fillink. Det skulle forhindre det øjeblik, du bliver bedt om at indtaste mit æble -ID. EDIT 2019/10/22, det ser ud til, at Philips IPA -filen er signeret med mit æble
Opdel og forlæng Philips Hue Lightstrip: 8 trin (med billeder)
Opdel og udvid Philips Hue Lightstrip: Jeg har tilføjet flere " smart home " skriv gadgets til mit hus, og en af de ting, jeg har leget med, er Philips Hue Lightstrip. Det er en stribe LED -lys, der kan styres fra en app eller fra en smart assistent som Alexa eller
Gledopto: Billig Philips Hue Light Strip Alternativ: 3 trin
Gledopto: Billig Philips Hue Light Strip Alternativ: Philips Hue sælger i øjeblikket deres Philips Hue Light strips for kun $ 71-90 for kun 2 meter. Jeg fandt dette en meget absurd pris, så jeg begyndte at lede efter alternativer. Jeg stødte på et mærke kaldet Gledopto, der gør LED -stripkontroller, som
DIY Philips Hue Panel Light: 4 trin (med billeder)
DIY Philips Hue Panel Light: Jeg har for nylig købt nogle Philips Hue -lamper til mit soveværelse. De er flotte! Jeg kan styre dem med min stemme ved hjælp af Alexa og også styre dem via min telefon. Jeg forsøgte at finde et farveskiftende panellys, men som du måske er klar over, ser Philips Hue ikke
Humørprojektor (hacket Philips Hue Light With GSR) TfCD: 7 trin (med billeder)
Humørprojektor (hacket Philips Hue Light With GSR) TfCD: Af Laura Ahsmann & Maaike Weber Formål: Lavt humør og stress er en stor del af det moderne hurtige liv. Det er også noget, der er usynligt udefra. Hvad hvis vi kunne visuelt og akustisk projektere vores stressniveau med