فهرست مطالب:
- مرحله 1: شروع به کار کنید
- مرحله 2: برنامه Hue
- مرحله 3: پل را وصل کنید
- مرحله 4: آدرس IP
- مرحله 5:
- مرحله 6: رنگ خود را عیب یابی کنید
- مرحله 7: بیایید شروع کنیم
- مرحله 8:
- مرحله 9: بیایید با چراغ ها کاری انجام دهیم
- مرحله 10:
- مرحله 11: بیایید نور را کنترل کنیم
- مرحله 12:
- مرحله 13:
- مرحله 14:
- مرحله 15:
- مرحله 16:
- مرحله 17:
- مرحله 18:
- مرحله 19:
تصویری: پروژه مدرسه اینترنت اشیاء فیلیپس رنگ: 19 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
این کتابی است که باید برای مدرسه بنویسم. این کامل نیست و من مطمئن نیستم که آیا حتی می توانید از آن استفاده کنید. حداقل دانش من در مورد API است. ما می خواستیم یک آینه تعاملی با چراغ هایی در پشت ایجاد کنیم که به آب و هوا واکنش نشان دهد ، نور از بیرون و غیره.
نگاه کردم چگونه می توانم لامپ Philips Hue را با آردوینو برنامه ریزی کنم. در این مقاله ، تمام مراحل خود و میزان پیشرفتم را توضیح می دهم. من در برنامه نویسی Hue با آردوینو موفق نشده ام اما فکر می کنم شروع خوبی است.
من به این مورد نیاز دارم: یک لامپ آردوینو a hue یک حساب توسعه دهنده Philips Hue
منابع: https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/fa/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: رنگ خود را عیب یابی کنید
وقتی این را نوشتید باید Hue خود را اشکال زدایی کنید. برای این مرحله به آدرس IP نیاز دارید. باید از سایت بعدی دیدن کنید.
/debug/clip.html
رابط کاربری در تصویر به این شکل خواهد بود. این اساس تمام ترافیک وب و رابط کاربری hue RESTful است.
این اطلاعات را درباره رابط Restful سایت Philips Hue دریافت کردم.
URL: این در واقع آدرس محلی یک منبع (چیز) خاص در داخل سیستم رنگ است. این می تواند نور ، گروهی از چراغ ها یا موارد دیگر باشد. این چیزی است که شما در این دستور با آن تعامل دارید.
بدنه: این قسمتی از پیام است که توضیح می دهد چه چیزی و چگونه می خواهید تغییر دهید. در اینجا نام و مقداری که می خواهید تغییر دهید یا اضافه کنید را در قالب JSON وارد می کنید.
روش: در اینجا شما می توانید 4 روش HTTP را انتخاب کنید که تماس رنگ می تواند از آنها استفاده کند.
GET: این دستور برای واکشی تمام اطلاعات مربوط به منبع آدرس داده شده است
PUT: این دستور برای تغییر منبع آدرس داده شده است
POST: این دستور ایجاد منبع جدید در داخل منبع آدرس است
DELETE: این دستور برای حذف منبع آدرس آدرس است پاسخ: در این قسمت ، پاسخ فرمان خود را مشاهده خواهید کرد. همچنین با فرمت JSON.
مرحله 7: بیایید شروع کنیم
اکنون ما به یک نام کاربری تصادفی نیاز داریم که پل برای شما ایجاد می کند. با پر کردن این مورد ، یکی به دست خواهید آورد.
آدرس اینترنتی را وارد کنید:
/api/
در BODY قرار دهید:
و GET را فشار دهید
این دستور اساساً می گوید "لطفاً یک منبع جدید در داخل /api ایجاد کنید" (جایی که نام کاربری در آن قرار دارد) با ویژگی های زیر. در ابتدا ، خطایی دریافت خواهید کرد ، و این به این دلیل است که این مرحله امنیتی Philips Hue است. با فشردن دکمه آنها ثابت می کنند که دسترسی فیزیکی به پل دارید.
مرحله 8:
حالا دکمه روی پل را فشار دهید و دوباره روی POST کلیک کنید.
اکنون یک نام کاربری دریافت خواهید کرد که پل برای شما ساخته است.
مرحله 9: بیایید با چراغ ها کاری انجام دهیم
نام کاربری خود را کپی کرده و در خط زیر قرار دهید.
این را در آدرس اینترنتی خود قرار دهید
/api//چراغ
GET را فشار دهید
شما باید یک پاسخ JSON با تمام چراغ های سیستم خود و نام آنها دریافت کنید.
مرحله 10:
من برخی از Hue Lights را از مدرسه وام گرفتم ، چیزی که من از آن استفاده می کنم با شماره 3 است. من اطلاعات خاصی در مورد این چراغ می خواهم.
این را در کنار نشانی اینترنتی که قبلاً داشتید قرار دهید:
/api//lights/3
GET را فشار دهید
اکنون اطلاعات مربوط به Led 3 را دریافت می کنید (اگر شماره دیگری مانند 1 دارید اطلاعات مربوط به آن را مشاهده خواهید کرد).
مرحله 11: بیایید نور را کنترل کنیم
شما در "state" می بینید که led من "on" است. ما می خواهیم نور را در "حالت" کنترل کنیم.
این را در کنار نشانی اینترنتی که قبلاً داشتید قرار دهید: https:/// api// lights/ 3/ state
خط بعدی را در BODY قرار دهید
PUT را فشار دهید
حالا چراغ شما خاموش می شود! مقدار بدنه را به true تغییر دهید و چراغ دوباره روشن می شود.
مرحله 12:
اکنون همه چیز در حال کار است ، من می خواهم این کار را با آردوینو انجام دهم. من پیوندی را دیدم که Philips Hue برای تغییر رنگ روشن ایجاد کرد. اما شما برای این کار به پایتون احتیاج دارید ، من هرگز با پایتون کار نکردم بنابراین به دنبال چیز دیگری بودم.
اگر دوست دارید به این کد نگاه کنید ، پیوند Github را در اینجا دارم:
github.com/bsalinas/ArduinoHue
مرحله 13:
من نگاه کردم که چگونه می توانم اطلاعاتی را از این سایت توسعه دهنده به arduino خود بدست آورم. بیشتر اوقات من زبان را نمی فهمیدم. اما در وب سایتی از جیمز بروس تعدادی کد پیدا کردم.
این پیوند به وب سایت است.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
مرحله 14:
ابتدا دیدم که از کابل اترنت استفاده می کند. من فقط یک لامپ Hue Light و Bridge a Arduino داشتم و درک کمی از کد داشتم. مدتی طول کشید تا من کد او را درک کردم ، اما هنوز واقعاً آن را درک نکرده ام.
من ابتدا این کتابخانه را برای اینترنت اضافه کردم.
#عبارتند از
این برای شبکه شما است (باید شبیه لامپ Hue Light باشد)
const char* ssid = ""؛ // اینجا شبکه WiFi خود را SSIDconst char* password = ""؛ // رمز عبور شبکه WiFi خود را در اینجا قرار دهید
اینها شناسه پل شما و نام کاربری است که پل شما به شما داده است. (نمی دانم 80 مخفف کجاست اما وقتی تحقیق کردم دیدم که برای شبکه ها استفاده می شود).
// ثابت های رنگی const char hueHubIP = ""؛ // Hue hub IP const char hueUsername = ""؛ // نام کاربری Hue const int hueHubPort = 80؛
// متغیرهای رنگ bool hueOn؛ // روشن/خاموش int hueBri؛ // مقدار روشنایی long hueHue؛ // مقدار رنگ String hueCmd؛ // دستور Hue
بافر طولانی بدون علامت = 0؛ // بافر برای ذخیره داده های دریافتی addr طولانی addr ؛
مرحله 15:
برای تنظیم void ، من بیشترین کار را برای اتصال به اینترنت انجام دادم. در این کد ، آردوینو به دنبال این است که آیا می تواند با شبکه ارتباط برقرار کند یا خیر.
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 و else دارد. اما این مربوط به کابل اترنت بود ، بنابراین من سعی کردم این را کنار بگذارم. من نیز گاهی اوقات سعی می کردم آن را تنظیم کنم ، اما هنوز با داده های زیادی نمی دانستم. برخی از چیزهایی که در کد متوجه شدم ، در رشته داده هایی که به نور Hue داده می شود ، وجود دارد.
حلقه خالی () {
// مجموعه ای از چهار دستور نمونه ، که رنگ دو نور بین قرمز و صورتی را محو می کند. برای اطلاعات بیشتر در مورد دستورات دقیق مورد استفاده ، اسناد Hue API // را مطالعه کنید ، اما توجه داشته باشید که از علامت نقل قول باید فرار کرد.
فرمان رشته = "{" on / ": true ، \" hue / ": 50100 ، \" sat / ": 255 ، \" bri / ": 255 ، \" timetime / ":"+رشته (تصادفی (15 ، 25))+"}" ؛ setHue (1 ، فرمان) ؛
command = "{" on / ": true ، \" hue / ": 65280 ، \" sat / ": 255 ، \" bri / ": 255 ، \" timetime / ":"+رشته (تصادفی (15 ، 25))+"}" ؛ setHue (2 ، فرمان) ؛
command = "{" hue / ": 65280 ، \" sat / ": 255 ، \" bri / ": 255 ، \" timetime / ":"+رشته (تصادفی (15 ، 25))+"}"؛ setHue (1 ، فرمان) ؛
command = "{" hue / ": 50100 ، \" sat / ": 255 ، \" bri / ": 255 ، \" timetime / ":"+رشته (تصادفی (15 ، 25))+"}"؛ setHue (2 ، فرمان) ؛
}
مرحله 17:
کد بعدی بولی بود ، اما در آردوینو باید Bool بنویسید. در ابتدا به دلیل کلمه کلاینت خطاهای زیادی دریافت کردم. بنابراین من آن را جستجو کردم و دیدم که برخی از کدها از خط "WifiClient client؛" استفاده می کنند. بنابراین من از آن استفاده کردم و کار کرد.
در دستور if شما اغلب client.print را مشاهده می کنید. اگر به کد نگاه کنید ، خواهید دید که نشانی اینترنتی که قبلاً وارد کرده اید به قطعات تقسیم شده است. حالا کد خود را وارد کنید. من مجبور شدم سومین چراغ LED خود را انتخاب کنم.
/ * setHue () تابع فرمان اصلی ما است ، که باید یک عدد نور و یک رشته فرمان * به درستی فرمت شده در قالب JSON ارسال شود (اساساً مجموعه ای از متغیرها و مقادیر سبک جاوا اسکریپت * و سپس یک درخواست ساده 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 ("نوع محتوا: text/plain؛ charset = UTF-8")؛ client.println ()؛ // خط خالی قبل از body client.println (فرمان) ؛ // دستور Hue
} client.stop ()؛ بازگشت واقعی ؛ // فرمان اجرا شد}
در غیر این صورت false false؛ // فرمان انجام نشد}
مرحله 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") ؛ // اگر چراغ روشن است ، متغیر را روی true client.findUntil تنظیم کنید ("\" bri / ":"، "\ 0")؛ hueBri = client.readStringUntil ('،').toInt () ؛ // متغیر را روی brightness value client.findUntil تنظیم کنید ("\" hue / ":"، "\ 0")؛ hueHue = client.readStringUntil ('،').toInt () ؛ // تنظیم متغیر بر روی مقدار شکستن مقدار ؛ // هنوز ویژگی های نور دیگر را ضبط نکرده}} client.stop ()؛ بازگشت واقعی ؛ // captured on، bri، hue} else false false؛ // خطا در خواندن on، bri، hue}
مرحله 19:
فکر می کنم می توانم با Philips Hue ارتباط برقرار کنم. اطلاعات را دریافت می کنم اما هنوز باید از آن استفاده کرد.
متأسفانه ، این فراتر از چیزی است که می توانم کدگذاری کنم. اگر پاسخ را می دانید ، یا اگر خطاهای واقعی وجود دارد که باید اصلاح شوند ، خوشحال می شوم آن را بشنوم.:-)
توصیه شده:
دریافت اعلان های ایمیل از پروژه های اینترنت اشیاء خود: 6 مرحله
دریافت اعلان های ایمیل از پروژه های اینترنت اشیا امیدوارم آنها را دیده باشید ، اگر نه من شما را به نمایه خود دعوت می کنم و آنها را بررسی می کنم. می خواستم وقتی یک متغیر اعلان هایی دریافت می کند
Sad Cat Fixer، Catch -Me Cat Toy - پروژه مدرسه: 3 مرحله
غمگین گربه ثابت کننده ، Catch-Me Cat Toy-پروژه مدرسه: این محصول ما است ، این یک موش اسباب بازی تعاملی است: Catch-Me Cat Toy. در اینجا لیستی از مشکلاتی که بسیاری از گربه ها در جامعه ما با آن روبرو هستند آورده شده است: این روزها گربه ها غیرفعال و افسرده می شوند و هیچ کاری نمی توانند انجام دهند اکثر صاحبان مشغول کار یا مدرسه و کار شما هستند
Arduino RGB Color Picker - انتخاب رنگ از اشیاء واقعی: 7 مرحله (همراه با تصاویر)
Arduino RGB Color Picker - انتخاب رنگها از اشیاء واقعی: به راحتی با استفاده از این انتخابگر رنگ RGB مبتنی بر آردوینو ، رنگها را از اشیاء فیزیکی انتخاب کنید و به شما این امکان را می دهد که رنگهایی را که در اشیاء واقعی مشاهده می کنید در رایانه یا تلفن همراه خود بازسازی کنید. کافی است یک دکمه را فشار دهید تا رنگ شی با استفاده از TCS347 ارزان اسکن شود
اصول اینترنت اشیا: اتصال اینترنت اشیاء خود به ابر با استفاده از سیستم عامل Mongoose: 5 مرحله
اصول اینترنت اشیا: اتصال اینترنت اشیاء خود به ابر با استفاده از سیستم عامل Mongoose: اگر فردی هستید که درگیر وسایل الکترونیکی و وسایل الکترونیکی است ، بیشتر اوقات با واژه اینترنت اشیا ، که معمولاً مخفف IoT نامیده می شود ، برخورد خواهید کرد. به مجموعه ای از دستگاه ها اشاره می کند که می توانند به اینترنت متصل شوند! چنین آدمی بودن
بازوی طراحی با صدا کنترل می شود - پروژه مدرسه آردوینو: 4 مرحله (همراه با تصاویر)
طراحی بازو که توسط صدا کنترل می شود - پروژه مدرسه آردوینو: این اولین بار است که من با آردوینو کار می کنم و با چنین چیزی کار می کنم ، بنابراین اگر اشتباهی کردم متاسفم! وقتی به سرگرمی هایم ، یعنی نقاشی و موسیقی فکر کردم ، به این ایده رسیدم. بنابراین من سعی کردم این دو را در این مورد ترکیب کنم! یک فروشنده