Բովանդակություն:

Diving սաղավարտ Touch լամպ `5 քայլ
Diving սաղավարտ Touch լամպ `5 քայլ

Video: Diving սաղավարտ Touch լամպ `5 քայլ

Video: Diving սաղավարտ Touch լամպ `5 քայլ
Video: 10 վարժություն `ձեր մարմինը 5 րոպեում վերափոխելու համար 2024, Նոյեմբեր
Anonim
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ
Diving սաղավարտ Touch լամպ

Այս ուսանելի

Ձեզ պետք կգա

  1. Սուզվող սաղավարտ կամ համարժեք
  2. Neopixel- ի հետ համատեղ LED օղակ (ես օգտագործել եմ 38 LED- ով օղակ)
  3. Wemos ESP32 տախտակ (կամ համարժեք)
  4. 3D տպիչ

Քայլ 1: Տպեք այս մասերը

Այս մասերը կարող են հարմարվել, եթե դուք օգտագործում եք այլ սուզվող սաղավարտ, ես իմացա, որ այն, ինչ ես ունեմ, բավականին տարածված է

Քայլ 2: Վերբեռնեք ծածկագիրը

Տեղադրեք ձեր ssid- ը և գաղտնաբառը կոդի մեջ, այնուհետև վերբեռնեք ձեր տախտակին: Սա այնտեղ է, որպեսզի OTA- ն նախագծի հավաքումից հետո վերբեռնի նոր ծածկագիր: Այս տախտակից օգտվելու համար ձեզ հարկավոր կլինի տեղադրել NeoPixelBus by Makuna- ն, որը հասանելի է այստեղ https://github.com/Makuna/NeoPixelBus Դուք նաև պետք է տեղադրեք ESP32 տախտակի սահմանումները arduino միջավայրում:

// Wifi Jazz #include #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* գաղտնաբառ = "Գաղտնաբառ"; // Neopixel ջազ #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Պայծառություն = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // ulsարկերակների միջև կես անգամ RgbColor սև (0); // Button Jazz float Button1_total = 0; int հարթեցում = 50; const int debounce = 5; float Button1 [դեբունս]; bool PWR = 0; NeoPixelBus մատանի (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println («Արշավ»); WiFi.mode (WIFI_STA); WiFi.begin (ssid, գաղտնաբառ); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Կապը ձախողվեց"); ուշացում (5000); //ESP.restart (); } OTA_init (); touch_pad_init (); touchSetCycles (0x6000, 0x6000); // touch_pad_set_cnt_mode (0, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_HIGH); մատանի. Սկսել (); մատանի. (ուցադրել (); } void loop () {if (millis () <600000) {ArduinoOTA.handle ();} else if (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } if (button1_capture () == 1) {ring. ClearTo (սև); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} ուշացում (10); } void OTA_init () {ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // NOTE: if SPIFFS- ի թարմացում, սա SPIFFS.- ի միջոցով SPFFS- երը ապամոնտաժելու տեղ է:.onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progress:%u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t սխալ) {Serial.printf ("Սխալ [%u]:", սխալ); եթե (սխալ == OTA_AUTH_ERROR) Serial.println ("Հեղինակությունը ձախողվեց"); այլապես եթե (սխալ == OTA_BEGIN_ERROR) Serial.println ("Սկիզբ Չհաջողվեց »); հակառակ դեպքում (սխալ == OTA_CONNECT_ERROR) Serial.println (" Միացումը ձախողվեց "); հակառակ դեպքում եթե (սխալ == OTA_RECEIVE_ERROR) Serial.println (" Ստացվածը ձախողվեց "); այլ դեպքում եթե (սխալ == OTA_END_ERROR) Սերիա: println («Վերջը ձախողվեց»);}); ArduinoOTA.begin (); Serial.println («Պատրաստ է»); Serial.print («IP հասցե ՝»); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Կոճակ 1 [դեբունս -1] = (touchRead (T0)); բոց հոսանք = MaxArray (Կոճակ 1); float Button1_smooth = Button1_total/smoothing; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); if (ընթացիկ <(0.85*Button1_smooth)) {Button1_total = 0; // աշխատում է որպես դեբունսի վերադարձ 1; } else {Button1_total = ընթացիկ +Button1_total -Button1_smooth; } վերադարձ 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; համար (int i = 0; imxm) {mxm = MaxMe ; }} վերադարձ mxm; } float AveArray (float AveMe ) {float total = 0; բոց պող = 0; համար (int i = 0; i

Քայլ 3: Հավաքում

Ժողով
Ժողով

Լարացրեք ձեր տախտակը, ինչպես ցույց է տրված և ստուգեք, որ այն աշխատում է:

«Բռնակին» միացված ցանցը գործելու է որպես հպման կոճակ: Իմ տախտակին ESP32 T0- ը կցված է D4- ին: Այլ տախտակ օգտագործելու դեպքում դա պետք է ստուգեք:

Այս կապում մերկ մետաղալար կցելը նույն կերպ կպահի իրեն: Երկու անգամ սեղմելով ՝ այն ցածր կդառնա գիշերային լույսի պես: 3 անգամ մի փոքր պայծառ և 4 անգամ սպիտակ:

Քայլ 4. Հավաքեք մասերը սաղավարտի մեջ

Հավաքեք մասերը սաղավարտի մեջ
Հավաքեք մասերը սաղավարտի մեջ
Հավաքեք մասերը սաղավարտի մեջ
Հավաքեք մասերը սաղավարտի մեջ

Լամպը միացնելու համար մենք կօգտագործենք սաղավարտի բռնակը որպես հպման ցուցիչ: Սա նշանակում է, որ այն պետք է մեկուսացված լինի սաղավարտի մնացած մասից: Հեռացրեք բռնակը և ծածկեք շփման դեմքը մեկուսիչ ժապավենով: Ես օգտագործել եմ շագանակագույն ժապավենը, որպեսզի այն խառնվի, այն պատկերում ընդգծված է կապույտ: Հորատեք անցքերն այնպես, որ պտուտակները բաց լինեն և նորից ամրացվեն մյուս կողմից պլաստիկ լվացքի մեքենաներով:

Միացրեք ձեր կոճակը բռնակի պտուտակներից մեկին `սեղմիչ միակցիչով:

Եթե նախատեսում եք օգտագործել լողացող սնուցման աղբյուր (գրեթե բոլորը), ապա ձեզ հարկավոր է նույն կերպ GND կապը միացնել սաղավարտի մարմնին: Այժմ լամպը միացնելու համար մի ձեռքը դրեք սաղավարտի վրա և մյուսով դիպչեք բռնակին:

Քայլ 5: Միացրեք հոսանքը

Image
Image
Միացրեք Power- ը
Միացրեք Power- ը

Պտուտակեք միկրո USB ճեղքման տախտակը 3D տպված միջնապատի միակցիչին, այնուհետև ամրացրեք ընկույզով:

Փոխարենը կարող է օգտագործվել ցանկացած 5V DC սնուցման աղբյուր, բայց USB լիցքավորիչներն առատ են իմ տանը: Ես օգտագործեցի հյուսված USB մալուխ `նմանակելու համար հին ճկուն և ամբողջական տեսքը:

Ահա թե ինչ եք ավարտել:

Եթե ցանկանում եք փոփոխել ծածկագիրը `լրացուցիչ գույներ, էֆեկտներ կամ ժամաչափեր փորձելու համար, ապա այն հասանելի կլինի որպես arduino OTA սարք առաջին 10 րոպեի ընթացքում ամեն անգամ, երբ այն միացված է: Դա այնուհետև անջատվելու է էներգիան խնայելու համար:

Խորհուրդ ենք տալիս: