Мазмуну:

Сууга секирүүчү каска Touch Lamp: 5 кадам
Сууга секирүүчү каска Touch Lamp: 5 кадам

Video: Сууга секирүүчү каска Touch Lamp: 5 кадам

Video: Сууга секирүүчү каска Touch Lamp: 5 кадам
Video: ТЕСТ ДРАЙВ Китай ЭлектроТРИЦИКЛ BR40 SKYBOARD трехколесный электроскутер citycoco 3000w электротрайк 2024, Июль
Anonim
Дайвинг каскасы тийүү чырагы
Дайвинг каскасы тийүү чырагы
Дайвинг каскасы тийүү чырагы
Дайвинг каскасы тийүү чырагы
Дайвинг каскасы тийүү чырагы
Дайвинг каскасы тийүү чырагы
Сууга түшүүчү каска тийүү чырагы
Сууга түшүүчү каска тийүү чырагы

Бул көрсөтмөдө

Сага керек болот

  1. Сууга түшүүчү туулга же эквиваленти
  2. Neopixel шайкеш LED шакеги (мен 38 LED менен шакек колдондум)
  3. Wemos ESP32 тактасы (же эквиваленти)
  4. 3D принтер

1 -кадам: Бул бөлүктөрдү басып чыгаруу

Эгерде сиз башка сүзүү туулгасын колдонуп жатсаңыз, бул бөлүктөрдү ыңгайлаштыруу керек болушу мүмкүн, менде менде болгон нерсе абдан кеңири таралган экенин билдим

2 -кадам: Кодду жүктөө

Кодуңузга ssid менен сырсөзүңүздү коюп, анан тактаңызга жүктөңүз. Бул долбоор чогултулгандан кийин OTAга жаңы кодду жүктөөгө уруксат берүү үчүн бар. Сиз бул жерде бар Makuna тарабынан NeoPixelBus орнотушуңуз керек https://github.com/Makuna/NeoPixelBus Ошондой эле бул тактаны колдонуу үчүн arduino чөйрөсүнө ESP32 тактасынын аныктамаларын орнотушуңуз керек болот.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Сырсөз"; // 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; // Pulsations ортосундагы жарым убакыт RgbColor black (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); ring. Begin (); ring. Show (); } 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 (black); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} delay (10); } void OTA_init () {ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // NOTE: if SPIFFSти жаңыртуу бул SPIFFS.end () Serial.println ("Жаңыртууну баштоо" + түрү);}).onEnd ( () {Serial.println ("\ nАкыры");}) аркылуу SPIFFSти ажыратуу үчүн жер болмок..onProgress ( (колу жок прогресс, кол коюлбаган int)) {Serial.printf ("Прогресс:%u %% / r", (прогресс / (бардыгы / 100)));}).onError ( (ota_error_t ката) {Serial.printf ("Error [%u]:", error); if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); if if (error == 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]; } Button1 [debounce-1] = (touchRead (T0)); учурма ток = MaxArray (Button1); float Button1_smooth = Button1_total/текшилөө; // учурма ток = 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 = current +Button1_total -Button1_smooth; } return 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; float ave = 0; үчүн (int i = 0; i

3 -кадам: Ассамблея

Ассамблея
Ассамблея

Тактаңызды көрсөтүлгөндөй зым менен жабыңыз жана анын иштээрин текшериңиз.

'Туткасына' туташкан тор сенсордук баскычтын милдетин аткарат. Менин бортумда ESP32 T0 D4кө тиркелет. Башка тактаны колдонсоңуз, муну текшеришиңиз керек болот.

Бул төөнөгүчкө жылаңач зым туташтыруу да ушундай болот. Аны эки жолу басуу түнкү чырак сыяктуу төмөн күйөт. 3 эсе кичине жарык жана 4 эсе ак.

4 -кадам: Бөлүктөрдү туулгага чогултуңуз

Бөлүктөрдү туулгага чогултуп алыңыз
Бөлүктөрдү туулгага чогултуп алыңыз
Бөлүктөрдү туулгага чогултуп алыңыз
Бөлүктөрдү туулгага чогултуп алыңыз

Лампаны күйгүзүү үчүн биз туулга туткасын сенсордук сенсор катары колдонобуз. Бул башка туулгадан изоляцияланышы керек дегенди билдирет. Туткасын алып салуу жана байланыш бетин жылуулоо тасмасы менен жаап. Мен аны аралаштыруу үчүн күрөң скотч колдондум, ал сүрөттө көк түстө көрсөтүлгөн. Бурамалар боштондукта болушу үчүн тешиктерди бургула жана экинчи жагындагы пластикалык шайбалар менен кайра орнотуңуз.

Кнопканы туташтыргычтын жардамы менен туткалардын бурамаларына кошуңуз.

Эгерде сиз калкып туруучу электр энергиясын колдонууну пландап жатсаңыз (алардын дээрлик бардыгы), анда сиз GND пинин туулга корпусуна ушундай жол менен туташтырышыңыз керек болот. Эми чыракты күйгүзүү үчүн бир колуңузду туулгага коюп, экинчи колуңуз менен туткасын тийгизиңиз.

5 -кадам: Күчтү туташтыруу

Image
Image
Күчтү туташтыруу
Күчтү туташтыруу

Микро USB сынык тактасын 3D басылган капкак коннекторуна сайыңыз, андан кийин гайка менен бекитилсин.

Анын ордуна каалаган 5В туруктуу токту колдонсо болот, бирок менин үйүмдө USB кубаттагычтары көп. Мен эски ийкемди туурап, көрүнүшүн толуктоо үчүн өрүлгөн USB кабелин колдондум.

Мына ушуну менен бүттүңүз.

Эгерде сиз кошумча түстөрдү, эффекттерди же таймерлерди сынап көрүү үчүн кодду өзгөрткүңүз келсе, анда ал ар бир туташтырылганда биринчи 10 мүнөттө arduino OTA түзмөгү катары жеткиликтүү болот. Бул кубатты үнөмдөө үчүн өчүрүлөт.

Сунушталууда: