Мазмұны:
- 1 -қадам: Жұмысты бастаңыз
- 2 -қадам: Hue қосымшасы
- 3 -қадам: көпірді қосыңыз
- 4 -қадам: IP мекенжайы
- 5 -қадам:
- 6 -қадам: реңкіңізді түзету
- 7 -қадам: бастайық
- 8 -қадам:
- 9 -қадам: Жарықпен бірдеңе жасайық
- 10 -қадам:
- 11 -қадам: Жарықты басқарайық
- 12 -қадам:
- 13 -қадам:
- 14 -қадам:
- 15 -қадам:
- 16 -қадам:
- 17 -қадам:
- 18 -қадам:
- 19 -қадам:
Бейне: IoT мектебінің жобасы Philips Hue: 19 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Бұл мектепке мен жазуым керек болатын нұсқаулық. Бұл толық емес және сіз оны қолдана алатыныңызға сенімді емеспін. API туралы менің білімім - бұл ең төменгі деңгей. Біз интерактивті айна жасағымыз келді, оның артқы жағында ауа райына, сырттан түскен жарыққа және т.б.
Мен Philips Hue шамын Arduino -мен қалай бағдарламалауға болатынын қарастырдым. Бұл жерде мен өзімнің барлық қадамдарымды және қаншалықты жеткенімді түсіндіремін. Мен реңкті Arduino -мен бағдарламалай алмадым, бірақ бұл жақсы бастама деп ойлаймын.
Маған бұл қажет болды: Arduino реңк шамы көпір Philips Hue әзірлеуші тіркелгісі
Дереккөздер: https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/kz/latest/e…https:// www.makeuseof.com/tag/control-philips-hue-…
1 -қадам: Жұмысты бастаңыз
API құжаттамасына кірмес бұрын, әзірлеуші ретінде тіркелу қажет. Бұл ақысыз, бірақ сіз шарттармен келісуіңіз керек. Сіз мұны осында жасай аласыз>
2 -қадам: Hue қосымшасы
Philips Hue ресми қосымшасын жүктеп алыңыз. Телефонды Hue көпірі қосылған желіге қосыңыз.
3 -қадам: көпірді қосыңыз
Көпірді желіге қосыңыз және ол дұрыс жұмыс істейді. Смартфон қолданбасы бір желідегі шамдарды басқара алатынын тексеріңіз. Ол бір Wi-Fi желісінде болуы керек.
4 -қадам: IP мекенжайы
Содан кейін сіз желідегі көпірдің IP мекенжайын табуыңыз керек. Қолданбадағы көпірге қосылу үшін сілтемені басыңыз және шамдарды басқарып көріңіз.
5 -қадам:
Егер бәрі жұмыс істесе, қосымшаның параметрлер мәзіріне өтіңіз. «Менің көпіріме» өтіңіз, «Желі параметрлері» бөліміне өтіңіз. DHCP қосқышын өшіріңіз, сіз көпірдің IP мекенжайын көресіз. IP мекенжайын ескеріңіз, содан кейін DHCP қайта қосыңыз.
6 -қадам: реңкіңізді түзету
Сіз мұны жазған кезде, сіз өзіңіздің реңкіңізді түзетуіңіз керек. Бұл қадам үшін сізге IP-адрес қажет. Сіз келесі сайтқа кіруіңіз керек.
/debug/clip.html
Интерфейс суреттегідей болады. Бұл барлық веб -трафик пен реңктің RESTful интерфейсінің негізі.
Мен бұл ақпаратты Philips Hue сайтының тыныш интерфейсі туралы алдым.
URL: бұл шын мәнінде реңк жүйесіндегі белгілі бір ресурстың (заттың) жергілікті мекенжайы. Бұл жарық, шамдар тобы немесе басқа да заттар болуы мүмкін. Бұл сіз осы пәрменде өзара әрекеттесетін объект.
Дене: бұл нені және қалай өзгерткіңіз келетінін сипаттайтын хабардың бөлігі. Мұнда сіз JSON форматында өзгерткіңіз/қосқыңыз келетін ресурстың атын және мәнін енгізесіз.
Әдіс: мұнда сіз реңк қоңырауы қолданатын 4 HTTP әдістерін таңдай аласыз.
GET: бұл мекен -жай ресурсы туралы барлық ақпаратты алу командасы
PUT: бұл адрестелген ресурсты өзгертуге арналған команда
POST: бұл адрестелген ресурс ішінде жаңа ресурс құру пәрмені
ЖОЮ: бұл адрестелген ресурсты жою пәрмені Жауап: Бұл аймақта сіз өз пәрменіңізге жауапты көресіз. Сонымен қатар JSON форматында.
7 -қадам: бастайық
Енді бізге көпір сіз үшін жасайтын кездейсоқ құрылған пайдаланушы аты қажет. Сіз оны толтыру арқылы біреуін аласыз.
URL мекенжайын енгізіңіз:
/api/
Денеге салыңыз:
{«devicetype»: «my_hue_app#iphone пайдаланушы аты»}
және GET түймесін басыңыз
Бұл пәрмен негізінен «api ішінде жаңа ресурс жасаңыз» дегенді білдіреді (мұнда пайдаланушы аттары отырады), келесі қасиеттері бар. Алдымен сіз қате аласыз, себебі бұл Philips Hue қауіпсіздік қадамы. Түймені басу арқылы олар сіздің көпірге физикалық қол жеткізе алатындығыңызды дәлелдейді.
8 -қадам:
Енді көпірдегі түймені басып, POST түймесін қайтадан басыңыз.
Енді сіз көпір сіз үшін жасаған пайдаланушы атын аласыз.
9 -қадам: Жарықпен бірдеңе жасайық
Пайдаланушы атыңызды көшіріп, келесі жолға қойыңыз.
Мұны URL мекенжайына енгізіңіз
/api//шамдары
GET түймесін басыңыз
Сіз жүйеңіздегі барлық шамдар мен олардың аттары бар JSON жауабын алуыңыз керек.
10 -қадам:
Мен мектептен реңк шамдарын алдым, менде идентификаторы 3 бар. Мен осы жарық туралы нақты ақпарат алғым келеді.
Мұны бұрыннан бар URL мекенжайының жанына қойыңыз:
/api//шамдары/3
GET түймесін басыңыз
Енді сіз Led 3 туралы ақпаратты аласыз (егер сізде 1 сияқты басқа нөмір болса, сіз бұл туралы ақпаратты көресіз).
11 -қадам: Жарықты басқарайық
Сіз «күйде» менің жетекшімнің «қосулы» екенін көресіз. Біз жарықты «күйде» басқарғымыз келеді.
Мұны бұрыннан бар URL мекенжайының жанына қойыңыз: https:/// api// lights/ 3/ state
Келесі жолды BODY -ге енгізіңіз
{«қосулы»: жалған}
PUT түймесін басыңыз
Енді сіздің шамыңыз өшеді! Денедегі мәнді шын деп өзгертіңіз, сонда жарық қайтадан қосылады.
12 -қадам:
Енді бәрі жұмыс істейді, мен мұны Arduino көмегімен жасағым келеді. Мен ашық түсті өзгерту үшін Philips Hue сілтемесін қарадым. Бірақ бұл үшін сізге Python қажет, мен Python -мен ешқашан жұмыс істемедім, сондықтан мен басқа нәрсе іздедім.
Егер сіз осы кодты қарауды ұнатсаңыз, менде Github сілтемесі бар:
github.com/bsalinas/ArduinoHue
13 -қадам:
Мен осы әзірлеуші сайтынан arduino -ға қалай ақпарат алуға болатынын қарастырдым. Көбіне мен тілді түсінбедім. Бірақ мен Джеймс Брюс веб -сайтынан кодты таптым.
Бұл веб -сайтқа сілтеме.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
14 -қадам:
Алдымен мен оның Ethernet кабелін қолданғанын көрдім. Менде тек Hue шамы мен Arduino көпірі болды және кодты аз түсіндім. Мен оның кодын түсінуіме біраз уақыт кетті, бірақ мен оны әлі де түсінбеймін.
Мен бұл кітапхананы алғаш рет интернетке қостым.
#қосу
Бұл сіздің желіңізге арналған (ол реңк шамы сияқты болуы керек)
const char* ssid = «»; // мұнда Wi -Fi желісін SSIDconst char* password = «» қойыңыз; // WiFi желісінің құпия сөзін осында қойыңыз
Бұл сіздің көпірдің идентификаторы және көпір сізге берген пайдаланушы аты. (Мен 80 -нің қайда екенін білмеймін, бірақ мен зерттеу жүргізгенде, ол желілер үшін қолданылғанын көрдім).
// Реңк константалары const char hueHubIP = «»; // Реңк торабы IP const char hueUsername = «»; // Hue пайдаланушы аты const int hueHubPort = 80;
// Hue айнымалылары bool hueOn; // қосу/өшіру int hueBri; // жарықтық мәні long hueHue; // реңк мәні String hueCmd; // Реңк командасы
белгісіз ұзын буфер = 0; // алынған деректерді сақтауға арналған буфер белгісіз ұзақ адрес;
15 -қадам:
Бос орнату үшін мен Интернетке қосылу үшін барлығын жасадым. Бұл кодта Arduino желіге қосыла алатынын іздейді.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf (« %s желісіне қосылуда», ssid);
WiFi.begin (ssid, құпия сөз);
while (WiFi.status ()! = WL_CONNECTED) {
кешіктіру (500);
Serial.print («.»); }
Serial.println («қосылған»); }
16 -қадам:
Джеймс циклінде мен оның If and else мәлімдемесі бар екенін көрдім. Бірақ бұл Ethernet кабелі үшін болды, сондықтан мен оны қалдырмауға тырыстым. Мен кейде оны реттеуге тырыстым, бірақ мен әлі көп деректерді білмедім. Мен түсінген кодтағы кейбір нәрселер, жолда реңк шамына берілген деректер.
void loop () {
// Түсті қызыл мен қызғылт арасындағы екі шамды өшіретін төрт үлгі пәрмендер сериясы. Қолданылатын нақты командалар туралы толығырақ ақпарат алу үшін Hue API // құжаттамасынан оқыңыз, бірақ тырнақша белгілерін алып тастау керек екенін ескеріңіз.
String пәрмені = «{» on / «: true, \» hue / «: 50100, \» sat / «: 255, \» bri / «: 255, \» көшу уақыты / «:»+Жол (кездейсоқ (15, 25))+«}»; setHue (1, команда);
command = «{» on / «: true, \» hue / «: 65280, \» sat / «: 255, \» bri / «: 255, \» көшу уақыты / «:»+Жол (кездейсоқ (15, 25))+«}»; setHue (2, команда);
command = «{» hue / «: 65280, \» sat / «: 255, \» bri / «: 255, \» көшу уақыты / «:»+Жол (кездейсоқ (15, 25))+«}»; setHue (1, команда);
command = «{» hue / «: 50100, \» sat / «: 255, \» bri / «: 255, \» көшу уақыты / «:»+Жол (кездейсоқ (15, 25))+«}»; setHue (2, команда);
}
17 -қадам:
Келесі код логикалық болды, бірақ Arduino -да Bool жазу керек. Алғашында клиент деген сөздің кесірінен көп қателіктер алдым. Мен оны қарап шықтым, кейбір кодта «WifiClient клиенті;» жолы қолданылғанын көрдім. Сондықтан мен оны қолдандым және ол жұмыс істеді.
If операторында сіз client.print жиі көресіз. Егер сіз кодты қарасаңыз, сіз бұрын енгізілген URL бөліктерге бөлінгенін көресіз. Енді өзіңіздің кодты енгізіңіз. Мен үшінші жарықдиодты шамды таңдауым керек болды.
/ * setHue () - бұл біздің негізгі командалық функция, ол JSON форматында жеңіл нөмір мен * дұрыс пішімделген пәрмен жолын (негізінен Javascript стиліндегі айнымалылар * мен мәндер жиынтығын) беруді қажет етеді, содан кейін ол қарапайым HTTP PUT сұранысын береді. IP -де көпір басында көрсетілген. */
bool setHue (int lightNum, String пәрмені) {
WiFiClient клиенті;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print («PUT /api /»); client.print (hueUsername); client.print («/lights/»); client.print (lightNum); // hueLight нөлге негізделген, 1 client.println қосыңыз («3/state»); // мұнда мен реңк атауы мен stateclient.print («Хост:») өзгердім; client.println (hueHubIP); client.print («Content-Length:»); client.println (command.length ()); client.println («Content-Type: text/plain; charset = UTF-8»); client.println (); // body client алдында бос жол.println (команда); // Реңк командасы
} client.stop (); шындықты қайтару; // команда орындалды}
әйтпесе жалған қайтару; // команда орындалмады}
18 -қадам:
Екінші логикалық кезде мен кейбір сөздерді өзгерту арқылы дәл солай жасадым. Мен оны жұмыс істегенін көру үшін жүктедім.
/* Егер сіздің логикаңыз жарықтың ағымдағы жағдайына байланысты болса, көмекші функция. * Бұл жарықтың жанып тұрғанын немесе түсінің жоқтығын білу үшін тексеруге болатын бірқатар жаһандық айнымалыларды орнатады * және реңк т.б. Командаларды жіберу үшін қажет емес */
bool getHue (int lightNum) {
WiFiClient клиенті;
if (client.connect (hueHubIP, hueHubPort)) {
client.print («GET /api /»); client.print (hueUsername); client.print («/lights/»); client.print (lightNum); client.println («3/state»); client.print («Хост:»); client.println (hueHubIP); client.println («Мазмұн түрі: application/json»); client.println («тірі қал»); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil («\» on / «:», «\ 0»); hueOn = (client.readStringUntil (',') == «шын»); // егер жарық қосулы болса, айнымалы мәнді true client.findUntil мәніне орнатыңыз («\» bri / «:», «\ 0»); hueBri = client.readStringUntil (',').toInt (); // айнымалы мәнді жарықтық мәніне орнатыңыз client.findUntil («\» hue / «:», «\ 0»); hueHue = client.readStringUntil (',').toInt (); // айнымалы мәнді реңктердің үзілуіне орнатыңыз; // басқа жарық атрибуттарын әлі түсірмеді}} client.stop (); шындықты қайтару; // capapt on, bri, hue} else return false; // оқу қатесі, bri, hue}
19 -қадам:
Менің ойымша, мен Philips Hue -мен байланыс орната аламын. Мен ақпарат аламын, бірақ ол әлі де қолданылуы керек.
Өкінішке орай, бұл мен кодтай алатыннан асып түседі. Егер сіз жауапты білсеңіз немесе түзетуді қажет ететін қателер болса, мен оны естуге қуаныштымын.:-)
Ұсынылған:
Philips Hue жарық жолағын бөліңіз және кеңейтіңіз: 8 қадам (суреттермен)
Philips Hue Lightstrip бөлу және кеңейту: Мен көбірек " ақылды үй " қосамын. гаджеттерді үйіме енгізіңіз, мен ойнайтын нәрселердің бірі - Philips Hue Lightstrip. Бұл жарықдиодты шамдардың жолағы, оны қосымшадан немесе Alexa сияқты ақылды көмекшіден басқаруға болады
Дельта мектебінің симпозиумына арналған жарықдиодты қорап: 7 қадам
Дельта мектебінің симпозиумына арналған жарықдиодты қорап:
Gledopto: арзан Philips Hue Light Strip баламасы: 3 қадам
Gledopto: арзан Philips Hue Light Strip баламасы: Philips Hue қазіргі уақытта Philips Hue Light жолақтарын 71-90 долларға 2 метрге сатады. Мен бұл өте ақылға қонымсыз баға таптым, сондықтан мен балама іздей бастадым. Мен Gledopto деп аталатын брендке келдім, ол жарықдиодты жолақтардың контроллерлерін жақсы етеді
Дыбыспен басқарылатын сызу қолы - Arduino мектебінің жобасы: 4 қадам (суреттермен)
Дыбыспен басқарылатын қолды тарту - Arduino мектебінің жобасы: Мен Arduino -мен бірінші рет жұмыс істедім және осындай нәрсемен жұмыс істедім, егер қателескен болсам кешірім сұраймын! Мен сурет салу мен музыканы ұнататын хоббиім туралы ойлаған кезде осындай ойға келдім. Сондықтан мен бұл екеуін біріктіруге тырыстым! Сел
Көңіл -күй проекторы (GSR бар Philips Hue Light Hacked) TfCD: 7 қадам (суреттермен)
Көңіл -күй проекторы (GSR бар Philips реңктері бұзылған) TfCD: Лаура Ахсманн & Maaike Weber Мақсаты: Көңіл-күйдің төмендігі мен күйзеліс-қазіргі жылдам өмірдің үлкен бөлігі. Бұл да сырт көзге көрінбейтін нәрсе. Егер біз стресстік деңгейімізді визуалды және акустикалық түрде жобалай алсақ