Съдържание:

Сензорна лампа за водолазна каска: 5 стъпки
Сензорна лампа за водолазна каска: 5 стъпки

Видео: Сензорна лампа за водолазна каска: 5 стъпки

Видео: Сензорна лампа за водолазна каска: 5 стъпки
Видео: Самозатемняющийся фильтр - РЕМОНТ за 2 минуты 2024, Юли
Anonim
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска
Сензорна лампа за водолазна каска

В тази инструкция

Ще имаш нужда

  1. Шлем за гмуркане или еквивалент
  2. Неопикселов съвместим LED пръстен (използвах пръстен с 38 светодиода)
  3. Платка Wemos ESP32 (или еквивалентна)
  4. 3D принтер

Стъпка 1: Отпечатайте тези части

Може да се наложи адаптиране на тези части, ако използвате различен шлем за гмуркане, научих, че този, който имам, е доста често срещан

Стъпка 2: Качете кода

Поставете своя ssid и парола в кода, след което го качете на дъската си. Това е там, за да позволи на OTA да качва нов код след сглобяването на проекта. Ще трябва да инсталирате NeoPixelBus от Makuna, достъпен тук https://github.com/Makuna/NeoPixelBus Също така ще трябва да инсталирате определенията на ESP32 платка в средата arduino, за да използвате тази платка.

// 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 Пулс = 1600; // Половината от времето между пулсациите RgbColor черно (0); // Button Jazz float Button1_total = 0; int изглаждане = 50; const int debounce = 5; float Button1 [debounce]; 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 (черно); 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"; // ЗАБЕЛЕЖКА: if актуализиране на SPIFFS това би било мястото за демонтиране на SPIFFS с помощта на SPIFFS.end () Serial.println ("Започнете актуализиране" + тип);}).onEnd ( () {Serial.println ("\ nEnd");}), грешка) {Serial.printf ("Грешка [%u]:", грешка); ако (грешка == OTA_AUTH_ERROR) Serial.println ("Удостоверяване неуспешно"); иначе ако (грешка == OTA_BEGIN_ERROR) Serial.println ("Започнете Failed "); else if (error == OTA_CONNECT_ERROR) Serial.println (" Connect Failed "); else if (error == OTA_RECEIVE_ERROR) Serial.println (" Receive Failed "); else if (error == OTA_END_ERROR) Serial. println ("End Failed");}); 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/smoothing; // плаващ ток = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (текущ); Serial.print (""); Serial.println (Button1 [debounce-1]); if (текущ <(0.85*Button1_smooth)) {Button1_total = 0; // работи като връщане на дебаунд 1; } else {Button1_total = current +Button1_total -Button1_smooth; } връщане 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; поплавък mnm = MaxMe [0]; for (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 отпечатаната преграда, след което я закрепете с гайката.

Вместо това може да се използва всяко захранване с 5V DC, но в моята къща има USB зарядни устройства. Използвах оплетен usb кабел, за да имитирам стара гъвкавост и да завърша външния вид.

С това сте свършили.

Ако искате да промените кода, за да изпробвате допълнителни цветове, ефекти или таймери, той ще бъде достъпен като arduino OTA устройство за първите 10 минути всеки път, когато е включен. Това ще се изключи, за да пести енергия.

Препоръчано: