Taula de continguts:
- Pas 1: imprimiu aquestes parts
- Pas 2: pengeu el codi
- Pas 3: Muntatge
- Pas 4: munteu les peces al casc
- Pas 5: connecteu l'alimentació
Vídeo: Làmpada tàctil de casc de busseig: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
En aquest instructiu
Necessitarà
- Casc de busseig o equivalent
- Anell LED compatible amb Neopixel (he utilitzat un anell amb 38 LED)
- Tauler Wemos ESP32 (o equivalent)
- 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
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
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ó
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:
Casc de seguretat Covid Part 1: Introducció als circuits de Tinkercad !: 20 passos (amb imatges)
Casc de seguretat Covid Part 1: Introducció als circuits de Tinkercad!: Hola, amic! Una de les millors maneres d’aprendre és fer. Per tant, primer dissenyarem el nostre propi projecte: th
Casc Iron Man Mark II: 4 passos
Iron Man Mark II Helmet: Casco réplica mark II de 2 parts, casco y pulsera unidos por cadena que condueix el cablejat, alimentat per 4 bateries AA ubicades en la part posterior junt al microcontrolador i el commutador d’encendre.Casco: Servomotores per al cierre y apert
Casc de disc imprimible en 3D: 11 passos (amb imatges)
Casco de disc imprimible en 3D: inspirat en el clàssic casc Daft Punk 'Thomas'. Il·lumina l’habitació i sigues l’enveja de tots els teus amics amb aquest increïble casc de discos alimentat per Arduino. Necessitareu accés a una impressora 3D i a un soldador per completar aquest projecte. Si voleu
Tres circuits de sensor tàctil + circuit temporitzador tàctil: 4 passos
Tres circuits del sensor tàctil + circuit del temporitzador tàctil: el sensor tàctil és un circuit que s’activa quan detecta el tacte als pins tàctils. Funciona de forma transitòria, és a dir, la càrrega estarà ACTIVADA només durant el temps que es faci el toc als pins. Aquí us mostraré tres maneres diferents de fer un toc sen
TECHNO VIKING! Banya LED en un casc Viking espacial: Indicador de volum + casc Viking Transucent: 6 passos
TECHNO VIKING! Banya LED en un casc Viking espacial: Indicador de volum + Casc Viking Transucent: Sí! Es tracta d’un casc per a Space Vikings. *** Actualització, s'hauria de canviar el nom de Techno Viking Helmet *** Però és el mes d'octubre de 2010 i avui només he conegut el Techno Viking. Ben darrere de la corba dels mems. Whateva 'Aquí està amb una producció superior