Tabla de contenido:

Lámpara táctil para casco de buceo: 5 pasos
Lámpara táctil para casco de buceo: 5 pasos

Video: Lámpara táctil para casco de buceo: 5 pasos

Video: Lámpara táctil para casco de buceo: 5 pasos
Video: PUSE A PRUEBA ESTOS VINOCULARES DE VISION NOCTURNA // #PONGAMOSLOAPRUEBA 2024, Mes de julio
Anonim
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo
Lámpara táctil para casco de buceo

En este instructable

Necesitará

  1. Casco de buceo o equivalente
  2. Anillo LED compatible con Neopixel (usé un anillo con 38 LED)
  3. Placa Wemos ESP32 (o equivalente)
  4. impresora 3d

Paso 1: imprima estas piezas

Estas partes pueden necesitar una adaptación si está usando un casco de buceo diferente, aprendí que el que tengo es bastante común.

Paso 2: cargue el código

Coloque su ssid y contraseña en el código y luego cárguelo en su tablero. Esto está ahí para permitir que OTA cargue un nuevo código después de ensamblar el proyecto. Deberá instalar NeoPixelBus de Makuna disponible aquí https://github.com/Makuna/NeoPixelBus También deberá instalar las definiciones de la placa ESP32 en el entorno arduino para poder utilizar esta placa.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * contraseña = "Contraseña"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Brillo = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // La mitad del tiempo entre pulsaciones RgbColor black (0); // Botón Jazz float Button1_total = 0; int suavizado = 50; const int debounce = 5; Float Button1 [antirrebote]; bool PWR = 0; Anillo NeoPixelBus (PixelCount, PixelPin); configuración vacía () {Serial.begin (115200); Serial.println ("Arranque"); Modo WiFi (WIFI_STA); WiFi.begin (ssid, contraseña); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("¡Conexión fallida!"); retraso (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 (); } bucle vacío () {if (millis () <600000) {ArduinoOTA.handle ();} else if (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; Modo WiFi (WIFI_OFF); btStop (); } if (button1_capture () == 1) {ring. ClearTo (negro); 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"; // NOTA: si actualizando SPIFFS este sería el lugar para desmontar SPIFFS usando SPIFFS.end () Serial.println ("Iniciar actualización" + tipo);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progreso:% u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t error) {Serial.printf ("Error [% u]:", error); if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Comenzar 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 ("Error al finalizar");}); ArduinoOTA.begin (); Serial.println ("Listo"); Serial.print ("dirección 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)); corriente flotante = MaxArray (Button1); float Button1_smooth = Button1_total / suavizado; // corriente flotante = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (actual); Serial.print (""); Serial.println (Button1 [debounce-1]); if (actual <(0.85 * Button1_smooth)) {Button1_total = 0; // funciona como un retorno antirrebote 1; } else {Button1_total = current + Button1_total -Button1_smooth; } return 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; mnm flotante = MaxMe [0]; para (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float total = 0; flotador ave = 0; para (int i = 0; i

Paso 3: Montaje

Montaje
Montaje

Conecte su tablero como se muestra y verifique que funcione.

La red conectada al 'mango' actuará como un botón táctil. En mi placa, el ESP32 T0 está conectado a D4. Deberá comprobar esto si utiliza una placa diferente.

Conectar un cable desnudo a este pin se comportará de la misma manera. Si lo presiona dos veces, se encenderá como una luz nocturna. 3 veces un poco más brillante y 4 veces blanca.

Paso 4: ensamble las piezas en el casco

Ensamble las piezas en el casco
Ensamble las piezas en el casco
Ensamble las piezas en el casco
Ensamble las piezas en el casco

Para encender la lámpara estaremos utilizando el mango del casco como sensor táctil. Esto significa que debe estar aislado del resto del casco. Retire la manija y cubra la cara de contacto con cinta aislante. Usé cinta marrón para que se mezclara, está resaltada en azul en la imagen. Taladre los agujeros para que los tornillos queden libres y se puedan volver a sellar con algunas arandelas de plástico en el otro lado.

Conecte su pasador de botón a uno de los tornillos de las manijas usando un conector de engarzado.

Si planea usar una fuente de alimentación flotante (prácticamente todas), deberá conectar un pin GND al cuerpo del casco de la misma manera. Ahora para encender la lámpara, coloque una mano en el casco y toque el mango con la otra.

Paso 5: conecte la energía

Image
Image
Conecte el poder
Conecte el poder

Atornille la placa de conexión micro USB al conector de mamparo impreso en 3D y luego asegúrelo en su lugar con la tuerca.

En su lugar, se puede usar cualquier fuente de alimentación de 5 V CC, pero los cargadores USB abundan en mi casa. Usé un cable USB trenzado para imitar un viejo flex y completar el look.

Eso es todo, has terminado.

Si desea modificar el código para probar colores, efectos o temporizadores adicionales, estará disponible como un dispositivo arduino OTA durante los primeros 10 minutos cada vez que se conecte. Esto luego se apagará para ahorrar energía.

Recomendado: