Оглавление:
- Шаг 1. Распечатайте эти детали
- Шаг 2. Загрузите код
- Шаг 3: Сборка
- Шаг 4: соберите детали в шлем
- Шаг 5: Подключите питание
Видео: Сенсорная лампа для водолазного шлема: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
В этом поучительном
Тебе понадобится
- Водолазный шлем или аналогичный
- Светодиодное кольцо, совместимое с Neopixel (я использовал кольцо с 38 светодиодами)
- Плата Wemos ESP32 (или эквивалентная)
- 3д принтер
Шаг 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 = "Пароль"; // Неопиксельный джаз #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; // Половина времени между пульсациями RgbColor black (0); // Кнопка 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 (); кольцо. Show (); } void loop () {if (millis () <600000) {ArduinoOTA.handle ();} else if (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } если (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"; // ПРИМЕЧАНИЕ: если при обновлении SPIFFS это место для размонтирования SPIFFS с помощью SPIFFS.end () Serial.println ("Начать обновление" + type);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progress:% u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t error) {Serial.printf ("Ошибка [% u]:", ошибка); if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Begin 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 ("Конец сбой");}); ArduinoOTA.begin (); Serial.println («Готово»); Serial.print ("IP-адрес:"); Serial.println (WiFi.localIP ()); } int button1_capture () {для (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i + 1]; } Button1 [debounce-1] = (touchRead (T0)); плавающий ток = MaxArray (Button1); float Button1_smooth = Button1_total / сглаживание; // с плавающей точкой current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (текущий); Serial.print (""); Serial.println (Button1 [debounce-1]); если (текущий <(0,85 * Button1_smooth)) {Button1_total = 0; // работает как противодействие return 1; } else {Button1_total = текущий + Button1_total -Button1_smooth; } return 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; для (int я = 0; imxm) {mxm = MaxMe [я]; }} return mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; для (int i = 0; i
Шаг 3: Сборка
Подключите плату, как показано, и убедитесь, что она работает.
Сеть, подключенная к «ручке», будет действовать как сенсорная кнопка. На моей плате ESP32 T0 подключен к D4. Вам нужно будет это проверить, если вы используете другую плату.
Присоединение оголенного провода к этому контакту будет вести себя так же. Двойное нажатие включит его, как ночник. В 3 раза ярче и в 4 раза белее.
Шаг 4: соберите детали в шлем
Чтобы включить лампу, мы будем использовать ручку шлема в качестве сенсорного датчика. Это означает, что он должен быть изолирован от остальной части шлема. Снимите ручку и заклейте контактную поверхность изоляционной лентой. Я использовал коричневую ленту, чтобы она растекалась, на изображении она выделена синим цветом. Просверлите отверстия так, чтобы винты находились в зазоре, и соберите несколько пластиковых шайб с другой стороны.
Присоедините булавку к одному из винтов ручки с помощью обжимного соединителя.
Если вы планируете использовать плавающий источник питания (почти все из них), вам нужно будет таким же образом подключить контакт GND к корпусу шлема. Теперь, чтобы включить лампу, возьмитесь одной рукой за шлем, а другой коснитесь ручки.
Шаг 5: Подключите питание
Прикрутите коммутационную плату micro USB к разъему перегородки, напечатанному на 3D-принтере, и закрепите гайкой.
Вместо этого можно использовать любой источник питания 5 В постоянного тока, но у меня дома полно зарядных устройств. Я использовал плетеный USB-кабель, чтобы имитировать старую гибкость и завершить внешний вид.
Вот и все, что вам нужно.
Если вы хотите изменить код, чтобы опробовать дополнительные цвета, эффекты или таймеры, тогда оно будет доступно как устройство Arduino OTA в течение первых 10 минут при каждом подключении. Затем оно отключится для экономии энергии.
Рекомендуемые:
Светодиодный свет для шлема на солнечной энергии: 3 шага
Светодиодный свет для шлема на солнечной энергии: я сделал свет для шлема с солнечным зарядом, используя только доступные компоненты в ДОМЕ! Его можно использовать на любом типе шлемов, для охоты или рыбалки, в сценариях выживания и т. Д. ДАВАЙТЕ СОЗДАЕМ НАШ МИР GREEN AGAIN! Из Марокко < 3
Аксессуар для умного шлема: 4 шага
Аксессуар для умного шлема: 1,3 миллиона человек ежегодно умирают в результате дорожно-транспортных происшествий. Большая часть этих аварий связана с двухколесными транспортными средствами. Двухколесные автомобили стали опаснее, чем когда-либо прежде. По состоянию на 2015 год 28% всех погибших в результате дорожно-транспортных происшествий составили
Bluetooth-гарнитура для шлема DIY: 11 шагов (с изображениями)
Bluetooth-гарнитура для шлема DIY: это очень простое и супер дешевое руководство по изготовлению Bluetooth-гарнитуры для мотоциклетного шлема или любого другого типа шлема, на котором вы хотите его использовать. Так вот что происходит в соответствии с высказыванием "НЕОБХОДИМОСТЬ - ЭТО МОЖНО …"
Сенсорная подставка для iPod размером с кошелек: 5 шагов
Сенсорная подставка для IPod размером с кошелек: Это довольно круто … Вы можете подумать, что она нестабильна, но она довольно стабильна! Ее удобно носить в кошельке, чтобы посмотреть … Applebees? Я не знаю, лол Для просмотра фильмов, телешоу, просмотра интернета (в альбомном режиме) …. ох, и Cover Flow! Итак
Кулачок для шлема своими руками за ДЕШЕВО: 5 шагов
DIY Helmet Cam для ДЕШЕВОГО: Во-первых, это можно найти: http://iamkraze.com/helmet-cam-diy Так что с тех пор, как я захотел велосипед, я стал поклонником видео 13mordeth на YouTube. Он в основном ведет видеоблог во время езды на мотоцикле от чего угодно, будь то день или такой сложный, как избавление