Taula de continguts:

Làmpada tàctil de casc de busseig: 5 passos
Làmpada tàctil de casc de busseig: 5 passos

Vídeo: Làmpada tàctil de casc de busseig: 5 passos

Vídeo: Làmpada tàctil de casc de busseig: 5 passos
Vídeo: The French UFO Wave of 1954: The Humanoids 2024, Juliol
Anonim
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig
Làmpada tàctil de casc de busseig

En aquest instructiu

Necessitarà

  1. Casc de busseig o equivalent
  2. Anell LED compatible amb Neopixel (he utilitzat un anell amb 38 LED)
  3. Tauler Wemos ESP32 (o equivalent)
  4. Impressora 3D

Pas 1: imprimiu aquestes parts

És possible que calgui adaptar aquestes parts si utilitzeu un casc de busseig diferent, he après que el que tinc és bastant comú

Pas 2: pengeu el codi

Col·loqueu el vostre ssid i la vostra contrasenya al codi i pengeu-la al tauler. Això és allà per permetre que OTA pugi codi nou després de muntar el projecte. Haureu d’instal·lar NeoPixelBus de Makuna disponible aquí https://github.com/Makuna/NeoPixelBus També haureu d’instal·lar les definicions de la placa ESP32 a l’entorn arduino per poder utilitzar aquesta placa.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * password = "Contrasenya"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturació = 50; int Lluminositat = 50; int R = 0; int G = 0; int B = 0; int Pols = 1600; // La meitat del temps entre pulsacions RgbColor negre (0); // Button Jazz float Button1_total = 0; int smoothing = 50; const int debounce = 5; botó flotant1 [debounce]; bool PWR = 0; Anell NeoPixelBus (PixelCount, PixelPin); configuració nul·la () {Serial.begin (115200); Serial.println ("Arrencada"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, contrasenya); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("La connexió ha fallat!"); retard (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 ( () {Tipus de cadena; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "sistema de fitxers"; // NOTA: if actualitzant SPIFFS aquest seria el lloc per desmuntar SPIFFS mitjançant SPIFFS.end () Serial.println ("Comença a actualitzar" + tipus);}).onEnd ( () {Serial.println ("\ nFin");}).onProgress ( (progrés int signat, total int signat) {Serial.printf ("Progrés:% u %% / r", (progrés / (total / 100)));}).onError ( (ota_error_t error) {Serial.printf ("Error [% u]:", error); if (error == OTA_AUTH_ERROR) Serial.println ("Autenticació fallida"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Begin Fallat "); else if (error == OTA_CONNECT_ERROR) Serial.println (" Error de connexió "); else if (error == OTA_RECEIVE_ERROR) Serial.println (" Error de recepció "); else if (error == OTA_END_ERROR) Sèrie. println ("Finalització fallida");}); ArduinoOTA.begin (); Serial.println ("Llest"); Serial.print ("adreça IP:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i + 1]; } Botó1 [debounce-1] = (touchRead (T0)); corrent flotant = MaxArray (Button1); float Button1_smooth = Botó1_total / suavitzat; // corrent flotant = 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 com a devolució de retorn 1; } else {Button1_total = current + Button1_total -Button1_smooth; } retorn 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; for (int i = 0; imxm) {mxm = MaxMe ; }} retorn mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; per a (int i = 0; i

Pas 3: Muntatge

muntatge
muntatge

Connecteu el tauler com es mostra i comproveu que funcioni.

La xarxa connectada al "mànec" actuarà com un botó tàctil. Al meu tauler, l'ESP32 T0 està connectat a D4. Haureu de comprovar-ho si utilitzeu un tauler diferent.

Enganxar un fil nu a aquest pass comportarà el mateix. Si la premeu dues vegades, s’encendrà com una llum nocturna. 3 vegades una mica més brillant i 4 vegades blanca.

Pas 4: munteu les peces al casc

Munteu les peces al casc
Munteu les peces al casc
Munteu les peces al casc
Munteu les peces al casc

Per encendre la làmpada utilitzarem el mànec del casc com a sensor tàctil. Això vol dir que s’ha d’aïllar de la resta del casc. Traieu el mànec i cobriu la cara de contacte amb cinta aïllant. Vaig fer servir cinta marró perquè es fongués, es ressalta de color blau a la imatge. Traieu els forats de manera que els cargols quedin lliures i es puguin tornar a utilitzar amb unes volanderes de plàstic a l’altra banda.

Connecteu el botó a un dels cargols de les nanses mitjançant un connector de crimpat.

Si teniu previst utilitzar una font d'alimentació flotant (gairebé totes), haureu de connectar un passador GND al cos del casc de la mateixa manera. Ara per encendre la làmpada, col·loqueu una mà al casc i toqueu la nansa amb l'altra.

Pas 5: connecteu l'alimentació

Image
Image
Connecteu l'alimentació
Connecteu l'alimentació

Enrosqueu la placa micro USB al connector del mampar imprès en 3D i, a continuació, fixeu-la al lloc amb la femella.

Es pot utilitzar qualsevol font d'alimentació de 5 V CC, però a casa meva hi ha molts carregadors USB. Vaig utilitzar un cable USB trenat per fer imatges d’un vell flex i completar l’aspecte.

Això és el que has acabat.

Si voleu modificar el codi per provar colors, efectes o temporitzadors addicionals, estarà disponible com a dispositiu OTA arduino els primers 10 minuts cada vegada que estigui endollat. Tot seguit, s'apagarà per estalviar energia.

Recomanat: