Mündəricat:

Hue Magic: 4 addım (şəkillərlə)
Hue Magic: 4 addım (şəkillərlə)

Video: Hue Magic: 4 addım (şəkillərlə)

Video: Hue Magic: 4 addım (şəkillərlə)
Video: Учим цвета Разноцветные яйца на ферме Miroshka Tv 2024, Sentyabr
Anonim
Image
Image

Xoş gəldiniz sehrbazlar!

Bir neçə ay əvvəl 3 yaşlı oğlum üçün çubuqlu kiçik bir sehrli qutu yaratdım. Çubuqla qutuya toxunduqda, dəyişən rəngli işıq qutudan çıxmağa başlayacaq. Xüsusilə bəyəndiyi bir rəng gördükdə, çubuğu stolun işığına yönəldə bilər (içərisində Philips Hue ampulü var), bir sehr yazın və qutudan gələn rəng sehrli şəkildə lampaya tullanacaq! Qutudan gələn lampa və işıq birdən eyni rəngdə olur …

Bir neçə saniyədən sonra rəng solur və masa lampası sehrdən əvvəl öz vəziyyətinə qayıdır. Yeni bir sehr yazılana qədər …

Addım 1: Bu Layihəni Yaratmaq Üçün Nə Lazımdır

Bu Layihəni Yaratmaq Üçün Nə Lazımdır
Bu Layihəni Yaratmaq Üçün Nə Lazımdır
Bu Layihəni Yaratmaq Üçün Nə Lazımdır
Bu Layihəni Yaratmaq Üçün Nə Lazımdır
Bu Layihəni Yaratmaq Üçün Nə Lazımdır
Bu Layihəni Yaratmaq Üçün Nə Lazımdır

Bu layihəni yaratmaq üçün aşağıdakı materiallara ehtiyacınız olacaq:

    • 1 (və ya daha çox) Philips Hue rəngli ampul və Hue Bridge
    • 1 Wemos D1 mini və ya bənzər esp8266 əsaslı mikro nəzarətçi
    • 1 (Arduino) toxunma sensoru (məsələn, TTP223R)
    • 1 (Arduino) ani düymə
    • 1 10 uF kondansatör
    • 1 RGB led (ümumi anod tipi)
    • 5 rezistor (10, 22 və 47 Ohm, 2x 10K Ohm)
    • 2 kiçik prototip PCB (2x3 düym və ya təxminən 5x7 sm kifayət qədər böyük olmalıdır)
    • bəzi (tullanan) tellər
    • bir lehimləmə dəmiri
    • sehrli bir çubuq (oyuncaq mağazasında hazır olaraq alına bilər və ya özünüz edə bilərsiniz)
    • kartondan və ya ağacdan hazırlanmış kiçik bir qutu (mövcud bir qutu ola bilər, ancaq əlbəttə sıfırdan bir qutu da qura bilərsiniz)
    • bir az lent
    • PCB -ləri qutuya yerləşdirmək üçün bəzi yapışqan və/və ya qoz -fındıq və boltlar.
    • isteğe bağlı: qutu üçün kağız qablaşdırma

NB: Bu təlimatı keçərkən dövrə diaqramlarını oxumaqda bir az təcrübə kömək edir. Diaqramım çox mürəkkəb deyil: bir kondansatörü bir rezistordan ayıra bilsəniz, çox güman ki, yaxşı olacaqsınız.

Arduino IDE istifadə edərək Arduino proqramlaşdırma təcrübəsi də faydalıdır. Kopyalamaq/yapışdırmaq üçün tam kodu verəcəyim üçün əsas təcrübə kifayət qədər olmalıdır. Xüsusi bir quruluşunuzda işləməsi üçün bir neçə şeyi uyğunlaşdırmalısınız (məsələn, şəbəkə parametrləriniz və Hue konfiqurasiyanızdan bəzi detallar). Bu bir az qorxuducu səslənirsə, narahat olmayın, sizə lazım olan bütün məlumatları əldə etməyə kömək edəcəyəm.

Addım 2: Qutu və Çubuq

Qutu və Çubuq
Qutu və Çubuq
Qutu və Çubuq
Qutu və Çubuq

İlk addımlar ümumiyyətlə ən çətindir, amma bu təlimatda deyil! Asan bir başlanğıc üçün, oyuncaq mağazasından sehrli bir çubuq ala bilərsiniz və qutu üçün artıq yatdığınız kiçik bir qutunu yenidən istifadə edə bilərsiniz. Yalnız qutunun metaldan hazırlanmadığından əmin olun, çünki bu, wifi siqnallarını maneə törədir və sehr üçün bunlara ehtiyacımız var;-).

Mövcud bir qutunu yenidən təyin edərkən, etməniz lazım olan tək şey qutunun üstündə iki delik açmaqdır: RGB led üçün 1 kiçik çuxur (ölçüsü 5mm = 0.2 ") və daha böyük bir çuxur (təxminən 12- Toxunma sensoru üçün 14 mm və ya təxminən 0,5 ").

Deliklərin dəqiq yerləşdirilməsi vacib deyil, yalnız estetik hisslərinizə uyğun olaraq yerləşdirin, ancaq bir neçə şeyi nəzərə alın:

  • Deliklərin altına qoyulacaq komponentlərin (RGB led və toxunma sensoru) montaj və naqillər üçün kifayət qədər yer tutmasına icazə verildiyindən əmin olmaq üçün hər iki çuxur arasında bir qədər məsafə saxlayın.
  • Ən böyük çuxur toxunma sensoru üçündür. Bu sensor çubuqla toxunulacaq (və hətta bir qədər basılaraq) dəliyin altına yerləşdiriləcəkdir. Buna görə aldığınız çubuğun çox qalın olmadığından əmin olun!

İsteğe bağlı olaraq, qutunuzu bir az daha gözəl etmək və qida sızmalarından və çirkli əllərdən qorumaq üçün boya və ya sarğı kağızı və örtük plastik istifadə edə bilərsiniz.

Əgər bu ilk addım sizin zövqünüzə uyğun deyilsə, lütfən davam edin və tamamilə sıfırdan bir qutu və çubuq yaradın! Gözəl bir çubuq yaratmağınıza kömək edəcək bir neçə təlimat var

Hansı yolu seçsən də, qutunun içini araşdırmağın vaxtı gəldi.

Addım 3: İçindəki Avadanlıq

İçindəki Avadanlıq
İçindəki Avadanlıq
İçindəki Avadanlıq
İçindəki Avadanlıq
İçindəki Avadanlıq
İçindəki Avadanlıq

Elektron komponentləri yuxarıdakı sxemə görə bağlamaq üçün bir lehimləmə dəmiri istifadə edin. Xüsusi diqqət yetirilməsi lazım olan bir neçə şey var:

  • Wemos D1 Mini ilə RGB led arasındakı tellər kifayət qədər uzun olmalıdır ki, RGB ledini qutunun qapağında düzəltdiyiniz çuxura quraşdıra biləsiniz.
  • Qapağın digər çuxurundan əldə edilə biləcəyi üçün ani açar və toxunma sensoruna qoşulan tellər üçün də eyni şey hesablanır.
  • Anlıq açarın düyməsi toxunma sensörünün alt hissəsinə (həssas olmayan tərəfə) yapışdırılmalıdır ki, düyməni toxunma sensoru üstə yapışdırılmış halda ani açara geri qoyasınız (şəkilə baxın). Toxunma sensoru, bir barmaqla edilən düymə basmalarını aşkar etmək üçün bir anlıq açarın üstünə quraşdırılmışdır və bu halda düymə basması nəzərə alınmayacaq. Yalnız düymə sehrli çubuqla basıldıqda (keçirici olmamalıdır, buna görə də plastik və ağac yaxşıdır), sehrli dövr başlayacaq.
  • Toxunma sensoru olan ani düyməni qapağın çuxurunun çox dərinliyinə qoymayın, çünki sehrli hərəkətə gətirmək üçün sehrli çubuqla əlçatandır.
  • Lehim edərkən kondansatörün polaritesini müşahidə etməyinizə əmin olun. Müsbət və mənfi potensialları geri çevirsəniz, kondansatör çox güman ki, bir az sehrli tüstü çıxaracaq və dövranınızı əbədi yuxuya aparacaq.
  • Batareya tutucusunu və PCB (lər) i yapışdırın, bantlayın və ya vidalayın. Səliqəli olmaq lazım deyil, çünki görünməyəcək. Sadəcə damla sübut olmalıdır.

Proqrama keçək!

Addım 4: Proqram təminatı

