Mundarija:

Hue Magic: 4 qadam (rasmlar bilan)
Hue Magic: 4 qadam (rasmlar bilan)

Video: Hue Magic: 4 qadam (rasmlar bilan)

Video: Hue Magic: 4 qadam (rasmlar bilan)
Video: Номозни масхара килган шайтон жазосини олди 🙀 2024, Sentyabr
Anonim
Image
Image

Xush kelibsiz sehrgarlar!

Bir necha oy oldin men 3 yoshli o'g'lim uchun tayoqchali kichik sehrli quti yaratdim. U tayoq bilan qutiga tegsa, qutidan o'zgaruvchan rangli yorug'lik chiqa boshlaydi. U o'ziga yoqadigan rangni ko'rganda, tayoqchani stol chiroqqa qaratishi mumkin (ichkarida Philips Hue lampochkasi bor), afsun yozing va qutidagi rang sehrli tarzda chiroqqa sakrab chiqadi! Qutidagi chiroq va yorug'lik to'satdan bir xil rangga ega bo'ladi …

Bir necha soniyadan so'ng, rang yo'qoladi va stol lampasi sehrdan oldin o'z holatiga qaytadi. Yangi afsun chiqmaguncha …

1 -qadam: Ushbu loyihani yaratish uchun sizga nima kerak

Ushbu loyihani yaratish uchun sizga nima kerak
Ushbu loyihani yaratish uchun sizga nima kerak
Ushbu loyihani yaratish uchun sizga nima kerak
Ushbu loyihani yaratish uchun sizga nima kerak
Ushbu loyihani yaratish uchun sizga nima kerak
Ushbu loyihani yaratish uchun sizga nima kerak

