Talaan ng mga Nilalaman:
- Hakbang 1: Ano ang Kailangan Nimo upang Lumikha ng Proyekto na Ito
- Hakbang 2: Ang Kahon at Wand
- Hakbang 3: Ang Hardware sa Loob
- Hakbang 4: Ang Software
Video: Hue Magic: 4 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Maligayang pagdating wizards!
Ilang buwan na ang nakakaraan lumikha ako ng isang maliit na kahon ng mahika na may wand para sa aking 3 taong gulang na anak na lalaki. Kapag hinawakan niya ang kahon gamit ang wand, isang nagbabagong kulay na ilaw ay magsisimulang maglabas mula sa kahon. Kapag nakakita siya ng isang kulay na partikular na gusto niya, maaari niyang ituro ang wand patungo sa lampara ng mesa (na may isang bombilya ng Philips Hue sa loob), maglagay ng isang spell at ang kulay mula sa kahon ay mahiwagang tumalon sa lampara! Ang ilawan at ilaw mula sa kahon ay biglang may parehong kulay …
Pagkalipas ng ilang segundo, ang kulay ay kumukupas at ang table lamp ay bumalik sa estado nito bago ang spell. Hanggang sa isang bagong spell ay ma-cast …
Hakbang 1: Ano ang Kailangan Nimo upang Lumikha ng Proyekto na Ito
Upang likhain ang proyektong ito, kakailanganin mo ang mga sumusunod na materyales:
- 1 (o higit pa) Philips Hue na bombilya ng kulay at isang Hue Bridge
- 1 Wemos D1 mini o katulad na microcontroller na nakabatay sa esp8266
- 1 (Arduino) touch sensor (hal. TTP223R)
- 1 (Arduino) pansamantalang pindutan
- 1 10uF capacitor
- 1 RGB led (karaniwang uri ng anode)
- 5 resistors (10, 22 at 47 Ohm, 2x 10K Ohm)
- 2 maliit na prototyping PCB (2x3 pulgada o tungkol sa 5x7 cm ay dapat na sapat na malaki)
- ilang (jumper) wires
- isang bakal na bakal
- isang magic wand (mabibili bilang isang nakahanda sa isang tindahan ng laruan, o maaari mo itong gawin mismo)
- isang maliit na kahon na gawa sa karton o kahoy (maaaring maging isang mayroon nang kahon, ngunit maaari ka ring bumuo ng isang kahon mula sa simula ng kurso)
- ilang tape
- ilang pandikit at / o mga mani at bolt upang mai-mount ang mga PCB sa kahon.
- opsyonal: pambalot na papel para sa kahon
NB: Ang isang maliit na karanasan sa pagbabasa ng mga diagram ng circuit ay kapaki-pakinabang kapag dumadaan ito sa itinuro. Ang aking diagram ay hindi masyadong kumplikado: kung maaari mong makilala ang isang kapasitor mula sa isang risistor, malamang na ikaw ay maayos.
Ang ilang karanasan sa Arduino na programa gamit ang Arduino IDE ay kapaki-pakinabang din. Sa halip ang pangunahing karanasan ay dapat sapat, dahil ibibigay ko ang kumpletong code para makopya / i-paste mo. Gayunpaman, kakailanganin mong iakma ang ilang mga bagay, upang maisagawa ito sa iyong partikular na pag-set up (hal. Iyong mga setting ng network at ilang mga detalye mula sa iyong pagsasaayos ng Hue). Kung ito ay medyo nakakatakot, huwag magalala, tutulungan kita na makuha ang lahat ng impormasyong kailangan mo.
Hakbang 2: Ang Kahon at Wand
Ang mga unang hakbang ay karaniwang ang pinakamahirap, ngunit hindi sa itinuturo na ito! Para sa isang madaling pagsisimula, makakabili ka lamang ng isang magic wand mula sa isang tindahan ng laruan at para sa kahon maaari mo lamang magamit muli ang isang mayroon nang maliit na kahon na nakahiga ka na. Siguraduhin lamang na ang kahon ay hindi gawa sa metal, dahil pipigilan nito ang mga signal ng wifi at kailangan namin ang mga para sa mahika;-).
Kapag muling nilalayon mo ang isang mayroon nang kahon, ang tanging bagay na kailangan mong gawin ay ang gumawa ng dalawang butas sa tuktok ng kahon: 1 maliit na butas (laki 5mm = 0.2 ") para sa RGB led at isang mas malaking butas (sa paligid ng 12- 14mm o tungkol sa 0.5 ") para sa touch sensor.
Ang eksaktong paglalagay ng mga butas ay hindi kritikal, ilagay lamang ang mga ito ayon sa iyong pakiramdam ng mga estetika ngunit tandaan ang ilang mga bagay:
- Panatilihin ang ilang distansya sa pagitan ng parehong mga butas upang matiyak na ang mga bahagi na mai-mount sa ilalim ng mga butas (ang RGB na humantong at ang touch sensor) ay pinapayagan na sakupin ang sapat na puwang para sa pag-mount at mga kable.
- Ang pinakamalaking butas ay para sa touch sensor. Ang sensor na ito ay mai-mount sa ilalim lamang ng butas, sa isang paraan na maaari itong mahawakan (at kahit na medyo pinindot) ng wand. Kaya siguraduhing ang wand na iyong bibilhin ay hindi masyadong makapal!
Opsyonal na maaari mong gamitin ang (spray) pintura o pambalot na papel at takpan ang plastik upang gawing mas maganda ang iyong kahon at protektahan ito mula sa mga natapon na pagkain at maruming kamay.
Kung ang unang hakbang na ito ay medyo hindi masasabi sa gusto mo, mangyaring magpatuloy at lumikha ng isang kahon at ganap na gumala mula sa simula! Mayroong maraming mga konstruksyon doon na makakatulong sa iyo upang lumikha ng isang magandang wand
Anumang landas na pinili mo, oras na ngayon upang galugarin ang loob ng kahon.
Hakbang 3: Ang Hardware sa Loob
Gumamit ng isang soldering iron upang ikonekta ang mga elektronikong sangkap ayon sa circuit diagram sa itaas. Mayroong isang pares ng mga bagay na dapat bigyang-pansin ang:
- Ang mga wire sa pagitan ng Wemos D1 Mini at ng RGB na humantong ay dapat sapat na mahaba upang ang RGB led ay maaaring mai-mount sa butas na ginawa mo sa takip ng kahon.
- Ang parehong bilang para sa mga wire na nakakabit sa panandaliang switch at touch sensor dahil ang mga ito ay maaaring ma-access sa pamamagitan ng iba pang butas sa talukap ng mata.
- Ang pindutan ng pansamantalang paglipat ay dapat na nakadikit sa ilalim (ang hindi sensitibong bahagi) ng touch sensor, sa paraang maaari mong ibalik ang pindutan sa panandaliang paglipat na nakadikit ang touch sensor (tingnan ang larawan). Ang touch sensor ay naka-mount sa tuktok ng pansamantalang paglipat upang makita ang mga pagpindot sa pindutan na ginagawa ng isang daliri, kung saan hindi papansinin ang pagpindot ng pindutan. Lamang kapag ang pindutan ay pinindot ng magic wand (na dapat ay hindi kondaktibo, kaya't ang mga plastik at kahoy ay mabuti), magsisimula ang magic cycle.
- I-mount ang panandaliang pindutan gamit ang touch sensor sa tuktok na hindi masyadong malalim sa ilalim ng butas sa talukap ng mata, sapagkat kailangan itong maabot ng magic wand upang maitakda ang paggalaw ng mahika.
- Siguraduhing obserbahan ang polarity ng capacitor kapag hinihinang ito. Kung baligtarin mo ang positibo at negatibong mga lead, ang capacitor ay malamang na maglabas ng ilang mga usok ng mahika at ilagay ang iyong circuit sa isang walang hanggang pagtulog.
- Pandikit, tape at o i-tornilyo ang may hawak ng baterya at mga (na) PCB sa lugar. Hindi ito kailangang maging maayos, dahil hindi ito makikita. Dapat ay drop proof lang ito.
Bukas sa software!
Hakbang 4: Ang Software
Tiyaking mayroon kang pinakabagong (libre) Arduino software editor, na maaaring ma-download sa https://www.arduino.cc/en/Main/Software. Upang magdagdag ng suporta para sa Wemos D1 mini at iba pang mga board na batay sa ESP8266, gawin ang mga sumusunod na hakbang:
- Pagkatapos ng pag-install, simulan ang Arduino software at buksan ang window ng Mga Kagustuhan.
- Ipasok ang https://arduino.esp8266.com/stable/package_esp8266com_index.json sa patlang na "Karagdagang Mga URL ng Board Manager". Maaari kang magdagdag ng maraming mga URL, paghiwalayin ang mga ito sa mga kuwit.
- Buksan ang Boards Manager mula sa Mga Tool> Menu ng board at i-install ang platform ng esp8266 (at huwag kalimutang piliin ang iyong board na ESP8266 mula sa Mga Tool> Board menu pagkatapos ng pag-install. "LOLIN (WEMOS) D1 R2 & mini" ay pinakamahusay na gumagana para sa Wemos D1 mini v2 at v3 mga board.
Kung kailangan mo ng karagdagang tulong sa pag-install ng Arduino at pag-set up ng mga driver maaari kang tumingin sa
Sa editor ng Arduino, buksan ang isang bagong file (File> Bago) at kopyahin / i-paste ang code sa ibaba sa window na bubukas lamang. Patungan lang ang mga linya na mayroon na sa bagong window (walang bisa ang pag-setup at void loop).
Ngayon ay halos handa ka na, ngunit kakailanganin mong umangkop ng ilang mga piraso ng code para sa iyong partikular na pag-set up.
Ang unang bagay na dapat gawin ay baguhin ang ip address sa linya 34 (sa Arduino editor ang mga linya ng code ay may bilang) sa ip address ng iyong Hue tulay. Kung hindi mo alam ang iyong Hue Bridge IP address, bisitahin ang https://discovery.meethue.com/ at ang tamang IP address ay lilitaw kaagad ito sa iyong browser. Ang ip address ay ang tuldok na numero na naunahan ng "internalipaddress".
Upang makipag-usap sa mga ilaw ng Hue, kakailanganin mong lumikha ng isang gumagamit ng Hue API para sa Wemos D1 mini, upang ang Wemos ay maaaring makipag-usap sa Hue light sa pamamagitan ng Hue API. Upang magawa iyon, sundin ang mga tagubilin sa https://developers.meethue.com/develop/get-started-2/ at kopyahin / i-paste ang nabuong (medyo mahaba) na username sa window ng Arduino code. Palitan lamang ang bawat "IYONG HUE API USERNAME" ng nabuong API username.
Pagkatapos ay kailangan mong piliin ang tamang Hue light upang baguhin ang kulay. Sa Hue API bawat ilaw ay may isang numero, kaya kailangan mong malaman ang numero na tumutugma sa ilaw na nais mong gamitin para sa proyektong ito. Ang isa sa pinakamadaling paraan upang malaman kung aling numero ang mayroong isang partikular na ilaw, ay ang pag-download ng Hue Viewer App para sa Android o iOS. Palitan ang teksto ng "IYONG LIGHT NUMBER" ng tamang numero saan man sa window ng Arduino code.
Ang huling bagay na dapat gawin ay ang pag-setup ng Wemos upang kumonekta sa iyong wifi network. Ginagawa ito sa pamamagitan ng pag-upload ng code sa Wemos at sa iyong laptop switch sa isa pang wifi network: sa "AutoConnectAP". Ipapakita ng iyong browser ang isang pahina kung saan maaari mong idagdag ang SSID (pangalan) at password ng iyong wifi network na gagamitin ng Wemos controller upang kumonekta sa iyong wifi network (at sa Hue bridge).
NB: Kung ang pag-upload ng code sa aming Wemos D1 mini sa pamamagitan ng USB ay hindi gumagana, maaaring kailanganin mong mag-download ng driver para sa USB chip sa Wemos. Ang isang driver para sa iyong platform (Windows, Mac) ay maaaring ma-download sa
Ngayon handa ka na upang subukan ang iyong nilikha!
// ESP8266 Hue Magic Wand // Richard van Kampen - 2018 // Ang code na ito ay nasubok sa isang Wemos D1 mini, ngunit malamang na gagana rin sa iba pang mga board ng pag-unlad na nakabatay sa ESP8266 // Upang magdagdag ng suporta para sa Wemos D1 mini at iba pang mga board ng ESP8266 sa Arduino editor, gawin ang mga sumusunod na hakbang: // - Simulan ang Arduino at buksan ang window ng Mga Kagustuhan. // - Ipasok ang https://arduino.esp8266.com/stable/package_esp8266com_index.json sa patlang ng Mga Karagdagang Board Manager URL. Maaari kang magdagdag ng maraming mga URL, paghiwalayin ang mga ito sa mga kuwit. // - Open Boards Manager mula sa Mga Tool> Menu ng board at i-install ang platform ng esp8266 (at huwag kalimutang piliin ang iyong board ng ESP8266 mula sa Mga Tool> Board menu pagkatapos ng pag-install). // used libraries: #include "ESP8266WiFi.h" // ESP8266 Core WiFi Library #include "DNSServer.h" // Lokal na DNS Server na ginamit para sa pag-redirect ng lahat ng mga kahilingan sa portal ng pagsasaayos ng WiFiManager kung walang mga setting ng WIFI (SSID, password) hindi pa naitakda. # isama ang "ESP8266WebServer.h" // Ang Local WebServer ay dating naglilingkod sa WiFiManager portal ng pagsasama # isama ang "WiFiManager.h" // WiFi Configuration Magic library, kung hindi pa naka-install mangyaring sumangguni sa https://github.com/tzapu/WiFiManager # install-through-library-manager #include "RestClient.h" // https://github.com/fabianofranca/ESP8266RestClient, kinakailangan para sa paggamit ng Philips Hue API (tingnan ang https://developers.meethue.com/develop/ hue-api /). # isama ang "ArduinoJson.h" // https://github.com/bblanchon/ArduinoJson, kinakailangan upang pag-aralan ang Hue API na tugon, mangyaring i-install ang bersyon 5.x sa pamamagitan ng manager ng library sa Arduino (Menu "Sketch"> Isama ang Library> Pamahalaan Mga aklatan> maghanap para sa ArduinoJson at baguhin ang bersyon sa pinakabagong 5.x). Ang bersyon 6 (kasalukuyang nasa beta) ay nagtatapon ng isang error. // variable at init: String na tugon; Const int redPin = 13; // sa Wemos ito ay d7 const int greenPin = 12; // sa Wemos ito ay d6 const int bluePin = 14; // sa Wemos ito ay d5 const int touchSensor = 5; // sa Wemos ito ay d1 const int activationPin = 4; // sa Wemos ito ay d2 bool activation = HIGH; bool touch = LOW; const char * aan_restore; int bri_restore; doble x_restore; doble y_restore; doble x_magic; doble y_magic; bool muna = totoo; unsigned mahabang startMillis; unsigned mahabang kasalukuyangMillis; unsigned mahabang tagal ngMillis; RestClient client = RestClient ("192.168.178.23"); // "your Hue Bridge IP address" // Kung hindi mo alam ang iyong Hue Bridge IP address, bisitahin ang https://discovery.meethue.com at lilitaw kaagad ito sa iyong browser. Ang ip address ay ang tuldok na numero na naunahan ng "internalipaddress" na walang bisa na setup () {analogWriteRange (255); Serial.begin (9600); // Magsimula sa LED off. pinMode (activationPin, INPUT_PULLUP); pinMode (touchSensor, INPUT); startMillis = millis (); checkWand (); } void loop () {// walang gagawin dito, iwanang walang laman …} void checkWand () {int rgbColour [3]; // RGB color code ni James Harton, https://gist.github.com/jamesotron/766994 // Magsimula sa pula. rgbColour [0] = 255; rgbColour [1] = 0; rgbColour [2] = 0; activation = digitalRead (activationPin); // LOW nangangahulugang ginagamit ang wand. hawakan = digitalRead (touchSensor); // HIGH nangangahulugang ginagamit ang daliri sa halip na wand, na hindi dapat ganito. habang (activation == LOW && touch == LOW) {// Piliin ang mga kulay sa pagtaas at pagkabawas. para sa (int decColour = 0; decColour <3; decColour + = 1) {int incColour = decColour == 2? 0: decColour + 1; // = ternary operator, nangangahulugang: int incColour; kung (decColour == 2) {incColour = 0;} iba pa {incColour = decColour +1;} // cross-fade ang dalawang kulay. para sa (int i = 0; i <255; i + = 1) {rgbColour [decColour] - = 1; rgbColour [incColour] + = 1; // dahil ang aming RGB led ay may isang karaniwang anode sa halip na cathode (kaya kailangan nating kumonekta sa + 3.3V sa halip na ground), kailangan namin ng mga kabaligtaran na halaga para sa RGB: int red = 255 - rgbColour [0]; int green = 255 - rgbColour [1]; int blue = 255 - rgbColour [2]; analogWrite (redPin, pula); analogWrite (greenPin, berde); analogWrite (bluePin, blue); antala (8); activation = digitalRead (activationPin); kung (activation == MATAAS) {// HIGH nangangahulugang ang wand ay binuhat. goto stopColorCycling; }}}} stopColorCycling: currentMillis = millis (); durationMillis = (currentMillis - startMillis); kung (DurationMillis> 1000) {RGBtoxy (rgbColour [0], rgbColour [1], rgbColour [2]); } iba pa {// ilagay ang Wemos sa mode ng pagtulog: ESP.deepS Sleep (0); }} void RGBtoxy (int red, int green, int blue) {// see https://developers.meethue.com/documentation/color-conversions-rgb-xy double R = mapa (pula, 0, 255, 0, 1000); R / = 1000; doble G = mapa (berde, 0, 255, 0, 1000); G / = 1000; dobleng B = mapa (asul, 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); doble X = R * 0.649926f + G * 0.103455f + B * 0.197109f; doble Y = R * 0.234327f + G * 0.743075f + B * 0.022598f; doble Z = R * 0.0000000f + G * 0.053077f + B * 1.035763f; doble x = X / (X + Y + Z); doble y = Y / (X + Y + Z); // conversion hindi kumpletong nakumpleto, ngunit marahil sapat na mahusay para sa kung ano ang nais nating makamit, kaya't iwanan ito at magpadala ng mga halagang XY sa lampara: sendtoHue (x, y); } void sendtoHue (doble a, dobleng b) {// aktwal na pagbabago ng kulay mula sa wand magic kung (una) {// unang pumasa: kumuha ng kasalukuyang lampara ng estado ng lampara getCurrentValues (); } // pagkatapos ay magpadala ng mga kulay ng magic wand: // maghintay para sa spell: mahabang paghintay; x_magic = a; y_magic = b; // lampara sa kulay ng magic wand: tugon = ""; int temp = random (2, 9); const char * state = "totoo"; para sa (int i = 1; i <= temp; i ++) {// lumikha ng char array upang ipadala sa tulay: String temp_body1 = "{" on / ":" + String (state) + ", \" bri / ": 220, / "xy \": ["+ String (x_magic) +", "+ String (y_magic) +"], / "transitiontime \": 1} "; int str_len1 = temp_body1.length () + 1; char post_body1 [str_len1]; temp_body1.toCharArray (post_body1, str_len1); // ngayon mayroon kaming post_body1 bilang char array; // make rest call: int statusCodePut1 = client.put ("/ api / IYONG HUE API USERNAME / ilaw / IYONG NILANG BILANG / estado", post_body1, at tugon); maghintay = random (100, 600); antala (maghintay); kung (state == "true") {state = "false"; } iba pa {estado = "totoo"; }} // bawasan ang ningning …: response = ""; temp = random (4, 17); // create char array upang ipadala sa tulay: String temp_body2 = "{" on / ": true, \" bri / ": 154, \" transitiontime / ":" + String (temp) + "}"; int str_len2 = temp_body2.length () + 1; char post_body2 [str_len2]; temp_body2.toCharArray (post_body2, str_len2); // ngayon mayroon kaming post_body2 bilang char array; // make rest call: int statusCodePut2 = client.put ("/ api / IYONG HUE API USERNAME / ilaw / IYONG BILANG NG NILALAMAN / estado", post_body2, at tugon); maghintay = random (1000, 2500); antala (maghintay); //..at gawing mas maliwanag muli: tugon = ""; temp = random (4, 17); // create char array upang ipadala sa tulay: String temp_body3 = "{" bri_inc / ": 100, \" transitiontime / ":}"; int str_len3 = temp_body3.length () + 1; char post_body3 [str_len3]; temp_body3.toCharArray (post_body3, str_len3); // ngayon mayroon kaming post_body3 bilang char array; // make rest call: int statusCodePut3 = client.put ("/ api / IYONG HUE API USERNAME / ilaw / IYONG BILANG NG LIGHT / estado", post_body3, at tugon); maghintay = random (2500, 5000); // maghintay ng 2-5 segundo na pagkaantala (maghintay); // at maglaho pabalik sa dating halaga: tugon = ""; // create char array upang ipadala sa tulay: String temp_body4 = "{" on / ":" + String (aan_restore) + ", \" bri / ":" + String (bri_restore) + ", \" xy / ": ["+ String (x_restore) +", "+ String (y_restore) +"], / "transitiontime \": "+ String (20) +"} "; int str_len4 = temp_body4.length () + 1; char post_body4 [str_len4]; temp_body4.toCharArray (post_body4, str_len4); // ngayon mayroon kaming post_body4 bilang char array; // make rest call: int statusCodePut4 = client.put ("/ api / IYONG HUE API USERNAME / ilaw / IYONG BILANG NG LIGHT / estado", post_body4, at tugon); ESP.deepS Sleep (0); // matutulog ulit…. } unsigned int getCurrentValues () {connectWifi (); // unang kumonekta sa Wifi response = ""; // make rest call: int statusCodeGet = client.get ("/ api / IYONG HUE API USERNAME / ilaw / IYONG LAMANG BILANG", & tugon); Serial.print ("Status code mula sa server pagkatapos ng GET:"); Serial.println (statusCodeGet); Serial.print ("Katawan ng tugon mula sa server:"); Serial.println (tugon); StaticJsonBuffer jsonBuffer; // Parsing Json response // Root ng puno ng bagay. // // Ito ay isang sanggunian sa JsonObject, ang aktwal na mga byte ay nasa loob ng // jsonBuffer kasama ang lahat ng iba pang mga node ng puno ng bagay. // Memory ay napalaya kapag jsonBuffer napupunta sa labas ng saklaw. JsonObject & root = jsonBuffer.parseObject (tugon); JsonObject & state = root ["state"]; // Subukan kung magtagumpay ang pag-parse. kung (! root.success ()) {Serial.println ("parseObject () bigo"); } // Mga halagang kuha. aan_restore = estado ["on"]; Serial.println (aan_restore); bri_restore = estado ["bri"]; x_restore = estado ["xy"] [0]; y_restore = estado ["xy"] [1]; una = false;} void connectWifi () {// Local intialization. Kapag tapos na ang negosyo, hindi na kailangang panatilihin ito sa paligid ng WiFiManager wifiManager; // reset setting - para sa pagsubok: //wifiManager.resetSettings (); // itakda ang callback na tatawag kapag kumonekta sa nakaraang WiFi ay nabigo, at pumapasok sa Access Point mode wifiManager.setAPCallback (configModeCallback); // fetches ssid and pass at sumusubok na kumonekta // kung hindi ito kumonekta nagsisimula ito ng isang access point na may tinukoy na pangalan // dito "AutoConnectAP" // at pumupunta sa isang loop ng paghihintay na naghihintay ng pagsasaayos kung (! wifiManager.autoConnect ()) {Serial.println ("nabigong kumonekta at mag-timeout"); // reset at subukang muli, o marahil ilagay ito sa mahimbing na pagtulog ng ESP.reset (); pagkaantala (1000); } // kung makarating ka dito nakakonekta ka sa WiFi Serial.println ("konektado… yeey:)"); Serial.print ("Nakakonekta sa:"); Serial.println (WiFi. SSID ()); Serial.print ("IP address:"); Serial.println (WiFi.localIP ()); // IP address na nakatalaga sa iyong ESP (Wemos) // i-print ang natanggap na lakas ng signal: mahabang rssi = WiFi. RSSI (); Serial.print ("lakas ng signal (RSSI):"); Serial.println (rssi); } void configModeCallback (WiFiManager * myWiFiManager) {Serial.println ("Pinasok na config mode"); Serial.println (WiFi.softAPIP ()); // kung gumamit ka ng auto generated SSID, i-print ito Serial.println (myWiFiManager-> getConfigPortalSSID ()); }
Inirerekumendang:
Lumulutang na Smart Magic Mirror Mula sa Lumang Laptop Na May Pagkilala sa Boses ng Alexa: 6 Mga Hakbang (na may Mga Larawan)
Lumulutang na Smart Magic Mirror Mula sa Lumang Laptop Na May Pagkilala sa Boses ng Alexa: Mag-enrol sa aking kurso na 'Electronics in a nutshell' dito: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARK Suriin din ang aking youtube channel dito para sa higit pang mga proyekto at tutorial sa electronics: https://www.youtube.com/channel/UCelOO
Ilunsad ang Iyong Larawan sa Holiday Larawan Sa Isang Touch ng Magic!: 9 Mga Hakbang (na may Mga Larawan)
Ilunsad ang Iyong Mga Larawan sa Holiday Larawan Sa Isang Touch ng Magic!: Sa paglipas ng mga taon, nabuo ko ang isang ugali ng pagkuha ng isang maliit na pigurin sa akin kapag naglalakbay: Madalas akong bumili ng isang maliit, blangko na artoy (tulad ng nasa larawan) at pintura upang itugma ang watawat at tema ng bansang aking binibisita (sa kasong ito, Sisilia). T
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Mga Kapansanan sa Locomotor: 9 Mga Hakbang (na may Mga Larawan)
Ang Laser Pointer na naka-mount sa spectacle para sa Mga Taong May Kapansanan sa Locomotor: Ang mga taong may malubhang mga kapansanan sa lokomotor tulad ng mga sanhi ng cerebral palsy ay madalas na may mga kumplikadong pangangailangan sa komunikasyon. Maaaring kailanganin silang gumamit ng mga board na may alpabeto o karaniwang ginagamit na mga salitang nakalimbag sa kanila upang makatulong sa komunikasyon. Gayunpaman, marami
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w