Sadržaj:
- Korak 1: Započnite
- Korak 2: Aplikacija Hue
- Korak 3: Povežite most
- Korak 4: IP adresa
- Korak 5:
- Korak 6: Otklonite pogreške u boji
- Korak 7: Počnimo
- Korak 8:
- Korak 9: Učinimo nešto sa svjetlima
- Korak 10:
- Korak 11: Upravljajmo svjetlom
- Korak 12:
- Korak 13:
- Korak 14:
- Korak 15:
- Korak 16:
- Korak 17:
- Korak 18:
- Korak 19:
Video: IoT School Project Philips Hue: 19 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Ovo je priručnik koji sam morao napisati za školu. Nije potpun i nisam siguran možete li ga uopće koristiti. Moje znanje o API -ima je minimum. Željeli smo napraviti interaktivno ogledalo sa svjetlima na stražnjoj strani koja bi reagirala na vremenske uvjete, svjetlo izvana itd.
Pogledao sam kako mogu programirati Philips Hue lampu sa Arduinom. U ovom tekstu objašnjavam sve svoje korake i dokle sam stigao. Nisam uspio programirati Hue s Arduinom, ali mislim da je to dobar početak.
Trebalo mi je ovo: Arduino hue lampa most Bridge Philips Hue račun programera
Izvori: 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-…
Korak 1: Započnite
Prije nego što pristupite API dokumentaciji, morate se registrirati kao programer. Besplatno je, ali morate prihvatiti uslove i odredbe. Možete ih napraviti ovdje>
Korak 2: Aplikacija Hue
Preuzmite službenu aplikaciju Philips Hue. Povežite telefon sa mrežom na kojoj želite da Hue bridge bude uključen.
Korak 3: Povežite most
Povežite svoj most s mrežom i ispravno funkcionira. Testirajte da li aplikacija za pametni telefon može upravljati svjetlima na istoj mreži. Mora biti na istoj Wi-Fi mreži.
Korak 4: IP adresa
Zatim morate otkriti IP adresu mosta na vašoj mreži. Pritisnite vezu za povezivanje s mostom u aplikaciji i pokušajte kontrolirati svjetla.
Korak 5:
Ako sve radi, idite na izbornik postavki u aplikaciji. Zatim idite na “Moj most”, idite na “Mrežne postavke”. Isključite DHCP prekidač i vidjet ćete IP adresu mosta. Zabeležite IP adresu, a zatim ponovo uključite DHCP.
Korak 6: Otklonite pogreške u boji
Kada ste to zapisali, morate otkloniti greške u Hueu. Za ovaj korak vam je potrebna IP adresa. Morate posjetiti sljedeću web lokaciju.
/debug/clip.html
Sučelje će izgledati ovako na slici. Ovo je osnova cijelog web prometa i nijansi RESTful sučelja.
Dobio sam ove informacije o sučelju Restful web stranice Philips Hue.
URL: ovo je zapravo lokalna adresa određenog resursa (stvari) unutar hue sistema. To može biti svjetlo, grupa svjetala ili mnogo više stvari. Ovo je objekt s kojim ćete komunicirati unutar ove naredbe.
Tijelo: ovo je dio poruke koji opisuje šta želite promijeniti i kako. Ovdje unosite, u JSON formatu, ime resursa i vrijednost koju želite promijeniti/dodati.
Metoda: ovdje imate izbor od 4 HTTP metode koje hue poziv može koristiti.
GET: ovo je naredba za dohvaćanje svih informacija o adresiranom resursu
PUT: ovo je naredba za izmjenu adresiranog resursa
POST: ovo je naredba za kreiranje novog resursa unutar adresiranog resursa
DELETE: ovo je naredba za brisanje adresiranog resursa Odgovor: U ovom području ćete vidjeti odgovor na svoju naredbu. Takođe u JSON formatu.
Korak 7: Počnimo
Sada nam treba nasumično generirano korisničko ime koje most kreira za vas. Dobićete jedan popunjavajući ovo.
Unesite URL:
/api/
Stavite u TELO:
i pritisnite GET
Ova naredba u osnovi kaže "molim vas stvorite novi resurs unutar /api" (gdje se nalaze korisnička imena) sa sljedećim svojstvima. U početku ćete dobiti grešku, a to je zato što je to sigurnosni korak kompanije Philips Hue. Pritiskom na dugme dokazuju da imate fizički pristup mostu.
Korak 8:
Sada pritisnite dugme na mostu i ponovo kliknite POST.
Sada ćete dobiti korisničko ime koje je most napravio za vas.
Korak 9: Učinimo nešto sa svjetlima
Upišite svoje korisničko ime i stavite ga u sljedeći red.
Stavite ovo u svoj URL
/api//lights
Pritisnite GET
Trebali biste dobiti JSON odgovor sa svim svjetlima u vašem sistemu i njihovim imenima.
Korak 10:
Pozajmio sam neke Hue Lights iz škole, onu koju koristim je ona sa id 3. Želim konkretne informacije o ovom svjetlu.
Stavite ovo pored URL -a koji ste već imali:
/api//lights/3
Pritisnite GET
Sada dobivate sve informacije o Ledu 3 (ako imate još jedan broj poput 1 vidjet ćete podatke o tom).
Korak 11: Upravljajmo svjetlom
Vidite u "stanju" da je moja lampica "uključena". Želimo kontrolirati svjetlo u "stanju".
Stavite ovo pored URL -a koji ste već imali: https:/// api// lights/ 3/ state
Stavite sljedeći red u BODY
Pritisnite PUT
Sada će se vaše svjetlo ugasiti! Promijenite vrijednost u tijelu na true i svjetlo će se ponovo uključiti.
Korak 12:
Sada sve funkcionira, želim to učiniti sa svojim Arduinom. Pogledao sam vezu koju je Philips Hue dao da promijeni boju svjetla. Ali za ovo vam je potreban Python, nikada nisam radio s Pythonom pa sam tražio nešto drugo.
Ako želite pogledati ovaj kod, ovdje imam vezu do Githuba:
github.com/bsalinas/ArduinoHue
Korak 13:
Pogledao sam kako mogu doći do informacija sa ove web stranice za programere na moj arduino. Većinu vremena nisam razumio jezik. Ali našao sam neki kod na web stranici od Jamesa Brucea.
Ovo je veza do web stranice.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Korak 14:
Prvo sam vidio da koristi Ethernet kabel. Imao sam samo Hue žarulju i Bridge Arduino, a slabo razumijevanje koda. Trebalo mi je neko vrijeme da shvatim njegov kod, ali ga još uvijek ne razumijem.
Ja sam ovu biblioteku prvi put dodao za internet.
#include
Ovo je za vašu mrežu (mora biti isto što i Hue žarulja)
const char* ssid = ""; // ovdje postavite svoju WiFi mrežu SSIDconst char* password = ""; // ovdje unesite svoju lozinku za WiFi mrežu
Ovo su ID vašeg mosta i korisničko ime koje vam je most dao. (Ne znam gdje označava 80, ali kad sam malo istražio, vidio sam da se koristi za mreže).
// Konstante nijanse const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue korisničko ime const int hueHubPort = 80;
// Hue varijable bool hueOn; // uključivanje/isključivanje int hueBri; // vrijednost svjetline long hueHue; // vrijednost hue String hueCmd; // Naredba Hue
nepotpisani dugi bafer = 0; // bafer za pohranu primljenih podataka unsigned long addr;
Korak 15:
Za postavljanje praznine najviše sam učinio za internetsku vezu. U ovom kodu Arduino traži može li se povezati s mrežom.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Povezivanje na %s", ssid);
WiFi.begin (ssid, lozinka);
while (WiFi.status ()! = WL_CONNECTED) {
kašnjenje (500);
Serial.print ("."); }
Serial.println ("povezano"); }
Korak 16:
U petlji Jamesa vidio sam da ima naredbu If i else. Ali to je bilo za ethernet kabel, pa sam pokušao ovo izostaviti. I ja sam ponekad pokušavao to prilagoditi, ali još nisam znao s puno podataka. Neke stvari u kodu koje sam razumio, u nizu su podaci koji se daju svjetlu Hue.
void loop () {{100} {101}
// Niz od četiri uzorka naredbi, čija boja gasi dva svjetla između crvene i ružičaste. Pročitajte dokumentaciju Hue API // za više detalja o tačnim naredbama koje ćete koristiti, ali imajte na umu da se navodnici moraju izbjeći.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" tranzitionntime / ":"+String (nasumično (15, 25))+"}"; setHue (1, naredba);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" tranzitionntime / ":"+String (nasumično (15, 25))+"}"; setHue (2, naredba);
naredba = "{" nijansa / ": 65280, \" sat / ": 255, \" bri / ": 255, \" prijelazno vrijeme / ":"+niz (nasumično (15, 25))+"}"; setHue (1, naredba);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" tranzicijsko vrijeme / ":"+niz (nasumično (15, 25))+"}"; setHue (2, naredba);
}
Korak 17:
Sljedeći je kod bio Boolean, ali u Arduinu morate napisati Bool. U početku sam imao mnogo grešaka zbog riječi klijent. Pa sam pogledao i vidio da neki kod koristi liniju "WifiClient client;". Tako sam navikao i uspjelo je.
U if naredbi često vidite client.print. Ako pogledate kôd, vidjet ćete da je URL koji ste ranije unijeli podijeljen na dijelove. Sada unesite vlastiti kôd. Morao sam da izaberem svoje treće LED svetlo.
/ * setHue () je naša glavna naredbena funkcija, kojoj je potrebno proslijediti lagani broj i * pravilno formatiran niz naredbi u JSON formatu (u osnovi niz varijabli * i vrijednosti u stilu Javascript -a. Zatim šalje jednostavan HTTP PUT zahtjev za most na IP adresi navedenoj na početku. */
bool setHue (int lightNum, naredba String) {
WiFiClient klijent;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/svjetla/"); client.print (lightNum); // hueLight zasnovan na nuli, dodaj 1 client.println ("3/stanje"); // ovdje sam promijenio ime nijanse i 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 (); // prazan red ispred tijela client.println (naredba); // Naredba Hue
} client.stop (); return true; // naredba izvršena}
else return false; // naredba nije uspjela}
Korak 18:
Na drugom Boolean -u uradio sam istu stvar promijenivši neke riječi. Postavio sam ga da vidim da li radi.
/* Pomoćna funkcija u slučaju da vaša logika ovisi o trenutnom stanju svjetla. * Ovo postavlja brojne globalne varijable koje možete provjeriti da biste saznali je li svjetlo trenutno uključeno ili ne * i nijansu itd. Nije potrebno samo za slanje naredbi */
bool getHue (int lightNum) {
WiFiClient klijent;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/svjetla/"); client.print (lightNum); client.println ("3/stanje"); client.print ("Domaćin:"); client.println (hueHubIP); client.println ("Vrsta sadržaja: aplikacija/json"); client.println ("nastavi da živiš"); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" na / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // ako je svjetlo uključeno, postavite varijablu na true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // postavljanje varijable na vrijednost svjetline client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // postavljanje varijable na hue value break; // još ne bilježimo druge atribute svjetlosti}} client.stop (); return true; // snimljeno, bri, hue} else return false; // greška pri čitanju, bri, hue}
Korak 19:
Mislim da bih mogao uspostaviti vezu s Philips Hueom. Primam informacije, ali ih ipak treba iskoristiti.
Nažalost, ovo nadilazi ono što mogu kodirati. Ako znate odgovor ili postoje stvarne greške koje treba ispraviti, volio bih to čuti.:-)
Preporučuje se:
Ponovna upotreba Philips svjetla za buđenje HF3550 + Ipod Touch 4.: 5 koraka
Ponovna upotreba Philips svjetla za buđenje HF3550 + Ipod Touch 4.: UREDITE 2019/10/28 Otpremio sam novu napuknutu IPA datoteku (hvala irastignac) i ažurirao vezu anonimne datoteke. Trebalo bi spriječiti trenutak kada vas zamole da unesete moj Apple ID.EDIT 2019/10/22 čini se da je IPA datoteka Philipsa potpisana mojom jabukom
Podijelite i produžite svjetlosnu traku Philips Hue: 8 koraka (sa slikama)
Podijelite i proširite Philips Hue Lightstrip: Dodao sam još " pametnog doma " unosite spravice u moju kuću, a jedna od stvari s kojima sam se igrao je Philips Hue Lightstrip. To je traka LED svjetla koja se može kontrolirati iz aplikacije ili od pametnog pomoćnika poput Alexa ili
Gledopto: Jeftina svjetlosna traka Philips Hue Alternativa: 3 koraka
Gledopto: Jeftini Philips Hue Light Strip Alternativa: Philips Hue trenutno prodaje svoje Philips Hue Light trake za samo 71-90 USD za samo 2 metra. Smatrala sam da je ovo vrlo apsurdna cijena pa sam počela tražiti alternative. Naišao sam na robnu marku Gledopto koja proizvodi LED tračne kontrolere koji
DIY Philips Hue panel svjetlo: 4 koraka (sa slikama)
Uradi sam Philips Hue Panel Light: Nedavno sam kupio Philips Hue svjetla za svoju spavaću sobu. Odlični su! Mogu ih kontrolirati svojim glasom pomoću Alexa, a mogu ih kontrolirati i putem telefona. Pokušao sam pronaći svjetlo ploče koja mijenja boju, ali kao što možda znate, Philips Hue ne vidi
Projektor raspoloženja (sjeckani Philips Hue Light sa GSR) TfCD: 7 koraka (sa slikama)
Projektor raspoloženja (sjeckano svjetlo Philips Hue sa GSR -om) TfCD: Laura Ahsmann & Maaike Weber Svrha: Loše raspoloženje i stres veliki su dio modernog brzog života. To je takođe nešto što je spolja nevidljivo. Što ako bismo mogli i vizualno i akustički projicirati razinu stresa s