Ushbu loyihani yaratish uchun sizga quyidagi materiallar kerak bo'ladi.

    • 1 (yoki undan ko'p) Philips Hue rangli lampochkasi va rang ko'prigi
    • 1 Wemos D1 mini yoki shunga o'xshash esp8266 asosidagi mikrokontroller
    • 1 (Arduino) sensorli sensor (masalan, TTP223R)
    • 1 (Arduino) lahzali tugma
    • 1 10 uF kondansatör
    • 1 RGB LED (umumiy anod turi)
    • 5 rezistor (10, 22 va 47 Ohm, 2x 10K Ohm)
    • 2 ta kichik prototipli PCB (2x3 dyuym yoki taxminan 5x7 sm etarlicha katta bo'lishi kerak)
    • ba'zi (o'tish) simlari
    • lehimlantiruvchi temir
    • sehrli tayoqchani (o'yinchoqlar do'konida tayyor holda sotib olish mumkin yoki uni o'zingiz qilishingiz mumkin)
    • karton yoki yog'ochdan yasalgan kichik quti (mavjud quti bo'lishi mumkin, lekin siz ham qutini noldan qurishingiz mumkin)
    • qandaydir lenta
    • PCBlarni qutiga o'rnatish uchun bir oz elim va/yoki yong'oq va murvat.
    • ixtiyoriy: qutiga qog'oz o'rash

Eslatma: O'chirish sxemalarini o'qish bo'yicha ozgina tajriba, bu ko'rsatmalarni o'tishda yordam beradi. Mening diagramma juda murakkab emas: agar siz kondansatkichni rezistordan ajrata olsangiz, yaxshi bo'lar.

Arduino IDE yordamida Arduino dasturlash tajribasi ham yordam beradi. Buning o'rniga oddiy tajriba etarli bo'lishi kerak, chunki men sizga nusxa ko'chirish/joylashtirish uchun to'liq kodni taqdim etaman. O'zingizning sozlamangizda ishlashi uchun siz bir nechta narsalarni moslashtirishingiz kerak bo'ladi (masalan, tarmoq sozlamalari va Hue konfiguratsiyasidagi ba'zi tafsilotlar). Agar bu biroz qo'rqinchli bo'lib tuyulsa, xavotir olmang, men sizga kerakli barcha ma'lumotlarni olishda yordam beraman.

2 -qadam: quti va tayoq

Quti va tayoq
Quti va tayoq
Quti va tayoq
Quti va tayoq

Birinchi qadamlar odatda eng qiyin, lekin bu ko'rsatma emas! Ishni oson boshlash uchun siz o'yinchoq do'konidan sehrli tayoqchani sotib olishingiz mumkin va quti uchun siz allaqachon yotgan kichkina qutini qayta ishlatishingiz mumkin. Qutining metalldan yasalmaganligiga ishonch hosil qiling, chunki bu Wi-Fi signallarini bloklaydi va bizga sehr uchun kerak;-).

Qachonki siz mavjud qutini qayta belgilasangiz, siz qilishingiz kerak bo'lgan yagona narsa-qutining yuqori qismida ikkita teshik qilish: RGB simi uchun 1 ta kichik teshik (o'lchami 5 mm = 0,2 dyuym) va kattaroq teshik (taxminan 12- Sensor sensori uchun 14 mm yoki taxminan 0,5 ).

Teshiklarning aniq joylashishi muhim emas, ularni estetik tuyg'ularingizga qarab joylashtiring, lekin bir nechta narsani yodda tuting:

  • Teshiklar ostiga o'rnatiladigan komponentlar (RGB simi va sensorli sensor) o'rnatish va simlarni ulash uchun etarli joy egallashiga ishonch hosil qilish uchun ikkala teshik o'rtasida bir oz masofani saqlang.
  • Eng katta teshik sensorli sensor uchun. Bu sensor tayoqchaga tegib (va hatto biroz bosilgan holda) teshik ostiga o'rnatiladi. Shunday qilib, siz sotib olgan tayoqcha juda qalin emasligiga ishonch hosil qiling!

Ixtiyoriy ravishda siz qutingizni biroz chiroyliroq qilish va uni oziq -ovqat to'kilmasligi va iflos qo'llardan himoya qilish uchun bo'yoq yoki o'ralgan qog'oz va qopqoqli plastmassadan foydalanishingiz mumkin.

Agar bu birinchi qadam sizga yoqmasa, iltimos, davom eting va quti va tayoqchani butunlay noldan yarating! Chiroyli tayoqchani yaratishga yordam beradigan bir nechta ko'rsatma mavjud

Qaysi yo'lni tanlasangiz, qutining ichki qismini o'rganish vaqti keldi.

3 -qadam: ichidagi apparat

Ichki apparat
Ichki apparat
Ichki apparat
Ichki apparat
Ichki apparat
Ichki apparat

Elektron komponentlarni yuqoridagi sxemaga muvofiq ulash uchun lehimlantiruvchi temirdan foydalaning. Bir nechta narsalarga alohida e'tibor berish kerak:

  • Wemos D1 Mini va RGB simi orasidagi simlar etarlicha uzun bo'lishi kerak, shuning uchun RGB simi qutining qopqog'idagi teshikka o'rnatilishi mumkin.
  • Xuddi shu narsa bir lahzali kalit va sensorli sensorga ulangan simlar uchun ham qo'llaniladi, chunki ularga qopqoqdagi boshqa teshik orqali kirish mumkin.
  • Bir lahzali tugmachaning tugmasi sensorli sensorning pastki qismiga (sezgir bo'lmagan tomonga) yopishtirilgan bo'lishi kerak, shunday qilib siz tugmachani sensorli sensori ustiga yopishtirib, qayta qo'yishingiz mumkin (rasmga qarang). Sensorli sensor bir lahzali tugmachaning yuqori qismiga o'rnatilgan bo'lib, barmoq bilan qilingan tugma bosilishini aniqlaydi, bu holda tugmani bosish e'tiborga olinmaydi. Faqat tugma sehrli tayoqcha bosilganda (u o'tkazuvchan bo'lmasligi kerak, shuning uchun plastmassa va yog'och yaxshi), sehrli tsikl boshlanadi.
  • Sensorli lahzali tugmachani tepadagi tuynuk ostidan unchalik chuqur bo'lmagan joyga o'rnating, chunki sehrni harakatga keltirish uchun unga sehrli tayoqcha yetishi kerak.
  • Kondensatorni lehimlashda uning polaritesini kuzatganingizga ishonch hosil qiling. Agar siz ijobiy va salbiy simlarni teskari aylantirsangiz, kondansatör, ehtimol, qandaydir sehrli tutun chiqaradi va sizning davrangizni abadiy uyquga qo'yadi.
  • Batareya ushlagichini va tenglikni (lentalarni) yopishtiring, yopishtiring yoki burab qo'ying. Bu toza bo'lishi shart emas, chunki u ko'rinmaydi. Bu shunchaki dalil bo'lishi kerak.

Dasturiy ta'minotga o'ting!

4 -qadam: dasturiy ta'minot

Sizda eng so'nggi (bepul) Arduino dasturiy ta'minot muharriri borligiga ishonch hosil qiling, uni https://www.arduino.cc/en/Main/Software saytidan yuklab olishingiz mumkin. Wemos D1 mini va boshqa ESP8266-ga asoslangan platalarni qo'llab-quvvatlash uchun quyidagi amallarni bajaring:

  • O'rnatishdan so'ng Arduino dasturini ishga tushiring va Preferences oynasini oching.
  • Http://arduino.esp8266.com/stable/package_esp8266com_index.json -ni "Kengash menejerining qo'shimcha URL -lari" maydoniga kiriting. Siz bir nechta URL manzillarini vergul bilan ajratib qo'shishingiz mumkin.
  • Kengashlar menejerini Asboblar> Kengash menyusidan oching va esp8266 platformasini o'rnating (va o'rnatgandan so'ng, Asboblar> Kengash menyusidan ESP8266 kartasini tanlashni unutmang. "LOLIN (WEMOS) D1 R2 & mini" Wemos D1 mini v2 va v3 uchun eng mos keladi. taxtalar.

Agar sizga Arduino-ni o'rnatish va drayverlarni sozlash bo'yicha ko'proq yordam kerak bo'lsa, https://www.instructables.com/id/Wemos-ESP8266-Getting-Started-Guide-Wemos-101/ ga qarang.

Arduino muharririda yangi faylni oching (Fayl> Yangi) va ochilgan oynaga quyidagi kodni nusxa ko'chiring. Yangi oynada allaqachon mavjud bo'lgan satrlarni qayta yozing (bo'sh joy sozlamalari va bo'sh joy).

Endi siz deyarli tayyormiz, lekin siz o'zingizning sozlamalaringiz uchun kodning bir necha qismini moslashtirishingiz kerak bo'ladi.

Birinchi narsa - 34 -qatorda (Arduino muharririda kod satrlari raqamlangan) IP -manzilni Hue ko'prigining IP -manziliga o'zgartirish. Agar siz Hue Bridge IP -manzilingizni bilmasangiz, https://discovery.meethue.com/ saytiga tashrif buyuring va u to'g'ri brauzerda darhol paydo bo'ladi. IP -manzil - bu "ichki manzil" oldidan qo'yilgan nuqta raqam.

Hue chiroqlari bilan muloqot qilish uchun siz Wemos D1 mini uchun Hue API foydalanuvchisini yaratishingiz kerak bo'ladi, shuning uchun Wemos Hue API orqali Hue nuriga murojaat qilishi mumkin. Buni amalga oshirish uchun https://developers.meethue.com/develop/get-started-2/ manzilidagi ko'rsatmalarga amal qiling va Arduino kod oynasida yaratilgan (juda uzun) foydalanuvchi nomini nusxa ko'chiring/joylashtiring. Yaratilgan API foydalanuvchi nomi bilan har bir "HUE API USERNAME" ni o'zgartiring.

Keyin rangni o'zgartirish uchun to'g'ri Hue nurini tanlashingiz kerak. Hue API -da har bir yorug'lik o'z raqamiga ega, shuning uchun siz ushbu loyiha uchun ishlatmoqchi bo'lgan nurga mos keladigan raqamni topishingiz kerak. Qaysi raqam borligini aniqlashning eng oson usullaridan biri bu Android yoki iOS uchun Hue Viewer ilovasini yuklab olishdir. Arduino kod oynasida "SIZNING YORGI RAKAMI" matnini to'g'ri raqam bilan almashtiring.

Oxirgi narsa - Wi -Fi tarmog'iga ulanish uchun Wemos -ni sozlash. Bu kodni Wemos -ga yuklash va noutbukda boshqa wifi tarmog'iga o'tish orqali amalga oshiriladi: "AutoConnectAP" ga. Brauzerda Wemos tekshiruvchisi Wi -Fi tarmog'iga (va Hue ko'prigiga) ulanish uchun foydalanadigan SSID (nomi) va Wi -Fi tarmog'ining parolini qo'shishingiz mumkin bo'lgan sahifa ko'rsatiladi.

Eslatma: Agar kodni Wemos D1 mini -ga USB orqali yuklash ishlamasa, siz Wemos -dagi USB chip uchun drayverni yuklab olishingiz kerak bo'ladi. Sizning platformangiz uchun drayverni (Windows, Mac) https://sparks.gogo.co.nz/ch340.html saytidan yuklab olish mumkin.

Endi siz o'z ijodingizni sinab ko'rishga tayyormiz!

// ESP8266 Hue sehrli tayoqchasi // Richard van Kampen - 2018 // Bu kod Wemos D1 mini -da sinovdan o'tgan, lekin u boshqa ESP8266 -ga asoslangan ishlab chiqarish platalarida ham ishlaydi // Wemos D1 mini va boshqa ESP8266 platalarini qo'llab -quvvatlash uchun. Arduino muharririga quyidagi amallarni bajaring: // - Arduino -ni ishga tushiring va Preferences oynasini oching. // - Qo'shimcha boshqaruv menejeri URL -lari maydoniga https://arduino.esp8266.com/stable/package_esp8266com_index.json kiriting. Siz ularni vergul bilan ajratib, bir nechta URL qo'shishingiz mumkin. // - "Asboblar"> "Kengash" menyusidan "Boards Manager" -ni oching va esp8266 platformasini o'rnating (va o'rnatgandan so'ng "Tools> Board" menyusidan ESP8266 kartangizni tanlashni unutmang). // ishlatilgan kutubxonalar: #include "ESP8266WiFi.h" // ESP8266 Core WiFi Library #include "DNSServer.h" // WIFI sozlamalari (SSID, parol) bo'lmasa, barcha so'rovlarni WiFiManager konfiguratsiya portaliga yo'naltirish uchun ishlatiladigan mahalliy DNS -server. hali o'rnatilmagan. #"ESP8266WebServer.h" ni qo'shing // WiFiManager konfiguratsion portaliga xizmat ko'rsatadigan mahalliy veb -server #"WiFiManager.h" ni qo'shing // WiFi konfiguratsiya sehrli kutubxonasi, agar hali o'rnatilmagan bo'lsa, iltimos https://github.com/tzapu/WiFiManager ga qarang. #kutubxona-menejeri orqali o'rnatish #"RestClient.h" ni qo'shing // https://github.com/fabianofranca/ESP8266RestClient, Philips Hue API-dan foydalanish uchun kerak (qarang: https://developers.meethue.com/develop/ rang-api/). #incheck "ArduinoJson.h" // https://github.com/bblanchon/ArduinoJson, Hue API javobini tahlil qilish uchun kerak, 5.x versiyasini Arduino kutubxona menejeri orqali o'rnating ("Sketch" menyusi> Kutubxonani qo'shish> boshqarish) Kutubxonalar> ArduinoJson -ni qidiring va so'nggi 5.x versiyasini o'zgartiring). 6 -versiya (hozirda beta -versiyada) xato qiladi. // o'zgaruvchilar va init: String javobi; const int redPin = 13; // Wemosda bu d7 const int greenPin = 12; // Wemosda bu d6 const int bluePin = 14; // Wemosda bu d5 const int touchSensor = 5; // Wemosda bu d1 const int activationPin = 4; // Wemosda bu d2 bool aktivatsiyasi = YUQORI; bool touch = LOW; const char* aan_restore; int bri_restore; ikki marta x_restore; y_restore ikki marta; ikkita x_magic; ikkilangan y_magic; bool birinchi = to'g'ri; imzosiz uzoq startMillis; imzosiz uzoq oqimMillis; imzosiz uzoq muddatli Milis; RestClient mijozi = RestClient ("192.168.178.23"); // "sizning Hue Bridge IP manzilingiz" // Agar siz Hue Bridge IP manzilingizni bilmasangiz, https://discovery.meethue.com saytiga tashrif buyuring va u darhol sizning brauzeringizda paydo bo'ladi. IP -manzil - bu "internalipaddress" void setup () {analogWriteRange (255) bilan belgilanadigan nuqtali raqam; Serial.begin (9600); // LEDni o'chirishdan boshlang. pinMode (faollashtirishPin, INPUT_PULLUP); pinMode (touchSensor, INPUT); startMillis = millis (); checkWand (); } void loop () {// bu erda hech narsa qilinmaydi, bo'sh qoldiring…} void checkWand () {int rgbColour [3]; // RGB rang kodi Jeyms Xarton, https://gist.github.com/jamesotron/766994 // Qizildan boshlang. rgbColour [0] = 255; rgbColour [1] = 0; rgbColour [2] = 0; activation = digitalRead (activationPin); // LOW tayoq ishlatilganligini bildiradi. touch = digitalRead (touchSensor); // HIGH - tayoq o'rniga barmoq ishlatilganligini anglatadi, bunday bo'lmasligi kerak. while (faollashtirish == LOW && touch == LOW) {// Ranglarni kattalashtirish va kamaytirish uchun tanlang. uchun (int decColour = 0; decColour <3; decColour += 1) {int incColour = decColour == 2? 0: decColour + 1; // = uchlamchi operator, degan ma'noni anglatadi: int incColour; if (decColour == 2) {incColour = 0;} else {incColour = decColour +1;} // ikki rangni kesib o'tadi. uchun (int i = 0; i <255; i += 1) {rgbColour [decColour] -= 1; rgbColour [incColour] += 1; // bizning RGB LED katod o'rniga umumiy anodga ega bo'lgani uchun (shuning uchun biz er o'rniga +3.3V ga ulanishimiz kerak), bizga RGB uchun teskari qiymatlar kerak: int red = 255 - rgbColour [0]; int yashil = 255 - rgbColour [1]; int ko'k = 255 - rgbColour [2]; analogWrite (redPin, qizil); analogWrite (greenPin, yashil); analogWrite (bluePin, ko'k); kechikish (8); faollashtirish = digitalRead (activationPin); if (faollashtirish == YUQORI) {// HIGH tayoq ko'tarilganligini bildiradi. goto stopColorCycling; }}}} stopColorCycling: currentMillis = millis (); durationMillis = (currentMillis - startMillis); if (durationMillis> 1000) {RGBtoxy (rgbColour [0], rgbColour [1], rgbColour [2]); } else {// Wemosni uyqu rejimiga o'tkazing: ESP.deepSleep (0); }} bekor qilingan RGBtoxy (qizil qizil, yashil yashil, ko'k) {// qarang https://developers.meethue.com/documentation/color-conversions-rgb-xy double R = map (qizil, 0, 255, 0, 1000); R /= 1000; er -xotin G = xarita (yashil, 0, 255, 0, 1000); G /= 1000; er -xotin B = xarita (ko'k, 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); er -xotin X = R * 0.649926f + G * 0.103455f + B * 0.197109f; er -xotin Y = R * 0.234327f + G * 0.743075f + B * 0.022598f; er -xotin Z = R * 0.0000000f + G * 0.053077f + B * 1.035763f; er -xotin x = X / (X + Y + Z); er -xotin y = Y / (X + Y + Z); // konvertatsiya to'liq tugallanmagan, lekin biz erishmoqchi bo'lgan narsaga etarlicha yaxshi, shuning uchun uni shu erda qoldiring va chiroqqa XY qiymatlarini yuboring: sendtoHue (x, y); } void sendtoHue (double a, double b) {// tayoq sehridan haqiqiy rang o'zgarishi, agar (birinchi) {// birinchi o'tish: chiroqning joriy holatini olish getCurrentValues (); } // keyin sehrli tayoqchaning ranglarini yuboring: // sehrni kuting: uzoq kuting; x_magic = a; y_magic = b; // sehrli tayoqchadagi chiroq yonadi: javob = ""; int temp = tasodifiy (2, 9); const char* holati = "rost"; for (int i = 1; i <= temp; i ++) {// ko'prikka yuborish uchun char qatorini yaratish: String temp_body1 = "{" on / ":" + String (holat) + ", \" bri / ": 220, / "xy \": [" + String (x_magic) +", " + String (y_magic) +"], / "o'tish vaqti \": 1} "; int str_len1 = temp_body1.length () + 1; char post_body1 [str_len1]; temp_body1.toCharArray (post_body1, str_len1); // endi bizda post_body1 char qatori; // boshqa qo'ng'iroqni amalga oshiring: int statusCodePut1 = client.put ("/api/SIZNING HUE API USERNAME/chiroqlar/SIZNING YO'Q SONI/holati", post_body1, va javob); kutish = tasodifiy (100, 600); kechiktirish (kutish); agar (holat == "rost") {holat = "noto'g'ri"; } boshqa {holat = "rost"; }} // yorqinlikni kamaytirish …: javob = ""; temp = tasodifiy (4, 17); // ko'prikka yuborish uchun char qatorini yarating: String temp_body2 = "{" on / ": true, \" bri / ": 154, \" o'tish vaqti / ":" + String (temp) + "}"; int str_len2 = temp_body2.length () + 1; char post_body2 [str_len2]; temp_body2.toCharArray (post_body2, str_len2); // endi bizda post_body2 char qatori; // boshqa qo'ng'iroqni amalga oshiring: int statusCodePut2 = client.put ("/api/SIZNING HUE API USERNAME/chiroqlar/SIZNING YO'Q SONI/holati", post_body2, va javob); kutish = tasodifiy (1000, 2500); kechiktirish (kutish); //.. va yana yorqinroq qiling: javob = ""; temp = tasodifiy (4, 17); // ko'prikka yuborish uchun char qatorini yarating: String temp_body3 = "{" bri_inc / ": 100, \" o'tish vaqti / ":}"; int str_len3 = temp_body3.length () + 1; char post_body3 [str_len3]; temp_body3.toCharArray (post_body3, str_len3); // endi bizda post_body3 char qatori; // boshqa qo'ng'iroqni amalga oshiring: int statusCodePut3 = client.put ("/api/SIZNING HUE API USERNAME/chiroqlar/SIZNING YO'Q SONI/holati", post_body3, va javob); kutish = tasodifiy (2500, 5000); // 2-5 soniya kechikishni kuting (kuting); // va eski qiymatga qaytadi: javob = ""; // ko'prikka yuborish uchun char qatorini yarating: String temp_body4 = "{" on / ":" + String (aan_restore) + ", \" bri / ":" + String (bri_restore) + ", \" xy / ": [" + String (x_restore) +", " + String (y_restore) +"], / "o'tish vaqti \": " + String (20) +"} "; int str_len4 = temp_body4.length () + 1; char post_body4 [str_len4]; temp_body4.toCharArray (post_body4, str_len4); // endi bizda post_body4 char qatori; // boshqa qo'ng'iroqni amalga oshiring: int statusCodePut4 = client.put ("/api/SIZNING HUE API USERNAME/chiroqlar/SIZNING YO'RINGIZNI/holatingiz", post_body4, va javob); ESP.deepSleep (0); // yana uxlayman …. } unsigned int getCurrentValues () {connectWifi (); // avval Wifi javobiga ulanish = ""; // boshqa qo'ng'iroqni amalga oshiring: int statusCodeGet = client.get ("/api/YOUR API HIZMATORI/chiroqlar/YORug'ingizning raqami", va javob); Serial.print ("GETdan so'ng serverdan holat kodi:"); Serial.println (statusCodeGet); Serial.print ("Serverdan javoblar tanasi:"); Serial.println (javob); StaticJsonBuffer jsonBuffer; // Json javobini tahlil qilish // Ob'ekt daraxtining ildizi. // // Bu JsonObjectga havola, haqiqiy baytlar // jsonBuffer ichida, ob'ektlar daraxtining boshqa tugunlari joylashgan. // Xotira jsonBuffer doirasidan chiqib ketganda bo'shatiladi. JsonObject & root = jsonBuffer.parseObject (javob); JsonObject & state = root ["state"]; // Tahlil muvaffaqiyatli bajarilganligini tekshiring. agar (! root.success ()) {Serial.println ("parseObject () muvaffaqiyatsiz"); } // Qiymatlarni olish. aan_restore = holat ["yoqilgan"]; Serial.println (aan_restore); bri_restore = davlat ["bri"]; x_restore = holat ["xy"] [0]; y_restore = holat ["xy"] [1]; first = false;} void connectWifi () {// Mahalliy intializatsiya. Uning ishi tugagach, uni WiFiManager wifiManager atrofida saqlashga hojat yo'q; // sozlamalarni tiklash - sinov uchun: //wifiManager.resetSettings (); // oldingi Wi -Fi tarmog'iga ulanishda chaqiriladigan qayta qo'ng'iroqni o'rnatish muvaffaqiyatsiz tugadi va kirish nuqtasi rejimiga kiradi wifiManager.setAPCallback (configModeCallback); // ssid va passni oladi va ulanishga harakat qiladi // agar u ulanmasa, u ko'rsatilgan nom bilan kirish nuqtasini ishga tushiradi // bu erda "AutoConnectAP" // va konfiguratsiyani kutayotgan blokirovka tsikliga o'tadi, agar (! wifiManager.autoConnect ()) {Serial.println ("ulanib bo'lmadi va taymut tugadi"); // qayta o'rnating va qaytadan urinib ko'ring, yoki uni chuqur uyquga qo'ying ESP.reset (); kechikish (1000); } // agar siz bu erga kelsangiz, siz WiFi Serial.println ga ulangansiz ("ulangan … ha:)"); Serial.print ("Ulangan:"); Serial.println (WiFi. SSID ()); Serial.print ("IP -manzil:"); Serial.println (WiFi.localIP ()); // ESP (Wemos) ga tayinlangan IP -manzil // qabul qilingan signal kuchini chop eting: long rssi = WiFi. RSSI (); Serial.print ("signal kuchi (RSSI):"); Serial.println (rssi); } void configModeCallback (WiFiManager * myWiFiManager) {Serial.println ("Kiritilgan konfiguratsiya rejimi"); Serial.println (WiFi.softAPIP ()); // agar siz avtomatik tarzda yaratilgan SSID-dan foydalansangiz, uni chop eting Serial.println (myWiFiManager-> getConfigPortalSSID ()); }

Tavsiya: