Sisukord:
- 1. samm. Alustage
- Samm: rakendus Hue
- Samm: ühendage sild
- Samm: IP -aadress
- 5. samm:
- 6. samm: siluge oma tooni
- 7. samm: alustame
- 8. samm:
- 9. samm: teeme tuledega midagi
- 10. samm:
- 11. samm: kontrollime valgust
- 12. samm:
- 13. samm:
- 14. samm:
- 15. samm:
- 16. samm:
- 17. samm:
- 18. samm:
- 19. samm:
Video: IoT kooliprojekt Philips Hue: 19 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
See on käsiraamat, mille pidin kooli jaoks kirjutama. See pole täielik ja ma pole kindel, kas saate seda isegi kasutada. Minu teadmised API -dest on miinimum. Tahtsime teha interaktiivse peegli, mille tagaküljel oleksid ilmastikule reageerivad tuled, väljast tulev valgus jne.
Vaatasin, kuidas saaksin programmeerida Philips Hue lampi koos Arduinoga. Selles selgitan kõiki oma samme ja seda, kui kaugele olen jõudnud. Mul pole õnnestunud Arduinoga tooni programmeerida, kuid arvan, et see on hea algus.
Mul on seda vaja olnud: Arduino tooni lamp sild Philips Hue arendajakonto
Allikad: 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-…
1. samm. Alustage
Enne kui pääsete juurde API dokumentatsioonile, peate end arendajana registreerima. See on tasuta, kuid peate tingimustega nõustuma. Selle saate teha siin>
Samm: rakendus Hue
Laadige alla ametlik Philips Hue rakendus. Ühendage telefon võrguga, milles soovite, et Hue Bridge oleks sisse lülitatud.
Samm: ühendage sild
Ühendage oma sild võrguga ja see töötab korralikult. Kontrollige, kas nutitelefonirakendus suudab juhtida sama võrgu tulesid. See peab olema samas WiFi-võrgus.
Samm: IP -aadress
Siis peate avastama oma võrgu silla IP -aadressi. Rakenduses sillaga ühenduse loomiseks vajutage linki ja proovige tulesid juhtida.
5. samm:
Kui see kõik töötab, minge rakenduse seadete menüüsse. Minge jaotisse „Minu sild”, minge jaotisse „Võrguseaded”. Lülitage DHCP lüliti välja ja näete silla IP -aadressi. Pange tähele IP -aadress ja lülitage DHCP uuesti sisse.
6. samm: siluge oma tooni
Kui selle kirja panite, peate oma tooni siluma. Selle sammu jaoks vajate IP-aadressi. Peate külastama järgmist saiti.
/debug/clip.html
Liides näeb pildil välja selline. See on kogu veebiliikluse ja tooni RESTful liidese alus.
Sain selle teabe Philips Hue saidi Restful liidese kohta.
URL: see on tegelikult värvitoonisüsteemi konkreetse ressursi (asja) kohalik aadress. See võib olla valgus, tulede rühm või palju muud. See on objekt, millega selle käsu raames suhtlete.
Keha: see on sõnumi osa, mis kirjeldab, mida ja kuidas soovite muuta. Siin sisestate JSON -vormingus ressursi nime ja väärtuse, mida soovite muuta/lisada.
Meetod: siin saate valida 4 HTTP -meetodi vahel, mida tooni kõne saab kasutada.
GET: see on käsk hankida kogu teave adresseeritud ressursi kohta
PUT: see on käsk adresseeritud ressursi muutmiseks
POST: see on käsk luua uus ressurss adresseeritud ressursi sisse
KUSTUTA: see on käsk adresseeritud ressursi kustutamiseks. Vastus: selles piirkonnas näete vastust oma käsule. Samuti JSON -vormingus.
7. samm: alustame
Nüüd vajame juhuslikult loodud kasutajanime, mille sild teile loob. Selle täitmisel saate ühe.
Sisestage URL:
/api/
Pange keha:
ja vajutage GET
See käsk ütleb põhimõtteliselt "palun looge uus ressurss /api sees" (kus kasutajanimed asuvad), millel on järgmised omadused. Esialgu kuvatakse tõrge ja see on sellepärast, et see on Philips Hue turvaetapp. Nupule vajutades tõestavad nad, et teil on sillale füüsiline juurdepääs.
8. samm:
Nüüd vajutage sillal olevat nuppu ja klõpsake uuesti POST.
Nüüd saate kasutajanime, mille sild teile lõi.
9. samm: teeme tuledega midagi
Kopeerige oma kasutajanimi ja sisestage see järgmisele reale.
Sisestage see oma URL -i
/api//tuled
Vajutage GET
Peaksite saama JSON -vastuse koos kõigi teie süsteemi tulede ja nende nimedega.
10. samm:
Laenasin koolist mõned Hue Lightsid, kasutan seda, mille ID on 3. Soovin selle tule kohta konkreetset teavet.
Pange see juba olemasoleva URL -i juurde:
/api//lights/3
Vajutage GET
Nüüd saate kogu teabe Led 3 kohta (kui teil on teine number nagu 1, näete selle kohta teavet).
11. samm: kontrollime valgust
Näete "olekus", et minu led on sisse lülitatud. Me tahame juhtida valgust "olekus".
Pange see juba olemasoleva URL -i juurde: https:/// api// lights/ 3/ state
Pange järgmine rida kehale
Vajutage PUT
Nüüd lülitub teie valgus välja! Muutke keha väärtus väärtuseks Tõene ja valgus süttib uuesti.
12. samm:
Nüüd töötab kõik, ma tahan seda oma Arduinoga teha. Vaatasin linki, mille Philips Hue andis heledate värvide muutmiseks. Kuid selleks on teil vaja Pythoni, ma pole kunagi Pythoniga koostööd teinud, seega otsisin midagi muud.
Kui teile meeldib seda koodi vaadata, on mul siin Githubi link:
github.com/bsalinas/ArduinoHue
13. samm:
Vaatasin, kuidas saaksin sellelt arendaja saidilt oma arduinole teavet saada. Enamasti ei saanud ma keelest aru. Kuid leidsin James Bruce'i veebisaidilt koodi.
See on link veebisaidile.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
14. samm:
Kõigepealt nägin, et ta kasutab Etherneti kaablit. Mul oli ainult Hue lambipirn ja sild Arduino ning koodist oli vähe arusaamist. Mul kulus tükk aega, enne kui ma tema koodist aru sain, aga ma ei saa sellest ikka päris aru.
Lisasin selle raamatukogu esmalt interneti jaoks.
#kaasake
See on teie võrgu jaoks (see peab olema sama mis Hue lambipirn)
const char* ssid = ""; // pane siia oma WiFi võrk SSIDconst char* password = ""; // pane siia oma WiFi võrgu parool
Need on teie silla ID ja silla teile antud kasutajanimi. (Ma ei tea, kus see 80 tähistab, aga kui ma uurisin, nägin, et seda kasutati võrkude jaoks).
// Toonikonstandid const char hueHubIP = ""; // Hue jaoturi IP const char hueUsername = ""; // Hue kasutajanimi const int hueHubPort = 80;
// Hue muutujad bool hueOn; // sisse/välja int hueBri; // heleduse väärtus pikk hueHue; // tooni väärtus String hueCmd; // Hue käsk
allkirjastamata pikk puhver = 0; // puhver vastuvõetud andmesalvestuse jaoks allkirjastamata pikk addr;
15. samm:
Tühjuse seadistamiseks tegin internetiühenduse jaoks kõige rohkem. Selles koodis otsib Arduino, kas ta saab võrguga ühenduse luua.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Ühendamine %s", ssid);
WiFi.begin (ssid, parool);
samas (WiFi.status ()! = WL_CONNECTED) {
viivitus (500);
Seeria.print ("."); }
Serial.println ("ühendatud"); }
16. samm:
Jamesi silmusest nägin, et tal oli avaldus If ja else. Kuid see oli Etherneti kaabli jaoks, nii et proovisin selle välja jätta. Proovisin seda mõnikord ka kohandada, kuid ma ei teadnud veel paljude andmetega. Mõned asjad koodis, millest ma aru sain, on stringis andmed, mis antakse Hue -valgusele.
void loop () {
// Neljast näidiskäsust koosnev seeria, mille värv kustutab punase ja roosa vahel kaks tuld. Täpsete kasutatavate käskude kohta leiate lisateavet Hue API // dokumentatsioonist, kuid pidage meeles, et jutumärgid tuleb tühjendada.
Stringi käsk = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transfertime / ":"+string (juhuslik (15, 25))+"}"; setHue (1, käsk);
käsk = "{" sisse / ": tõsi, \" toon / ": 65280, \" sat / ": 255, \" bri / ": 255, \" üleminekuaeg / ":"+string (juhuslik (15, 25))+"}"; setHue (2, käsk);
käsk = "{" toon / ": 65280, \" sat / ": 255, \" bri / ": 255, \" üleminekuaeg / ":"+String (juhuslik (15, 25))+"}"; setHue (1, käsk);
käsk = "{" toon / ": 50100, \" sat / ": 255, \" bri / ": 255, \" üleminekuaeg / ":"+String (juhuslik (15, 25))+"}"; setHue (2, käsk);
}
17. samm:
Järgmine kood oli Boolean, kuid Arduinos peate kirjutama Bool. Algul sain sõna klient tõttu palju vigu. Niisiis otsisin selle üles ja nägin, et mingis koodis kasutati rida "WifiClient client;". Nii et ma kasutasin seda ja see töötas.
Lauses if näete sageli klienti.print. Kui uurite koodi, näete, et varem sisestatud URL on jagatud osadeks. Nüüd sisestage oma kood. Pidin valima oma kolmanda LED -tule.
/ * setHue () on meie peamine käsufunktsioon, millele tuleb edastada kerge number ja * korralikult vormindatud käsustring JSON -vormingus (põhimõtteliselt Javascripti stiilis muutujate * ja väärtuste massiiv. Seejärel esitab see lihtsa HTTP PUT -päringu sild alguses määratud IP -l. */
bool setHue (int lightNum, String käsk) {
WiFiClient klient;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT /api /"); klient.print (hueUsername); client.print ("/lights/"); klient.print (lightNum); // hueLight nullpõhine, lisage 1 klient.println ("3/state"); // siin muutsin tooni nime ja olekuklienti.print ("Host:"); klient.println (hueHubIP); client.print ("Sisu-pikkus:"); klient.println (käsk.pikkus ()); client.println ("Sisu tüüp: tekst/tavaline; märgikomplekt = UTF-8"); klient.println (); // tühi rida enne keha klienti.println (käsk); // Hue käsk
} client.stop (); tagastama tõene; // käsk täidetud}
muidu tagasta vale; // käsk ebaõnnestus}
18. samm:
Teisel Booleanil tegin sama asja mõne sõna muutmisega. Laadisin selle üles, et näha, kas see töötab.
/* Abifunktsioon juhuks, kui teie loogika sõltub valguse hetkeseisust. * See määrab hulga globaalseid muutujaid, mida saate kontrollida, et teada saada, kas tuli põleb või mitte * ja toon jne. Pole vaja ainult käskude saatmiseks */
bool getHue (int lightNum) {
WiFiClient klient;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); klient.print (hueUsername); klient.print ("/lights/"); klient.print (lightNum); client.println ("3/olek"); client.print ("Host:"); klient.println (hueHubIP); client.println ("Sisu tüüp: rakendus/json"); client.println ("hoia elus"); klient.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // kui tuli põleb, määrake muutuja väärtuseks true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (','). toInt (); // määrake muutujale heledusväärtus client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // seada muutuja tooni väärtusele break; // muid kergeid atribuute veel jäädvustamata}} client.stop (); tagastama tõene; // jäädvustatud, bri, toon} else return false; // viga lugemisel, bri, hue}
19. samm:
Ma arvan, et ma saaksin Philipsi tooniga ühenduse luua. Ma saan teavet, kuid seda tuleb veel kasutada.
Kahjuks läheb see kaugemale sellest, mida ma saan kodeerida. Kui teate vastust või on tõelisi vigu, mis tuleb parandada, oleks hea meel seda kuulda.:-)
Soovitan:
Jagage ja pikendage Philips Hue Lightstripi: 8 sammu (koos piltidega)
Jagage ja pikendage Philips Hue Lightstripi: olen lisanud rohkem " nutikat kodu " tüüpi vidinaid minu koju ja üks asi, millega olen mänginud, on Philips Hue Lightstrip. See on LED -tulede riba, mida saab juhtida rakendusest või nutika assistendi, näiteks Alexa või
Kurva kassi fikseerija, Catch -Me Cat Toy - kooliprojekt: 3 sammu
Kurva kassi fikseerija, Catch-Me Cat Toy-kooliprojekt: Siin on meie toode, see on interaktiivne mänguhiir: Catch-Me Cat Toy. Siin on nimekiri probleemidest, millega paljud meie ühiskonna kassid silmitsi seisavad: Kassid muutuvad tänapäeval passiivseteks ja depressiivseks ning neil pole midagi teha. Enamik omanikke on hõivatud töö või kooli ja teie
Gledopto: odav Philips Hue valgusriba alternatiiv: 3 sammu
Gledopto: odav Philips Hue valgusriba alternatiiv: Philips Hue müüb praegu oma Philips Hue Light ribasid vaid 71-90 dollari eest vaid 2 meetri eest. Mulle tundus see väga absurdne hind, nii et hakkasin otsima alternatiive. Sattusin kaubamärki Gledopto, mis muudab LED -ribakontrollerid
Joonistuskäepide, mida kontrollib heli - Arduino kooliprojekt: 4 sammu (piltidega)
Joonistuskäepide, mida kontrollib heli - Arduino kooliprojekt: See on minu esimene kord, kui töötan Arduinoga ja töötan sellise asjaga kunagi, nii et vabandan, kui tegin vigu! Selle idee sain, kui mõtlesin oma hobidele, milleks on joonistamine ja muusika. Nii et ma proovisin neid kahte ühendada! A sel
DIY Philips Hue paneelvalgusti: 4 sammu (piltidega)
DIY Philips Hue paneelvalgus: ostsin hiljuti oma magamistuppa mõned Philips Hue tuled. Nad on suurepärased! Ma saan neid Alexa abil oma häälega juhtida ja ka oma telefoni kaudu juhtida. Proovisin leida värvi muutva paneeli valgust, kuid nagu te ehk teate, ei näe Philips Hue seda