Spisu treści:
- Krok 1: Rozpocznij
- Krok 2: Aplikacja Hue
- Krok 3: Podłącz mostek
- Krok 4: Adres IP
- Krok 5:
- Krok 6: Debuguj swój odcień
- Krok 7: Zacznijmy
- Krok 8:
- Krok 9: Zróbmy coś ze światłami
- Krok 10:
- Krok 11: Kontrolujmy światło
- Krok 12:
- Krok 13:
- Krok 14:
- Krok 15:
- Krok 16:
- Krok 17:
- Krok 18:
- Krok 19:
Wideo: Projekt szkoły IoT Philips Hue: 19 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
To jest podręcznik, który musiałem napisać do szkoły. Nie jest kompletny i nie jestem pewien, czy możesz z niego korzystać. Moja wiedza na temat API to absolutne minimum. Chcieliśmy stworzyć interaktywne lustro ze światłami z tyłu, które reagowałyby na pogodę, światło z zewnątrz itp.
Przyjrzałem się, jak mogę zaprogramować lampę Philips Hue za pomocą Arduino. W tym wyjaśniam wszystkie moje kroki i jak daleko zaszedłem. Nie udało mi się zaprogramować Hue za pomocą Arduino, ale myślę, że to dobry początek.
Potrzebowałem tego: Arduino lampa odcień mostek konto programisty Philips Hue
Źródła: 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-…
Krok 1: Rozpocznij
Aby uzyskać dostęp do dokumentacji interfejsu API, musisz zarejestrować się jako programista. To nic nie kosztuje, ale musisz zaakceptować regulamin. Możesz to zrobić tutaj >
Krok 2: Aplikacja Hue
Pobierz oficjalną aplikację Philips Hue. Podłącz telefon do sieci, w której ma być włączony mostek Hue.
Krok 3: Podłącz mostek
Połącz swój most z siecią i działa poprawnie. Sprawdź, czy aplikacja na smartfona może sterować światłami w tej samej sieci. Musi być w tej samej sieci Wi-Fi.
Krok 4: Adres IP
Następnie musisz odkryć adres IP mostka w swojej sieci. Naciśnij link, aby połączyć się z mostkiem w aplikacji i spróbuj sterować światłami.
Krok 5:
Jeśli wszystko działa, przejdź do menu ustawień w aplikacji. Następnie przejdź do „Mój most”, przejdź do „Ustawienia sieci”. Wyłącz przełącznik DHCP, a zobaczysz adres IP mostu. Zanotuj adres IP, a następnie włącz ponownie DHCP.
Krok 6: Debuguj swój odcień
Kiedy to zapisałeś, musisz debugować swój Hue. Do tego kroku potrzebny jest adres IP. Musisz odwiedzić następną stronę.
/debug/clip.html
Interfejs będzie wyglądał tak na obrazku. Jest to podstawa całego ruchu internetowego i interfejsu Hue RESTful.
Otrzymałem te informacje o interfejsie Restful witryny Philips Hue.
URL: jest to w rzeczywistości lokalny adres określonego zasobu (rzeczy) w systemie hue. Może to być światło, grupa świateł lub wiele innych rzeczy. To jest obiekt, z którym będziesz wchodzić w interakcję w ramach tego polecenia.
Ciało: to ta część wiadomości, która opisuje, co i jak chcesz zmienić. Tutaj wpisujesz w formacie JSON nazwę zasobu i wartość, którą chcesz zmienić/dodać.
Metoda: tutaj masz do wyboru 4 metody HTTP, których może użyć wywołanie hue.
GET: jest to polecenie do pobrania wszystkich informacji o adresowanym zasobie
PUT: jest to polecenie modyfikacji zaadresowanego zasobu
POST: jest to polecenie utworzenia nowego zasobu wewnątrz zaadresowanego zasobu
DELETE: jest to polecenie usunięcia zaadresowanego zasobu Odpowiedź: W tym obszarze zobaczysz odpowiedź na swoje polecenie. Również w formacie JSON.
Krok 7: Zacznijmy
Teraz potrzebujemy losowo wygenerowanej nazwy użytkownika, którą tworzy dla Ciebie most. Otrzymasz jeden, wypełniając to.
Wpisz adres URL:
/api/
Włóż do CIAŁA:
i naciśnij GET
To polecenie zasadniczo mówi „proszę, utwórz nowy zasób w /api” (gdzie znajdują się nazwy użytkowników) z następującymi właściwościami. Na początku pojawi się błąd, a to dlatego, że jest to krok bezpieczeństwa Philips Hue. Wciskając przycisk udowadniają, że masz fizyczny dostęp do mostu.
Krok 8:
Teraz naciśnij przycisk na mostku i ponownie kliknij POST.
Teraz otrzymasz nazwę użytkownika, którą stworzył dla Ciebie most.
Krok 9: Zróbmy coś ze światłami
Skopiuj swoją nazwę użytkownika i umieść ją w następującej linii.
Umieść to w swoim adresie URL
/api//światła
Naciśnij POBIERZ
Powinieneś otrzymać odpowiedź JSON ze wszystkimi światłami w twoim systemie i ich nazwami.
Krok 10:
Pożyczyłem trochę świateł Hue ze szkoły, używam tej o id 3. Chcę uzyskać szczegółowe informacje o tym świetle.
Umieść to obok adresu URL, który już masz:
/api//światła/3
Naciśnij POBIERZ
Teraz otrzymasz wszystkie informacje o Led 3 (jeśli masz inny numer, taki jak 1, zobaczysz informacje o tym).
Krok 11: Kontrolujmy światło
Widzisz w "stanie", że moja dioda jest "włączona". Chcemy sterować światłem w „stanie”.
Umieść to obok adresu URL, który już masz: https:// /api/ /lights/ 3/ state
Umieść następną linię w BODY
Naciśnij
Teraz twoje światło zgaśnie! Zmień wartość w body na true, a światło ponownie się włączy.
Krok 12:
Teraz wszystko działa, chcę to zrobić z moim Arduino. Spojrzałem na link, który podał Philips Hue, aby zmienić kolor światła. Ale potrzebujesz do tego Pythona, nigdy nie pracowałem z Pythonem, więc szukałem czegoś innego.
Jeśli chcesz spojrzeć na ten kod, mam link do Github tutaj:
github.com/bsalinas/ArduinoHue
Krok 13:
Sprawdziłem, jak mogę uzyskać informacje z tej strony programisty na moje arduino. Przez większość czasu nie rozumiałem języka. Ale znalazłem kod na stronie Jamesa Bruce'a.
To jest link do strony.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Krok 14:
Najpierw zobaczyłem, że używa kabla Ethernet. Miałem tylko żarówkę Hue Light i mostek Arduino oraz niewielkie zrozumienie kodu. Trochę mi zajęło zrozumienie jego kodu, ale nadal go nie rozumiem.
Najpierw dodałem tę bibliotekę do internetu.
#włączać
To jest dla Twojej sieci (musi być taka sama jak żarówka Hue Light)
const char* ssid = " "; // podaj tutaj swoją sieć Wi-Fi SSIDconst char* password = " "; // wpisz tutaj swoje hasło do sieci Wi-Fi
Są to identyfikator Twojego Bridge i nazwa użytkownika, którą Ci nadał. (Nie wiem, gdzie oznacza 80, ale kiedy zrobiłem trochę badań, zobaczyłem, że jest używany w sieciach).
// Stałe barwy const char hueHubIP = ""; // IP koncentratora Hue const char hueUsername = ""; // Nazwa użytkownika barwy const int hueHubPort = 80;
// Zmienne barwy bool hueOn; // wł./wył. int hueBri; // wartość jasności long hueHue; // wartość barwy String hueCmd; // Odcień, polecenie
długi bufor bez znaku=0; //bufor do przechowywania odebranych danych unsigned long addr;
Krok 15:
W przypadku konfiguracji void zrobiłem najwięcej dla połączenia internetowego. W tym kodzie Arduino szuka czy może połączyć się z siecią.
void setup(){ Serial.begin(9600);
Serial.println();
Serial.printf("Łączenie z %s", ssid);
WiFi.begin(SSid, hasło);
while (WiFi.status() != WL_CONNECTED) {
opóźnienie (500);
Serial.print("."); }
Serial.println("podłączony"); }
Krok 16:
W pętli Jamesa zobaczyłem, że miał oświadczenie If i else. Ale to dotyczyło kabla Ethernet, więc próbowałem to pominąć. Próbowałem też czasem to dostosować, ale nie wiedziałem jeszcze z dużą ilością danych. Niektóre rzeczy w kodzie, które zrozumiałem, w ciągu są dane, które są przekazywane do światła Hue.
pusta pętla () {
// Seria czterech przykładowych poleceń, których kolor powoduje przyciemnienie dwóch świateł między czerwonym a różowym. Przeczytaj dokumentację interfejsu API Hue //, aby uzyskać więcej informacji na temat dokładnych poleceń, których należy użyć, ale pamiętaj, że znaki cudzysłowu muszą być zmienione.
String command = "{"on\": true, \"hue\": 50100, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15), 25))+"}";setHue(1, polecenie);
command = "{"on\": true, \"hue\": 65280, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; setHue(2, polecenie);
command = "{"hue\": 65280, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; setHue(1, polecenie);
command = "{"hue\": 50100, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; setHue(2, polecenie);
}
Krok 17:
Następny kod był Boolean, ale w Arduino trzeba napisać Bool. Na początku dostałem dużo błędów z powodu słowa klient. Więc sprawdziłem to i zobaczyłem, że jakiś kod używa linii "WifiClient client;". Więc przywykłem i zadziałało.
W instrukcji if często widzisz client.print. Jeśli zajrzysz do kodu, zobaczysz, że wprowadzony wcześniej adres URL jest podzielony na części. Teraz wprowadź swój własny kod. Musiałem wybrać moje trzecie światło LED.
/* setHue() to nasza główna funkcja polecenia, do której należy przekazać lekki numer i * poprawnie sformatowany ciąg polecenia w formacie JSON (w zasadzie tablica zmiennych * i wartości w stylu JavaScript. Następnie wykonuje proste żądanie HTTP PUT do Bridge pod adresem IP podanym na początku. */
bool setHue(int lightNum, polecenie String) {
Klient WiFiClient;
if (client.connect(hueHubIP, hueHubPort)){
while (klient.podłączony()){
klient.print("PUT /api/"); klient.print(hueNazwa użytkownika); klient.print("/światła/"); klient.print(lightNum); // hueLight bazuje na zero, dodaj 1 client.println("3/stan"); // tutaj zmieniłem nazwę barwy i stateclient.print("Host: "); klient.println(hueHubIP); client.print("Długość-treści: "); klient.println(polecenie.length()); client.println("Typ treści: text/plain;charset=UTF-8"); klient.println(); // pusta linia przed treścią client.println(polecenie); // Odcień, polecenie
} klient.stop(); zwróć prawdę; // polecenie wykonane }
w przeciwnym razie zwróć false; // polecenie nie powiodło się }
Krok 18:
Na drugim Boolean zrobiłem to samo, zmieniając niektóre słowa. Przesłałem go, aby sprawdzić, czy działa.
/* Funkcja pomocnicza w przypadku, gdy logika zależy od aktualnego stanu światła. * To ustawia liczbę zmiennych globalnych, które możesz sprawdzić, aby dowiedzieć się, czy światło jest włączone, czy nie * oraz odcień itp. Nie jest potrzebne tylko do wysyłania poleceń */
bool getHue(int lightNum) {
Klient WiFiClient;
if (client.connect(hueHubIP, hueHubPort)) {
klient.print("POBIERZ /api/"); klient.print(hueNazwa użytkownika); klient.print("/światła/"); klient.print(lightNum); klient.println("3/stan"); klient.print("Host: "); klient.println(hueHubIP); client.println("Typ treści: aplikacja/json"); klient.println("utrzymuj przy życiu"); klient.println();
while (client.connected()) { if (client.available()) { client.findUntil("\"on\":", "\0"); hueOn = (client.readStringUntil(', ') == "prawda"); // jeśli światło jest włączone, ustaw zmienną na true client.findUntil("\"bri\":", "\0"); hueBri = klient.odczytajStringUntil(', ').toInt(); // ustaw zmienną na wartość jasności client.findUntil("\"hue\":", "\0"); hueHue = client.readStringUntil(', ').toInt(); // ustaw zmienną na wartość barwy break; // nie przechwytuje jeszcze innych atrybutów światła } } client.stop(); zwróć prawdę; // przechwycone na, bri, hue } else return false; // błąd odczytu włączony, bri, hue }
Krok 19:
Myślę, że mógłbym nawiązać połączenie z Philips Hue. Otrzymuję informacje, ale nadal muszę je wykorzystać.
Niestety wykracza to poza to, co potrafię zakodować. Jeśli znasz odpowiedź lub jeśli istnieją prawdziwe błędy, które należy poprawić, bardzo chciałbym to usłyszeć.:-)
Zalecana:
Czapka z okazji ukończenia szkoły z motywem Matrix: 5 kroków (ze zdjęciami)
The Matrix Themed Graduation Cap: Jestem wielkim fanem serii filmów Matrix. Byłem młody, kiedy film wyszedł i od tego czasu uzależniłem się od gatunku Sci-Fi. Kiedy więc doszło do ukończenia studiów, chciałem mieć czapkę z motywem Matrixa. Mam na myśli monolog filmu pasuje no
Samochód RC do szkoły: 5 kroków
RC Car for School: Potrzebne materiały:1) 2 trójniki do rur PVC2) 1 3 calowe rury PVC3) 2 silniki (upewnij się, że zmieszczą się w rurze)4) 4-5 stóp drutu5) 4 koła6) 2 małe gwoździe (będą używane jako ośki do kół)7) 2 przełączniki (przyciski będą działać
Epicka czapka ukończenia szkoły: 5 kroków (ze zdjęciami)
Epic Graduation Cap: Byłem na rozdaniu dyplomów mojego przyjaciela w maju zeszłego roku, a mój przyjaciel pochylił się do mnie i powiedział: „Hej Rachel, powinieneś zrobić projekt Arduino, aby był naprawdę łatwy do zauważenia po ukończeniu studiów”. Więc właśnie to zrobiłem. Czapka ma 8 na 32
Spraw, aby tablica ogłoszeń Twojej szkoły była NAPRAWDĘ zauważalna: 4 kroki
Spraw, aby Twoja szkoła była NAPRAWDĘ zauważalna: Stwórz nudną starą tablicę ogłoszeń naprawdę przyciągającą wzrok w niskiej cenie. Pewnego dnia siedziałem w klasie, wykonując swoją pracę (kaszel, kaszel, rozmawiając, kaszląc) i mój nauczyciel przedmiotów ścisłych zadzwonił do mnie na zewnątrz. Cholera, pomyślałem. Ale nie, naprawdę chciał, żebym go zbudował
Jak zrobić girlandę z jabłek na jesień lub powrót do szkoły: 13 kroków (ze zdjęciami)
Jak zrobić girlandę z jabłek na jesień lub powrót do szkoły: Anjeanette z RootsAndWingsCo wykonała tę uroczą girlandę z jabłek z filcu i materiału. To był prosty projekt, który mogą wykonać nawet ci, którzy twierdzą, że nie umieją szyć! (Tak długo, jak możesz nawlec swoją igłę.)