Https://www.arduino.cc/en/Main/Software ünvanından yüklənə bilən ən son (pulsuz) Arduino proqram redaktoruna sahib olduğunuzdan əmin olun. Wemos D1 mini və digər ESP8266 əsaslı lövhələrə dəstək əlavə etmək üçün aşağıdakı addımları atın:

  • Quraşdırıldıqdan sonra Arduino proqramını başladın və Tercihlər pəncərəsini açın.
  • Http://arduino.esp8266.com/stable/package_esp8266com_index.json daxil edin "Əlavə İdarə Heyəti Menecerləri URLləri" sahəsinə. Onları vergüllə ayıraraq birdən çox URL əlavə edə bilərsiniz.
  • Alətlər> Kart menyusundan İdarə Heyətləri Menecerini açın və esp8266 platformasını quraşdırın (və quraşdırıldıqdan sonra Alətlər> Kart menyusundan ESP8266 lövhənizi seçməyi unutmayın. "LOLIN (WEMOS) D1 R2 & mini" Wemos D1 mini v2 və v3 üçün ən yaxşı işləyir. lövhələr.

Arduinonun quraşdırılması və sürücülərin qurulması ilə bağlı daha çox yardıma ehtiyacınız varsa, https://www.instructables.com/id/Wemos-ESP8266-Getting-Started-Guide-Wemos-101/ ünvanına baxa bilərsiniz.

Arduino redaktorunda yeni bir fayl açın (Fayl> Yeni) və aşağıdakı kodu yeni açılan pəncərəyə kopyalayın/yapışdırın. Yeni pəncərədə artıq mövcud olan sətirlərin üzərinə yazın (boşluq qurulması və boşluq döngəsi).

İndi demək olar ki, hazırsınız, ancaq müəyyən bir quruluşunuz üçün kodun bir neçə hissəsini uyğunlaşdırmalı olacaqsınız.

Ediləcək ilk şey, 34 -cü sətirdəki (Arduino redaktorunda kod sətirlərinin nömrələndiyi) ip ünvanını Hue körpünüzün ip ünvanına dəyişdirməkdir. Hue Bridge IP ünvanınızı bilmirsinizsə, https://discovery.meethue.com/ ünvanına daxil olun və doğru IP ünvanı dərhal brauzerinizdə görünəcək. IP ünvanı, "internalipaddress" əvvəli olan nöqtəli nömrədir.

Hue işıqları ilə ünsiyyət qurmaq üçün Wemos D1 mini üçün Hue API istifadəçisi yaratmalısınız, beləliklə Wemos Hue API ilə Hue işığı ilə əlaqə qura bilər. Bunu etmək üçün https://developers.meethue.com/develop/get-started-2/ ünvanındakı təlimatları izləyin və yaradılan (olduqca uzun) istifadəçi adını Arduino kod pəncərəsinə kopyalayın/yapışdırın. Yaradılmış API istifadəçi adı ilə hər bir "HUE API KULLANICI ADINIZI" əvəz edin.

Sonra rəng dəyişdirmək üçün doğru Hue işığını seçməlisiniz. Hue API -də hər işığın bir nömrəsi var, buna görə də bu layihə üçün istifadə etmək istədiyiniz işığa uyğun olan nömrəni tapmaq lazımdır. Xüsusi bir işığın hansı nömrəyə sahib olduğunu öyrənməyin ən asan yollarından biri, Android və ya iOS üçün Hue Viewer Tətbiqini yükləməkdir. "İŞIQ NÖMRƏNİZ" mətnini Arduino kod pəncərəsindəki hər yerdə doğru rəqəmlə əvəz edin.

Ediləcək son şey, wemos şəbəkənizə qoşulmaq üçün Wemos qurmaqdır. Bu kodu Wemos -a yükləməklə və dizüstü kompüterinizdə başqa bir wifi şəbəkəsinə keçməklə edilir: "AutoConnectAP" a. Brauzeriniz, Wemos nəzarətçisinin wifi şəbəkənizə (və Hue körpüsünə) qoşulmaq üçün istifadə edəcəyi SSID (ad) və wifi şəbəkənizin parolunu əlavə edə biləcəyiniz bir səhifə göstərəcək.

Qeyd: Kodu Wemos D1 mini -yə USB vasitəsilə yükləmək işləmirsə, Wemosda USB çipi üçün bir sürücü yükləməyiniz lazım ola bilər. Platformanız üçün bir sürücü (Windows, Mac) https://sparks.gogo.co.nz/ch340.html ünvanından endirilə bilər

İndi hamınız yaradıcılığınızı sınamağa hazırsınız!

// ESP8266 Hue Sehrli Çubuq // Richard van Kampen - 2018 // Bu kod Wemos D1 mini üzərində sınaqdan keçirilmişdir, lakin ehtimal ki, digər ESP8266 əsaslı inkişaf lövhələrində də işləyəcək // Wemos D1 mini və digər ESP8266 lövhələrinə dəstək əlavə etmək üçün Arduino redaktoruna aşağıdakı addımları atın: // - Arduinonu işə salın və Tercihlər pəncərəsini açın. // - Əlavə İdarəçi URLləri sahəsinə https://arduino.esp8266.com/stable/package_esp8266com_index.json daxil edin. Onları vergüllə ayıraraq birdən çox URL əlavə edə bilərsiniz. // - Alətlər> İdarə Heyəti menyusundan İdarə Heyətləri Menecerini açın və esp8266 platformasını quraşdırın (və quraşdırıldıqdan sonra Alətlər> Kart menyusundan ESP8266 lövhənizi seçməyi unutmayın). // istifadə olunan kitabxanalar: #"ESP8266WiFi.h" daxil edin // ESP8266 Əsas WiFi Kitabxanası #"DNSServer.h" daxil edin // WIFI parametrləri (SSID, parol) yoxdursa, bütün istəkləri WiFiManager konfiqurasiya portalına yönləndirmək üçün istifadə olunan Yerli DNS Server hələ qurulmayıb. #"ESP8266WebServer.h" daxil edin // WiFiManager konfiqurasiya portalına xidmət etmək üçün istifadə olunan Yerli WebServer #WiFiManager.h "daxil edin // WiFi Konfiqurasiya Sehrli kitabxanası, hələ quraşdırılmamışsa https://github.com/tzapu/WiFiManager -ə baxın Philips Hue API istifadə etmək üçün lazım olan #RestClient.h "daxil edin // https://github.com/fabianofranca/ESP8266RestClient (bax https://developers.meethue.com/develop/) hue-api/). #incue "ArduinoJson.h" // https://github.com/bblanchon/ArduinoJson, Hue API cavabını təhlil etmək üçün lazım olan, 5.x versiyasını Arduino kitabxana meneceri vasitəsi ilə quraşdırın (Menyu "Eskiz"> Kitabxanaya Daxil et> İdarə et) Kitabxanalar> ArduinoJson axtarın və versiyanı ən son 5.x olaraq dəyişdirin). 6 -cı versiya (hazırda beta) səhv salır. // dəyişənlər və init: String cavabı; 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 aktivasiyası = YÜKSƏK; bool touch = LOW; const char* aan_restore; int bri_restore; ikiqat x_restore; ikiqat y_store; ikiqat x_magic; ikiqat y_magic; bool ilk = doğru; imzasız uzun startMillis; imzasız uzun cari Milis; imzasız uzun müddət Millis; RestClient müştəri = RestClient ("192.168.178.23"); // "Hue Bridge IP ünvanınız" // Hue Bridge IP ünvanınızı bilmirsinizsə, https://discovery.meethue.com saytına daxil olun və dərhal brauzerinizdə görünəcək. IP ünvanı, "internalipaddress" boşluğunun qurulması () {analogWriteRange (255) ilə əvvəl olan nöqtəli nömrədir; Serial.begin (9600); // LED sönmə ilə başlayın. pinMode (activationPin, INPUT_PULLUP); pinMode (touchSensor, GİRİŞ); startMillis = millis (); checkWand (); } void loop () {// burada heç bir iş yoxdur, boş buraxın}} void checkWand () {int rgbColour [3]; // James Harton tərəfindən RGB rəng kodu, https://gist.github.com/jamesotron/766994 // Qırmızı ilə başlayın. rgbColour [0] = 255; rgbColour [1] = 0; rgbColour [2] = 0; activation = digitalRead (activationPin); // LOW çubuğun istifadə edildiyini bildirir. touch = digitalRead (touchSensor); // HIGH, çubuq yerinə barmaq istifadə edildiyini bildirir, belə olmamalıdır. while (aktivasiya == LOW && touch == LOW) {// Artırmaq və azaltmaq üçün rəngləri seçin. for (int decColour = 0; decColour <3; decColour += 1) {int incColour = decColour == 2? 0: decColour + 1; // = üçlü operator, deməkdir: int incColour; if (decColour == 2) {incColour = 0;} else {incColour = decColour +1;} // iki rəngin çarpazlaşması. for (int i = 0; i <255; i += 1) {rgbColour [decColour] -= 1; rgbColour [incColour] += 1; // RGB rəhbərimizin katod əvəzinə ümumi bir anodu olduğu üçün (buna görə də torpaq əvəzinə +3.3V -ə qoşulmalıyıq) RGB üçün tərs dəyərlərə ehtiyacımız var: int red = 255 - rgbColour [0]; int yaşıl = 255 - rgbColour [1]; int mavi = 255 - rgbColour [2]; analogWrite (redPin, qırmızı); analogWrite (greenPin, yaşıl); analogWrite (bluePin, mavi); gecikmə (8); aktivasiya = digitalRead (activationPin); if (aktivasiya == YÜKSEK) {// YÜK, çubuğun qaldırıldığı deməkdir. goto stopColorCycling; }}}} stopColorCycling: currentMillis = millis (); durationMillis = (currentMillis - startMillis); if (durationMillis> 1000) {RGBtoxy (rgbColour [0], rgbColour [1], rgbColour [2]); } başqa {// Wemos'u yuxu rejiminə keçirin: ESP.deepSleep (0); }} etibarsız RGBtoxy (int qırmızı, int yaşıl, mavi mavi) {// baxın https://developers.meethue.com/documentation/color-conversions-rgb-xy double R = xəritə (qırmızı, 0, 255, 0, 1000); R /= 1000; ikiqat G = xəritə (yaşıl, 0, 255, 0, 1000); G /= 1000; ikiqat B = xəritə (mavi, 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); ikiqat X = R * 0.649926f + G * 0.103455f + B * 0.197109f; ikiqat Y = R * 0.234327f + G * 0.743075f + B * 0.022598f; ikiqat Z = R * 0.0000000f + G * 0.053077f + B * 1.035763f; ikiqat x = X / (X + Y + Z); ikiqat y = Y / (X + Y + Z); // dönüşüm tam tamamlanmadı, amma əldə etmək istədiyimiz şeylər üçün kifayət qədər yaxşı ola bilər, buna görə də bunu buraxın və lampaya XY dəyərlərini göndərin: sendtoHue (x, y); } void sendtoHue (double a, double b) {// əsil sehrindən əsl rəng dəyişikliyi, əgər (birinci) {// ilk keçid: cari lampa vəziyyətini alın getCurrentValues (); } // sonra sehrli çubuq rəngləri göndərin: // yazım gözləyin: uzun gözləyin; x_magic = a; y_magic = b; // sehrli çubuq rəngli lampa: cavab = ""; int temp = təsadüfi (2, 9); const char* state = "doğru"; for (int i = 1; i <= temp; i ++) {// körpüyə göndərmək üçün char dizisi yaradın: String temp_body1 = "{" on / ":" + String (vəziyyət) + ", \" bri / ": 220, / "xy \": [" + String (x_magic) +", " + String (y_magic) +"], / "keçid vaxtı \": 1} "; int str_len1 = temp_body1.length () + 1; char post_body1 [str_len1]; temp_body1.toCharArray (post_body1, str_len1); // indi char array olaraq post_body1 -ə sahibik; // istirahət edin: int statusCodePut1 = client.put ("/api/HUE API İSTİFADƏÇİSİNİZ/işıqlar/İŞIQ SAYINIZ/vəziyyət", post_body1 və cavab); gözləyin = təsadüfi (100, 600); gecikmə (gözləmək); if (vəziyyət == "doğru") {vəziyyət = "yalan"; } başqa {vəziyyət = "doğru"; }} // parlaqlığı azaldın…: cavab = ""; temp = təsadüfi (4, 17); // körpüyə göndərmək üçün char dizisi yaradın: String temp_body2 = "{" on / ": true, \" bri / ": 154, \" o'tish zamanı / ":" + String (temp) + "}"; int str_len2 = temp_body2.length () + 1; char post_body2 [str_len2]; temp_body2.toCharArray (post_body2, str_len2); // indi char_ array olaraq post_body2 var; // istirahət edin: int statusCodePut2 = client.put ("/api/HUE API İSTİFADƏÇİSİNİZ/işıqlar/İŞIQ SAYINIZ/vəziyyət", post_body2 və cavab); gözləyin = təsadüfi (1000, 2500); gecikmə (gözləmək); //.. və yenidən daha parlaq olun: cavab = ""; temp = təsadüfi (4, 17); // körpüyə göndərmək üçün char dizisi yaradın: String temp_body3 = "{" bri_inc / ": 100, \" keçid vaxtı / ":}"; int str_len3 = temp_body3.length () + 1; char post_body3 [str_len3]; temp_body3.toCharArray (post_body3, str_len3); // indi post_body3 -ü char array olaraq əldə edirik; // istirahət edin: int statusCodePut3 = client.put ("/api/SİZİN HUE API KULLANICI Adınız/işıqlar/İŞIQ SAYINIZ/vəziyyət", post_body3 və cavab); gözləyin = təsadüfi (2500, 5000); // 2-5 saniyə gecikmə gözləyin (gözləyin); // və köhnə dəyərə qayıdın: cavab = ""; // körpüyə göndərmək üçün char dizisi yaradın: String temp_body4 = "{" on / ":" + String (aan_restore) + ", \" bri / ":" + String (bri_restore) + ", \" xy / ": [" + String (x_restore) +", " + String (y_restore) +"], / "keçid vaxtı \": " + String (20) +"} "; int str_len4 = temp_body4.length () + 1; char post_body4 [str_len4]; temp_body4.toCharArray (post_body4, str_len4); // indi char_ array olaraq post_body4 -ə sahibik; // istirahət edin: int statusCodePut4 = client.put ("/api/SİZİN HUE API KULLANICI Adınız/işıqlar/İŞIQ SAYINIZ/vəziyyət", post_body4 və cavab); ESP.deepSleep (0); // yenə yuxuya gedirəm …. } imzasız int getCurrentValues () {connectWifi (); // əvvəlcə Wifi cavabına qoşul = ""; // istirahət edin: int statusCodeGet = client.get ("/api/HUE API İSTİFADƏÇİSİNİZ/işıqlar/İŞIQ NÖMRƏNİZ", və cavab); Serial.print ("GET sonra serverdən status kodu:"); Serial.println (statusCodeGet); Serial.print ("Serverdən cavab orqanı:"); Serial.println (cavab); StaticJsonBuffer jsonBuffer; // Json cavabının təhlili // Obyekt ağacının kökü. // // Bu JsonObject -ə istinaddır, faktiki baytlar obyekt ağacının bütün digər qovşaqları ilə birlikdə // jsonBuffer -in içərisindədir. // jsonBuffer əhatə dairəsindən çıxanda yaddaş sərbəst buraxılır. JsonObject & root = jsonBuffer.parseObject (cavab); JsonObject & state = root ["state"]; // Təhlilin müvəffəqiyyətli olub olmadığını yoxlayın. əgər (! root.success ()) {Serial.println ("parseObject () uğursuz oldu")); } // Dəyərləri əldə edin. aan_restore = dövlət ["açıq"]; Serial.println (aan_restore); bri_restore = dövlət ["bri"]; x_restore = dövlət ["xy"] [0]; y_restore = dövlət ["xy"] [1]; first = false;} void connectWifi () {// Yerli intializasiya. İşi bitdikdən sonra WiFiManager wifiManager ətrafında saxlamağa ehtiyac yoxdur; // parametrləri sıfırlayın - test üçün: //wifiManager.resetSettings (); // əvvəlki WiFi -yə qoşularkən çağırılan geri çağırışı təyin edin və Access Point rejiminə girin wifiManager.setAPCallback (configModeCallback); // ssid və pass alır və qoşulmağa çalışır // bağlanmırsa, göstərilən adla bir giriş nöqtəsi başlayır // burada "AutoConnectAP" // və əgər (! wifiManager.autoConnect ()) {Serial.println ("bağlana bilmədi və zaman aşımı vuruldu"); // sıfırlayın və yenidən cəhd edin və ya bəlkə də dərin yuxuya qoyun ESP.reset (); gecikmə (1000); } // bura gəlsəniz, WiFi Serial.println -ə ("bağlı… yeey:)") qoşuldunuz; Serial.print ("Bağlandı:"); Serial.println (WiFi. SSID ()); Serial.print ("IP ünvanı:"); Serial.println (WiFi.localIP ()); // ESP -yə (Wemos) təyin edilmiş IP ünvanı // alınan siqnal gücünü çap edin: long rssi = WiFi. RSSI (); Serial.print ("siqnal gücü (RSSI):"); Serial.println (rssi); } etibarsız configModeCallback (WiFiManager * myWiFiManager) {Serial.println ("Daxil edilmiş konfiqurasiya rejimi"); Serial.println (WiFi.softAPIP ()); // avtomatik yaradılan SSID-dən istifadə edirsinizsə, onu Serial.println (myWiFiManager-> getConfigPortalSSID ()) çap edin; }

Tövsiyə: