Агуулгын хүснэгт:

Hue Magic: 4 алхам (зурагтай)
Hue Magic: 4 алхам (зурагтай)

Видео: Hue Magic: 4 алхам (зурагтай)

Видео: Hue Magic: 4 алхам (зурагтай)
Видео: РАЗДАЕТ WIFI СЛЕДИТ ЗА ЧЕЛОВЕКОМ 4G камера видеонаблюдения 2024, Арваннэгдүгээр
Anonim
Image
Image

Тавтай морилно уу шидтэнүүд!

Хэдэн сарын өмнө би 3 настай хүүдээ саваагаар хийсэн жижигхэн шидэт хайрцаг бүтээсэн. Түүнийг саваагаар хайрцагт хүрэхэд солигдсон өнгөт гэрэл хайрцагнаас ялгарч эхэлнэ. Тэр өөрт нь таалагдсан өнгийг хармагцаа саваагаа ширээний чийдэн рүү чиглүүлж (дотор нь Philips Hue чийдэн байгаа) шившлэг хийж, хайрцганд байгаа өнгө нь дэнлүү рүү шидэх болно! Хайрцагны гэрэл, гэрэл гэнэт ижил өнгөтэй болжээ …

Хэдэн секундын дараа өнгө нь бүдгэрч, шившлэг хийхээс өмнө ширээний чийдэн анхны байдалдаа орно. Шинэ шившлэг дуустал…

Алхам 1: Энэхүү төслийг бүтээхэд танд хэрэгтэй зүйл

Энэ төслийг бий болгоход танд хэрэгтэй зүйл
Энэ төслийг бий болгоход танд хэрэгтэй зүйл
Энэ төслийг бий болгоход танд хэрэгтэй зүйл
Энэ төслийг бий болгоход танд хэрэгтэй зүйл
Энэ төслийг бий болгоход танд хэрэгтэй зүйл
Энэ төслийг бий болгоход танд хэрэгтэй зүйл

Энэхүү төслийг бүтээхийн тулд танд дараах материалууд хэрэгтэй болно.

    • 1 (эсвэл түүнээс дээш) Philips Hue өнгөт чийдэн ба Hue Bridge
    • 1 Wemos D1 mini эсвэл үүнтэй төстэй esp8266 дээр суурилсан микроконтроллер
    • 1 (Arduino) мэдрэгч (жишээ нь TTP223R)
    • 1 (Arduino) түр зуурын товчлуур
    • 1 10uF конденсатор
    • 1 RGB LED (нийтлэг анодын төрөл)
    • 5 эсэргүүцэл (10, 22 ба 47 Ом, 2x 10K Ом)
    • 2 жижиг прототип ПХБ (2х3 инч буюу 5х7 см орчим хэмжээтэй байх ёстой)
    • зарим (холбогч) утас
    • гагнуурын төмөр
    • шидэт балаар (тоглоомын дэлгүүрт бэлэн хэлбэрээр худалдаж авч болно, эсвэл өөрөө хийж болно)
    • картон эсвэл модоор хийсэн жижиг хайрцаг (одоо байгаа хайрцаг байж болно, гэхдээ мэдээж эхнээс нь хайрцаг барьж болно)
    • жаахан соронзон хальс
    • ПХБ -ийг хайрцагт бэхлэх цавуу ба/эсвэл самар, боолт.
    • заавал биш: хайрцгийн цаас боох

Тэмдэглэл: Энэхүү зааварчилгааг уншихад хэлхээний диаграм унших багахан туршлага тустай. Миний диаграм тийм ч төвөгтэй биш: хэрэв та конденсаторыг резистороос ялгаж чадвал та зүгээр байх болно.

Arduino IDE ашиглан Arduino програмчлалын зарим туршлага нь бас тустай байдаг. Анхдагч туршлага хангалттай байх болно, учир нь би танд хуулбарлах/буулгах кодыг бүрэн өгөх болно. Үүнийг өөрийн тохиргоонд ажиллуулахын тулд та хэд хэдэн зүйлийг дасан зохицох хэрэгтэй болно (жишээ нь таны сүлжээний тохиргоо болон Hue тохиргооны зарим дэлгэрэнгүй мэдээлэл). Хэрэв энэ нь жаахан сүрдмээр санагдаж байвал санаа зоволтгүй, би танд хэрэгтэй бүх мэдээллээ авахад туслах болно.

Алхам 2: Хайрцаг ба саваа

The Box & Wand
The Box & Wand
The Box & Wand
The Box & Wand

Эхний алхамууд нь ихэвчлэн хамгийн хэцүү байдаг, гэхдээ энэ зааварчилгааны дагуу биш юм! Эхлэхийн тулд та тоглоомын дэлгүүрээс шидэт саваа худалдаж авах боломжтой бөгөөд хайрцгийн хувьд аль хэдийн хэвтэж байсан жижиг хайрцгийг дахин ашиглах боломжтой болно. Хайрцгийг металлаар хийсэн эсэхийг шалгаарай, учир нь энэ нь wifi дохиог хааж, бидэнд ид шид хэрэгтэй болно;-).

Та одоо байгаа хайрцгийг дахин төлөвлөхдөө хийх ёстой цорын ганц зүйл бол хайрцгийн дээд хэсэгт хоёр нүх гаргах явдал юм: RGB залгуурын 1 жижиг нүх (5мм = 0.2 инч хэмжээтэй), том нүх (ойролцоогоор 12- 14 мм буюу ойролцоогоор 0.5 ) мэдрэгчтэй.

Нүхийг яг нарийн байрлуулах нь тийм ч чухал биш бөгөөд гоо зүйн мэдрэмжийнхээ дагуу байрлуул, гэхдээ хэд хэдэн зүйлийг санаарай.

  • Нүхний доор байрлуулах бүрэлдэхүүн хэсгүүд (RGB LED ба мэдрэгч мэдрэгч) хоёуланг нь холбох, холбоход хангалттай зай эзэлдэг эсэхийг шалгахын тулд хоёр нүхний хооронд бага зэрэг зай үлдээгээрэй.
  • Хамгийн том нүх нь мэдрэгч мэдрэгч юм. Энэхүү мэдрэгчийг нүхний яг доор байрлуулна. Тиймээс худалдаж авсан саваа хэт зузаан биш байгаа эсэхийг шалгаарай!

Сонголтоор та хайрцгаа арай хөөрхөн болгохын тулд будаг, боодлын цаас, тагийг хуванцараар шүршиж, хоол хүнс асгарах, бохир гараас хамгаалах боломжтой.

Хэрэв энэ эхний алхам нь таны сэтгэлд нийцэхгүй бол үргэлжлүүлээд эхнээс нь хайрцаг, саваа үүсгээрэй! Гоёмсог саваа бүтээхэд туслах хэд хэдэн зааварчилгаа байдаг

Та ямар ч замыг сонгосон ч гэсэн хайрцагны дотор талыг судлах цаг болжээ.

Алхам 3: Дотоод тоног төхөөрөмж

Дотоод тоног төхөөрөмж
Дотоод тоног төхөөрөмж
Дотоод тоног төхөөрөмж
Дотоод тоног төхөөрөмж
Дотоод тоног төхөөрөмж
Дотоод тоног төхөөрөмж

Дээрх хэлхээний схемийн дагуу электрон эд ангиудыг холбохын тулд гагнуурын төмрийг ашиглана уу. Онцгой анхаарал хандуулах хэд хэдэн зүйл байдаг:

  • Wemos D1 Mini ба RGB чийдэнгийн хоорондох утаснууд хангалттай урт байх ёстой тул RGB гэрлийг хайрцгийн таган дээр хийсэн нүхэнд суулгаж болно.
  • Түр зуурын унтраалга ба мэдрэгчтэй холбогдсон утсыг мөн адил тооцоолж, тагны нөгөө нүхээр дамжин хүрэх боломжтой.
  • Түр зуурын унтраалгын товчлуурыг мэдрэгч мэдрэгчийн доод талд (мэдрэмтгий бус тал) наасан байх ёстой бөгөөд ингэснээр товчлуурыг мэдрэгч мэдрэгчийг наасан байх ёстой. Мэдрэгч мэдрэгчийг товчлуурын даралтыг хуруугаараа илрүүлэхийн тулд түр зуурын унтраалгын дээд хэсэгт суурилуулсан бөгөөд энэ тохиолдолд товчлуур дарах нь үл тоомсорлогдох болно. Зөвхөн товчлуурыг шидэт саваагаар дарахад л (энэ нь цахилгаан дамжуулагчгүй байх ёстой, тиймээс хуванцар, мод сайн байдаг) ид шидийн мөчлөг эхэлнэ.
  • Мэдрэгч мэдрэгчтэй агшин зуурын товчлуурыг тагны нүхний доор хэт гүн биш байрлуул, учир нь ид шидийг хөдөлгөхөд шидэт саваагаар хүрэх боломжтой.
  • Конденсаторыг гагнахдаа түүний туйлыг ажиглах хэрэгтэй. Хэрэв та эерэг ба сөрөг залгуурыг буцаах юм бол конденсатор нь ид шидийн утаа гаргаж, таны хэлхээг үүрд унтуулах болно.
  • Батерейны бэхэлгээ ба ПХБ -ийг цавуу, соронзон хальс эсвэл боолтоор шургуул. Энэ нь нүдэнд харагдахгүй тул цэвэрхэн байх албагүй. Энэ нь зөвхөн нотлох баримт байх ёстой.

Програм хангамж руу орно уу!

Алхам 4: Програм хангамж

Https://www.arduino.cc/en/Main/Software дээрээс татаж авах боломжтой хамгийн сүүлийн үеийн (үнэгүй) Arduino програм хангамжийн редактор байгаа эсэхийг шалгаарай. Wemos D1 mini болон бусад ESP8266 дээр суурилсан хавтангуудын дэмжлэгийг нэмэхийн тулд дараах алхмуудыг дагана уу.

  • Суулгасны дараа Arduino програмыг ажиллуулаад Preferences цонхыг нээнэ үү.
  • Http://arduino.esp8266.com/stable/package_esp8266com_index.json -ийг "Нэмэлт зөвлөлийн менежерийн URL" талбарт оруулна уу. Та олон URL нэмж, тэдгээрийг таслалаар тусгаарлаж болно.
  • Tools> Board цэснээс Boards Manager -ийг нээгээд esp8266 платформыг суулгаарай (мөн суулгасны дараа Tools> Board цэснээс ESP8266 самбараа сонгохоо бүү мартаарай. "LOLIN (WEMOS) D1 R2 & mini" нь Wemos D1 mini v2 ба v3 -д хамгийн сайн ажилладаг. самбар.

Хэрэв танд Arduino суулгах, драйверуудыг тохируулах талаар илүү их тусламж хэрэгтэй бол https://www.instructables.com/id/Wemos-ESP8266-Getting-Started-Guide-Wemos-101/ хаягаар орж үзнэ үү.

Arduino редактор дээр шинэ файл нээж (Файл> Шинэ), доорх кодыг дөнгөж нээгдсэн цонхонд хуулж буулгана уу. Зүгээр л шинэ цонхонд байгаа мөрүүдийг дарж бичих (хүчингүй тохиргоо ба хоосон давталт).

Одоо та бараг бэлэн боллоо, гэхдээ та кодынхоо хэдэн хэсгийг өөрийн тохиргоонд тохируулах хэрэгтэй болно.

Хамгийн эхний хийх зүйл бол 34 -р мөрөнд (Arduino засварлагч дээр кодын мөрүүдийг дугаарласан) IP хаягийг өөрийн Hue гүүрний IP хаяг болгон өөрчлөх явдал юм. Хэрэв та Hue Bridge IP хаягаа мэдэхгүй байгаа бол https://discovery.meethue.com/ хаягаар зочилно уу, зөв IP хаяг таны хөтөч дээр шууд гарч ирнэ. IP хаяг нь өмнө нь "internalipaddress" гэсэн цэгтэй дугаар юм.

Hue гэрэлтэй холбогдохын тулд та Wemos D1 mini -д зориулж Hue API хэрэглэгч үүсгэх ёстой бөгөөд ингэснээр Wemos нь Hue API -ээр дамжуулан Hue гэрэлтэй харилцах боломжтой болно. Үүнийг хийхийн тулд https://developers.meethue.com/develop/get-started-2/ дээрх зааврыг дагаж, Arduino кодын цонхонд үүсгэсэн (нэлээд урт) хэрэглэгчийн нэрийг хуулж тавина уу. "YOUR HUE API USERNAME" бүрийг үүсгэсэн API хэрэглэгчийн нэрээр солино уу.

Дараа нь та өнгийг өөрчлөхийн тулд Hue гэрлийг зөв сонгох хэрэгтэй. Hue API -д гэрэл тус бүр дугаартай байдаг тул та энэ төсөлд ашиглахыг хүссэн гэрэлтэй тохирох тоог олж мэдэх хэрэгтэй. Тодорхой гэрэл ямар дугаартай болохыг олж мэдэх хамгийн хялбар арга бол Android эсвэл iOS -д зориулсан Hue Viewer програмыг татаж авах явдал юм. Arduino кодын цонхны хаа сайгүй "ТАНЫ ХӨНГӨН ДУГААР" гэсэн текстийг зөв тоогоор солино.

Хамгийн сүүлд хийх зүйл бол Wemos -ийг wifi сүлжээндээ холбох явдал юм. Үүнийг кодыг Wemos -д байршуулж, зөөврийн компьютер дээрээ өөр wifi сүлжээ рүү шилжүүлснээр хийдэг: "AutoConnectAP". Дараа нь таны хөтөч Wemos хянагчийн таны wifi сүлжээнд (мөн Hue гүүр рүү) холбоход ашигладаг SSID (нэр) болон нууц үгээ нэмж оруулах боломжтой хуудсыг харуулна.

Тэмдэглэл: Хэрэв кодоо манай Wemos D1 mini -д USB -ээр байршуулах нь ажиллахгүй бол та Wemos дээрх USB чипийн драйверийг татаж авах хэрэгтэй болж магадгүй юм. Таны платформ драйверийг (Windows, Mac) https://sparks.gogo.co.nz/ch340.html дээрээс татаж авах боломжтой.

Одоо та бүх бүтээлээ туршиж үзэхэд бэлэн боллоо!

// ESP8266 Hue Magic Wand // Richard van Kampen - 2018 // Энэ кодыг Wemos D1 мини дээр туршиж үзсэн боловч ESP8266 дээр суурилсан бусад хөгжүүлэлтийн самбар дээр ажиллах болно // Wemos D1 mini болон бусад ESP8266 хавтангуудын дэмжлэгийг нэмэхийн тулд. Arduino редактор руу очихын тулд дараах алхмуудыг хийнэ үү: // - Arduino -г ажиллуулаад Preferences цонхыг нээнэ үү. // - Нэмэлт зөвлөлийн менежерийн URL талбарт https://arduino.esp8266.com/stable/package_esp8266com_index.json оруулна уу. Та олон URL нэмж, тэдгээрийг таслалаар тусгаарлаж болно. // - Tools> Board цэснээс Board Manager -ийг нээгээд esp8266 платформыг суулгаарай (суулгасны дараа Tools> Board цэснээс ESP8266 самбараа сонгохоо бүү мартаарай). // ашигласан номын сан: #"ESP8266WiFi.h" оруулах // ESP8266 Үндсэн WiFi номын сан #"DNSServer.h" -ийг оруулах // WIFI тохиргоо (SSID, нууц үг) байхгүй бол WiFiManager тохиргооны портал руу бүх хүсэлтийг дахин чиглүүлэхэд ашигладаг дотоод DNS сервер. хараахан тохируулаагүй байна. #"ESP8266WebServer.h" -ийг оруулна уу // WiFiManager -ийн тохиргооны порталд ашигладаг орон нутгийн вэбсервер #WiFiManager.h "-ийг оруулна уу. #суулгах замаар номын сангийн менежер #оруулах "RestClient.h" // https://github.com/fabianofranca/ESP8266RestClient, Philips Hue API ашиглахад шаардлагатай (https://developers.meethue.com/develop/ -г үзнэ үү). hue-api/). Hue API -ийн хариуг шинжлэхэд шаардлагатай "ArduinoJson.h" // https://github.com/bblanchon/ArduinoJson, 5.x хувилбарыг Arduino дахь номын сангийн менежерээр дамжуулан суулгана уу (Цэс "Ноорог"> Номын санг оруулах> Удирдах Номын сан> ArduinoJson -ийг хайж олоод хамгийн сүүлийн үеийн 5.x хувилбар болгон өөрчилнө үү). Хувилбар 6 (одоогоор бета хувилбар дээр байгаа) алдаа гаргадаг. // хувьсагч ба init: String хариулт; const int redPin = 13; // Wemos дээр энэ нь d7 const int greenPin = 12; // Wemos дээр энэ нь d6 const int bluePin = 14; // Wemos дээр энэ бол d5 const int touchSensor = 5; // Wemos дээр d1 const int activationPin = 4; // Wemos дээр энэ бол d2 bool идэвхжүүлэлт = HIGH; bool touch = LOW; const char* aan_restore; int bri_restore; давхар x_restore; давхар y_restore; давхар x_magic; давхар y_magic; bool эхлээд = үнэн; гарын үсэг зураагүй урт эхлэх Милис; гарын үсэг зураагүй урт гүйдэл Миллис; урт хугацааны гарын үсэг зураагүй Милис; RestClient клиент = RestClient ("192.168.178.23"); // "таны Hue Bridge IP хаяг" // Хэрэв та Hue Bridge IP хаягаа мэдэхгүй байгаа бол https://discovery.meethue.com хаягаар зочлоорой, тэр даруй таны хөтөч дээр гарч ирэх болно. IP хаяг нь "internalipaddress" void setup () {analogWriteRange (255) -аас өмнө бичигдсэн тасархай дугаар юм; Цуваа эхлэх (9600); // LED унтрахаас эхэл. pinMode (activationPin, INPUT_PULLUP); pinMode (touchSensor, INPUT); startMillis = millis (); checkWand (); } void loop () {// энд хийх зүйл байхгүй, хоосон орхино уу …} void checkWand () {int rgbColour [3]; // Жеймс Хартоны бичсэн RGB өнгөний код, https://gist.github.com/jamesotron/766994 // Улаан өнгөөр эхэл. rgbColour [0] = 255; rgbColour [1] = 0; rgbColour [2] = 0; activation = digitalRead (activationPin); // LOW гэдэг нь саваа ашиглаж байна гэсэн үг. touch = digitalRead (touchSensor); // HIGH гэдэг нь савааны оронд хуруу ашиглагддаг гэсэн үг бөгөөд энэ нь тийм байж болохгүй. while (идэвхжүүлэх == LOW && touch == LOW) {// Өсөн нэмэгдэж, буурах өнгийг сонгоно уу. for (int decColour = 0; decColour <3; decColour += 1) {int incColour = decColour == 2? 0: decColour + 1; // = гурвалсан оператор, гэсэн үг: int incColour; if (decColour == 2) {incColour = 0;} else {incColour = decColour +1;} // хоёр өнгийг хөндлөн бүдгэрүүлнэ. for (int i = 0; i <255; i += 1) {rgbColour [decColour] -= 1; rgbColour [incColour] += 1; // манай RGB удирдагч нь катодын оронд нийтлэг анодтой байдаг тул бид газрын оронд +3.3V -тэй холбогдох ёстой), бидэнд RGB -ийн урвуу утгууд хэрэгтэй болно: int red = 255 - rgbColour [0]; int ногоон = 255 - rgbColour [1]; int blue = 255 - rgbColour [2]; analogWrite (redPin, улаан); analogWrite (greenPin, ногоон); analogWrite (bluePin, цэнхэр); саатал (8); идэвхжүүлэх = digitalRead (activationPin); if (activation == HIGH) {// HIGH бол саваа өргөсөн гэсэн үг юм. goto stopColorCycling; }}}} stopColorCycling: currentMillis = millis (); durationMillis = (currentMillis - startMillis); if (durationMillis> 1000) {RGBtoxy (rgbColour [0], rgbColour [1], rgbColour [2]); } else {// Wemos -ийг унтах горимд оруулна уу: ESP.deepSleep (0); }} хүчингүй RGBtoxy (int улаан, ногоон ногоон, цэнхэр) {// https://developers.meethue.com/documentation/color-conversions-rgb-xy double R = газрын зургийг үзнэ үү (улаан, 0, 255, 0, 1000); R /= 1000; давхар G = газрын зураг (ногоон, 0, 255, 0, 1000); G /= 1000; давхар B = газрын зураг (цэнхэр, 0, 255, 0, 1000); B /= 1000; R = (R> 0.04045f)? pow ((R + 0.055f) / (1.0f + 0.055f), 2.4f): (R / 12.92f); G = (G> 0.04045f)? pow ((G + 0.055f) / (1.0f + 0.055f), 2.4f): (G / 12.92f); B = (B> 0.04045f)? pow ((B + 0.055f) / (1.0f + 0.055f), 2.4f): (B / 12.92f); давхар X = R * 0.649926f + G * 0.103455f + B * 0.197109f; давхар Y = R * 0.234327f + G * 0.743075f + B * 0.022598f; давхар Z = R * 0.0000000f + G * 0.053077f + B * 1.035763f; давхар x = X / (X + Y + Z); давхар y = Y / (X + Y + Z); // хөрвүүлэлт бүрэн дуусаагүй байгаа боловч бидний хүрэхийг хүсч буй зүйлд хангалттай сайн байгаа тул үүнийг орхиж XY утгуудыг lamp рүү илгээнэ үү: sendtoHue (x, y); } void sendtoHue (double a, double b) {// өнгөт өөрчлөлт } // дараа нь шидэт балаар өнгө илгээнэ үү: // шившлэгийг хүлээх: урт хүлээх; x_magic = a; y_magic = b; // шидэт балаар асаасан гэрэл: хариу = ""; int temp = санамсаргүй (2, 9); const char* төлөв = "үнэн"; for (int i = 1; i <= temp; i ++) {// гүүр рүү илгээх char массив үүсгэх: String temp_body1 = "{" on / ":" + String (төлөв) + ", \" bri / ": 220, / "xy \": [" + String (x_magic) +", " + String (y_magic) +"], / "шилжилтийн хугацаа \": 1} "; int str_len1 = temp_body1.length () + 1; char post_body1 [str_len1]; temp_body1.toCharArray (post_body1, str_len1); // одоо бидэнд post_body1 char массив хэлбэрээр байна; // амрах дуудлага хийх: int statusCodePut1 = client.put ("/api/YOUR HUE API USERNAME/lights/YOUR LIGHT NUMBER/state", post_body1, & хариу); хүлээх = санамсаргүй (100, 600); хойшлуулах (хүлээх); if (төлөв == "үнэн") {төлөв = "худал"; } өөр {төлөв = "үнэн"; }} // тод байдлыг багасгах …: хариулт = ""; temp = санамсаргүй (4, 17); // гүүр рүү илгээх char массив үүсгэх: String temp_body2 = "{" on / ": true, \" bri / ": 154, \" shifttime / ":" + String (temp) + "}"; int str_len2 = temp_body2.length () + 1; char post_body2 [str_len2]; temp_body2.toCharArray (post_body2, str_len2); // одоо бидэнд post_body2 char массив хэлбэрээр байна; // амрах дуудлага хийх: int statusCodePut2 = client.put ("/api/YOUR HUE API USERNAME/lights/YOUR LIGHT NUMBER/state", post_body2, & хариу); хүлээх = санамсаргүй (1000, 2500); хойшлуулах (хүлээх); //.. мөн дахин гэрэл гэгээтэй болгох: хариу = ""; temp = санамсаргүй (4, 17); // гүүр рүү илгээх char массив үүсгэнэ үү: String temp_body3 = "{" bri_inc / ": 100, \" shifttime / ":}"; int str_len3 = temp_body3.length () + 1; char post_body3 [str_len3]; temp_body3.toCharArray (post_body3, str_len3); // одоо бидэнд post_body3 char массив хэлбэрээр байна; // амрах дуудлага хийх: int statusCodePut3 = client.put ("/api/YOUR HUE API USERNAME/lights/YOUR LIGHT NUMBER/state", post_body3, & хариу); хүлээх = санамсаргүй (2500, 5000); // хүлээх 2-5 секундын саатал (хүлээх); // мөн хуучин утга руу буцах: хариу = ""; // гүүр рүү илгээх char массив үүсгэх: String temp_body4 = "{" on / ":" + String (aan_restore) + ", \" bri / ":" + String (bri_restore) + ", \" xy / ": [" + String (x_restore) +", " + String (y_restore) +"], / "switchtime \": " + String (20) +"} "; int str_len4 = temp_body4.length () + 1; char post_body4 [str_len4]; temp_body4.toCharArray (post_body4, str_len4); // одоо бидэнд post_body4 char массив хэлбэрээр байна; // амрах дуудлага хийх: int statusCodePut4 = client.put ("/api/YOUR HUE API USERNAME/lights/YOUR LIGHT NUMBER/state", post_body4, & хариу); ESP.deepSleep (0); // дахиад унтана … } unsigned int getCurrentValues () {connectWifi (); // эхлээд Wifi хариу руу холбогдох = ""; // амрах дуудлага хийх: int statusCodeGet = client.get ("/api/YOUR HUE API USERNAME/lights/YOUR LIGHT NUMBER", & хариу); Serial.print ("GET хийсний дараа серверээс авсан статус код:"); Serial.println (statusCodeGet); Serial.print ("Серверээс хариу өгөх байгууллага:"); Serial.println (хариулт); StaticJsonBuffer jsonBuffer; // Json хариултыг задлан шинжлэх // Объект модны үндэс. // // Энэ бол JsonObject -ийн лавлагаа бөгөөд бодит байт нь // jsonBuffer дотор обьектийн модны бусад бүх зангилааны хамт байдаг. // jsonBuffer хамрах хүрээнээс гарахад санах ой чөлөөлөгддөг. JsonObject & root = jsonBuffer.parseObject (хариулт); JsonObject & state = root ["төлөв"]; // Шинжилгээ амжилттай хийгдсэн эсэхийг шалгаарай. хэрэв (! root.success ()) {Serial.println ("parseObject () амжилтгүй болсон"); } // Утга авах. aan_restore = төлөв ["асаалттай"]; Serial.println (aan_restore); bri_restore = төлөв ["bri"]; x_restore = төлөв ["xy"] [0]; y_restore = төлөв ["xy"] [1]; first = false;} void connectWifi () {// Local intialization. Түүний бизнесийг хийсний дараа WiFiManager wifiManager -ийн эргэн тойронд байлгах шаардлагагүй болно; // тохиргоог анхны байдалд нь оруулах - туршихад: //wifiManager.resetSettings (); // өмнөх WiFi руу холбогдох үед дуудлага хийх дуудлага амжилтгүй болж, Access Point горимд ордог wifiManager.setAPCallback (configModeCallback); // ssid болон pass -ийг авч, холбогдохыг оролддог // хэрэв энэ нь холбогдоогүй бол энэ нь заасан нэр бүхий хандалтын цэгийг эхлүүлж // энд "AutoConnectAP" // бөгөөд хэрэв (! wifiManager.autoConnect ()) {Serial.println ("холбогдож чадсангүй, хугацаа хэтэрсэн"); // дахин тохируулаад дахин оролдоно уу, эсвэл гүн нойронд оруулна уу ESP.reset (); саатал (1000); } // хэрэв та энд хүрвэл та WiFi Serial.println ("холбогдсон … тийм:)") холбогдсон байна; Serial.print ("Холбогдсон:"); Serial.println (WiFi. SSID ()); Serial.print ("IP хаяг:"); Serial.println (WiFi.localIP ()); // Таны ESP (Wemos) -д оноосон IP хаяг // хүлээн авсан дохионы хүчийг хэвлэх: long rssi = WiFi. RSSI (); Serial.print ("дохионы хүч (RSSI):"); Serial.println (rssi); } хүчингүй configModeCallback (WiFiManager * myWiFiManager) {Serial.println ("Оруулсан тохиргооны горим"); Serial.println (WiFi.softAPIP ()); // хэрэв та автоматаар үүсгэсэн SSID-ийг ашигласан бол үүнийг Serial.println (myWiFiManager-> getConfigPortalSSID ()) хэвлэх; }

Зөвлөмж болгож буй: