Агуулгын хүснэгт:
- Алхам 1: Эхлэх
- Алхам 2: Hue програм
- Алхам 3: Гүүрийг холбоно уу
- Алхам 4: IP хаяг
- Алхам 5:
- Алхам 6: Hue -ээ дибаг хийх
- Алхам 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 11:02
Энэ бол миний сургуульд бичих ёстой гарын авлага юм. Энэ нь бүрэн гүйцэд биш бөгөөд та үүнийг ашиглаж чадах эсэхээ мэдэхгүй байна. API -ийн талаархи миний мэдлэг бол хамгийн бага хэмжээ юм. Бид цаг агаар, гаднаас гэрэл гэх мэт хариу үйлдэл үзүүлдэг арын гэрэл бүхий интерактив толь хийхийг хүссэн.
Би Philips Hue чийдэнг Arduino -той хэрхэн програмчлах талаар авч үзсэн. Үүнд би бүх алхам, ямар алхам хийснээ тайлбарласан болно. Би Hue -ийг Arduino -той програмчилж чадаагүй ч энэ бол сайн эхлэл гэж бодож байна.
Надад энэ хэрэгтэй байсан: Philips Hue хөгжүүлэгчийн данс болох Arduino -ийн өнгөт гэрэл
Эх сурвалж: 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: Эхлэх
API баримт бичигт хандахаасаа өмнө хөгжүүлэгчээр бүртгүүлэх шаардлагатай болно. Энэ нь үнэгүй, гэхдээ та нөхцөл, нөхцлийг хүлээн зөвшөөрөх ёстой. Та эндээс нэгийг хийж болно>
Алхам 2: Hue програм
Албан ёсны Philips Hue програмыг татаж аваарай. Hue гүүрийг асаахыг хүссэн сүлжээгээ утсаа холбоно уу.
Алхам 3: Гүүрийг холбоно уу
Гүүрээ сүлжээнд холбож, зөв ажиллаж байна. Ухаалаг гар утасны аппликейшн нь нэг сүлжээнд байгаа гэрлийг хянах боломжтой эсэхийг шалгаарай. Энэ нь ижил Wi-Fi сүлжээнд байх ёстой.
Алхам 4: IP хаяг
Дараа нь та сүлжээнийхээ гүүрний IP хаягийг олж мэдэх хэрэгтэй. Апп дээрх гүүр рүү холбогдохын тулд холбоосыг дарж, гэрлийг хянаж үзээрэй.
Алхам 5:
Хэрэв бүх зүйл зөв хийгдсэн бол програмын тохиргооны цэс рүү очно уу. "Миний гүүр" рүү очоод "Сүлжээний тохиргоо" руу очно уу. DHCP шилжүүлэгчийг унтрааж, гүүрний IP хаягийг харах болно. IP хаягийг анхаарч, DHCP -ийг дахин асаана уу.
Алхам 6: Hue -ээ дибаг хийх
Та үүнийг бичихдээ Hue -ээ дибаг хийх хэрэгтэй. Энэ алхамыг хийхийн тулд танд IP хаяг хэрэгтэй болно. Та дараагийн сайт руу орох ёстой.
/debbug/clip.html
Зураг дээр интерфейс иймэрхүү харагдах болно. Энэ бол бүх вэб траффик болон hue RESTful интерфэйсийн үндэс юм.
Philips Hue сайтын Restful интерфэйсийн талаар энэ мэдээллийг олж авлаа.
URL: энэ нь үнэндээ hue системийн доторх тодорхой нөөцийн (зүйлийн) локал хаяг юм. Энэ нь гэрэл, бүлэг гэрэл эсвэл бусад олон зүйл байж болно. Энэ бол таны энэ командын хүрээнд харилцах объект юм.
Бие махбодь: энэ бол юу өөрчлөхийг хүсч байгаагаа тайлбарласан зурвасын хэсэг юм. Энд та JSON форматаар өөрчлөх/нэмэхийг хүсч буй нөөцийн нэр, утгыг оруулна уу.
Арга: энд өнгөт дуудлагын ашиглаж болох 4 HTTP аргыг сонгох боломжтой.
АВАХ: энэ бол хаяглагдсан нөөцийн талаархи бүх мэдээллийг авах тушаал юм
PUT: энэ бол хаяглагдсан нөөцийг өөрчлөх тушаал юм
POST: энэ нь хаяглагдсан эх сурвалж дотор шинэ нөөц үүсгэх тушаал юм
Устгах: энэ бол хаяглагдсан нөөцийг устгах тушаал юм Хариулт: Энэ хэсэгт та өөрийн тушаалын хариуг харах болно. Мөн JSON форматтай.
Алхам 7: Эхлээд үзье
Одоо бидэнд гүүр танд зориулж үүсгэсэн санамсаргүй байдлаар үүсгэсэн хэрэглэгчийн нэр хэрэгтэй байна. Үүнийг бөглөхөд та нэгийг авах болно.
URL -г оруулна уу:
/api/
БИЕД оруулах:
мөн GET дарна уу
Энэ тушаал нь үндсэндээ "api дотор шинэ нөөц үүсгэнэ үү" гэж хэлдэг (хэрэглэгчийн нэр суудаг) дараах шинж чанаруудтай. Эхэндээ танд алдаа гарах болно, энэ нь Philips Hue -ийн аюулгүй байдлын алхам юм. Товчлуур дээр дарснаар тэд таныг гүүр рүү нэвтрэх боломжтой гэдгээ батална.
Алхам 8:
Одоо гүүрэн дээрх товчлуурыг дараад POST дарна уу.
Одоо та гүүр танд зориулж хийсэн хэрэглэгчийн нэрийг авах болно.
Алхам 9: Гэрлээр ямар нэгэн зүйл хийцгээе
Хэрэглэгчийн нэрээ хуулж, дараах мөрөнд оруулна уу.
Үүнийг URL дээрээ оруулна уу
/api//гэрэл
GET дарна уу
Та системийнхээ бүх гэрэл, тэдгээрийн нэрийг агуулсан JSON хариулт авах ёстой.
Алхам 10:
Би Hue Lights -ийг сургуулиас зээлж авсан, миний ашигладаг ID 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 гүүртэй байсан, кодын талаар бага ойлголттой байсан. Надад түүний кодыг ойлгоход хэсэг хугацаа шаардагдсан боловч би одоо хүртэл ойлгохгүй байна.
Би энэ номын санг анх интернетэд нэмсэн.
#оруулах
Энэ нь таны сүлжээнд зориулагдсан болно (энэ нь Hue гэрлийн чийдэнтэй ижил байх ёстой)
const char* ssid = ""; // энд WiFi сүлжээгээ оруулна уу SSIDconst char* password = ""; // WiFi сүлжээний нууц үгээ энд оруулна уу
Эдгээр нь таны гүүрний ID бөгөөд таны гүүрний танд өгсөн хэрэглэгчийн нэр юм. (80 гэдэг нь хаана байдгийг би мэдэхгүй, гэхдээ судалгаа хийж үзэхэд үүнийг сүлжээнд ашигладаг болохыг олж харсан).
// Hue Constants const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue хэрэглэгчийн нэр const int hueHubPort = 80;
// Hue хувьсагчид bool hueOn; // on/off int hueBri; // тод байдлын утга урт hueHue; // өнгөний утга String hueCmd; // Hue тушаал
гарын үсэггүй урт буфер = 0; // хүлээн авсан өгөгдөл хадгалах гарын үсэг зураагүй урт addr;
Алхам 15:
Хоосон тохиргоог хийхийн тулд би интернет холболтыг хамгийн их хийсэн. Энэ кодонд Arduino сүлжээнд холбогдох боломжтой эсэхийг хайж байна.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf (" %s руу холбогдож байна", ssid);
WiFi.begin (ssid, нууц үг);
байхад (WiFi.status ()! = WL_CONNECTED) {
саатал (500);
Serial.print ("."); }
Serial.println ("холбогдсон"); }
Алхам 16:
Жеймсийн гогцоонд түүнд If and else мэдэгдэл байгааг би харсан. Гэхдээ энэ нь ethernet кабельд зориулагдсан тул би үүнийг орхихыг хичээсэн. Би заримдаа үүнийг тохируулах гэж оролдсон боловч маш их мэдээлэлтэй байсан ч хараахан мэдээгүй байсан. Миний ойлгосон кодын зарим зүйлийг Hue гэрэлд өгдөг өгөгдөл байна.
void loop () {
// Улаан, ягаан хоёрын хооронд хоёр гэрлийг бүдгэрүүлдэг дөрвөн жишээ командын цуврал. Hue API // баримт бичгээс уншиж, яг ашиглах командуудын талаар илүү дэлгэрэнгүй мэдээлэл авах боломжтой боловч ишлэлийн тэмдгийг зайлуулах ёстойг анхаарна уу.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" shifttime / ":"+String (санамсаргүй (15, 25))+"}"; setHue (1, тушаал);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" shifttime / ":"+String (санамсаргүй (15, 25))+"}"; setHue (2, тушаал);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" switchtime / ":"+String (санамсаргүй (15, 25))+"}"; setHue (1, тушаал);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" shifttime / ":"+String (санамсаргүй (15, 25))+"}"; setHue (2, тушаал);
}
Алхам 17:
Дараагийн код нь логик байсан боловч Arduino -д Bool гэж бичих ёстой. Анх үйлчлүүлэгч гэдэг үгнээс болж маш их алдаа гардаг байсан. Тиймээс би үүнийг хараад зарим код нь "WifiClient клиент;" гэсэн мөрийг ашигласан болохыг олж мэдэв. Тиймээс би үүнийг ашиглаж байсан бөгөөд энэ нь ажилласан.
If мэдэгдэлд та client.print -ийг ихэвчлэн хардаг. Хэрэв та кодыг судалж үзвэл өмнө нь оруулсан URL хэсэг хэсгүүдэд хуваагдсаныг харах болно. Одоо кодоо өөрөө оруулна уу. Би 3 дахь LED гэрлээ сонгох хэрэгтэй болсон.
/ * 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 ("/гэрэл/"); client.print (lightNum); // hueLight тэг дээр суурилсан, 1 client.println ("3/төлөв") нэмнэ; // энд би өнгөний нэр болон stateclient.print -ийг өөрчилсөн ("Хост:"); client.println (hueHubIP); client.print ("Агуулга-Урт:"); client.println (command.length ()); client.println ("Агуулгын төрөл: текст/энгийн; charset = UTF-8"); client.println (); // body client өмнө хоосон мөр.println (тушаал); // Hue тушаал
} client.stop (); үнэн рүү буцах; // тушаал гүйцэтгэсэн}
өөрөөр худлаа буцаах; // тушаал амжилтгүй боллоо}
Алхам 18:
Хоёрдахь логик дээр би хэдэн үг солихдоо ижил зүйлийг хийсэн. Ажилласан эсэхийг харахын тулд би үүнийг байршуулсан.
/* Таны логик гэрлийн өнөөгийн байдлаас шалтгаалах тохиолдолд туслах функц. * Энэ нь хэд хэдэн дэлхийн хувьсагчийг тохируулдаг бөгөөд та одоогоор гэрэл асаж байгаа эсэх, * болон өнгө гэх мэтийг шалгаж болно. Зөвхөн командыг илгээхэд шаардлагагүй */
bool getHue (int lightNum) {
WiFiClient үйлчлүүлэгч;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/гэрэл/"); client.print (lightNum); client.println ("3/муж"); 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 false false; // уншихад алдаа гарсан, bri, hue}
Алхам 19:
Би Philips Hue -тай холбоо тогтоож чадна гэж бодож байна. Би мэдээлэл авдаг боловч үүнийг ашиглах шаардлагатай хэвээр байна.
Харамсалтай нь энэ нь миний кодлож чадах хэмжээнээс давсан байна. Хэрэв та хариултыг мэдэж байгаа бол, эсвэл засч залруулах шаардлагатай бодит алдаанууд байвал үүнийг сонсоход таатай байна.:-)
Зөвлөмж болгож буй:
Гунигтай муур засагч, Catch -Me муур тоглоом - Сургуулийн төсөл: 3 алхам
Гунигтай муур засагч, Catch-Me муур тоглоом-Сургуулийн төсөл: Энд бидний бүтээгдэхүүн байна, энэ бол интерактив тоглоомон хулгана юм: Catch-Me муур тоглоом. Манай нийгэмд олон мууртай тулгардаг асуудлуудын жагсаалтыг энд харуулав: Орчин үед муур идэвхгүй болж, хийх зүйлгүй болж сэтгэлээр унаж байна.Ихэнх эзэд ажил, сургууль, танай завгүй байдаг
Сансрын шанцайны танхим зааварлах боломжтой- Агаарын тээврийн сургуулийн ахлах сургуулийн робот техник: 8 алхам
Space Lettuce Chamber Instructable- Airline High School Robotics: Энэ бол робот техникийн ангид элсэн орсон ахлах сургуулийн гурван сурагчийн хийсэн заавар юм. Бид НАСА -гийн зохион байгуулдаг "Дэлхийгээс цааш ургах уралдаан" тэмцээнд зориулан сансарт шанцайны ургамал ургуулах танхим байгуулах болно. Бид контейнер хэрхэн яаж хийхийг танд үзүүлэх болно. За явцгаая
Эхлэгчдэд зориулсан Arduino -ийн 10 үндсэн төсөл! Нэг самбараар хамгийн багадаа 15 төсөл хий !: 6 алхам
Эхлэгчдэд зориулсан Arduino -ийн 10 үндсэн төсөл! Хамгийн багадаа 15 төслийг нэг самбараар хий !: Arduino Project & Хичээлийн зөвлөл; Arduino -ийн үндсэн 10 төслийг багтаасан болно. Бүх эх код, Gerber файл болон бусад. SMD байхгүй байна! Хүн бүрт хялбар гагнах. Зөөврийн болон сольж болох хялбар бүрэлдэхүүн хэсгүүд. Та хамгийн багадаа 15 төсөл хийх боломжтой
Дуугаар удирддаг гар зурах - Arduino сургуулийн төсөл: 4 алхам (зурагтай)
Дуугаар удирддаг гар зурах - Arduino сургуулийн төсөл: Би Arduino -тэй анх удаагаа ийм ажил хийж байгаа бөгөөд алдаа гаргасан бол уучлаарай! Зурах, хөгжим хийх хоббигоо бодохдоо надад ийм санаа төрсөн. Тиймээс би энэ хоёрыг нэгтгэхийг хичээсэн! Сэл
USB -ээр ажилладаг шарагч! Энэхүү төсөл нь хуванцар / мод / цаасаар шатаж болно (хөгжилтэй төсөл нь маш нарийн мод байх ёстой): 3 алхам
USB -ээр ажилладаг шарагч! Энэ төсөл нь хуванцар / мод / цаасаар шатаж болно (хөгжилтэй төсөл нь маш нарийн мод байх ёстой): ЭНЭ USB ашиглан бүү хий !!!! Энэ нь бүх сэтгэгдлээс таны компьютерийг гэмтээж болохыг олж мэдсэн. миний компьютер сайн байна 600ma 5V утасны цэнэглэгч ашиглана уу. Би үүнийг ашигласан бөгөөд энэ нь сайн ажилладаг бөгөөд хэрэв та цахилгаан тэжээлийг зогсоохын тулд хамгаалалтын залгуур ашиглавал юу ч гэмтээхгүй