Indholdsfortegnelse:
- Trin 1: Udskriv disse dele
- Trin 2: Upload koden
- Trin 3: Montering
- Trin 4: Saml delene i hjelmen
- Trin 5: Tilslut strømmen
Video: Dykkerhjelm Touch -lampe: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I dette instruerbare
Du får brug for
- Dykkerhjelm eller tilsvarende
- Neopixel -kompatibel LED -ring (jeg brugte en ring med 38 lysdioder)
- Wemos ESP32 -kort (eller tilsvarende)
- 3D printer
Trin 1: Udskriv disse dele
Disse dele skal muligvis tilpasses, hvis du bruger en anden dykkerhjelm, jeg har lært, at den jeg har er ret almindelig
Trin 2: Upload koden
Placer din ssid og adgangskode i koden, og upload derefter til dit board. Dette er der for at tillade OTA at uploade ny kode, efter at projektet er samlet. Du bliver nødt til at installere NeoPixelBus af Makuna tilgængelig her https://github.com/Makuna/NeoPixelBus Du skal også installere ESP32 -kortdefinitionerne i arduino -miljøet for at kunne bruge dette kort.
// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Password"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Lysstyrke = 50; int R = 0; int G = 0; int B = 0; int Puls = 1600; // Halvdelen af tiden mellem pulsationer RgbColor sort (0); // Button Jazz float Button1_total = 0; int udjævning = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus -ring (PixelCount, PixelPin); ugyldig opsætning () {Serial.begin (115200); Serial.println ("Booting"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, adgangskode); mens (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Forbindelsen mislykkedes!"); forsinkelse (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. Begynd (); ring. Show (); } void loop () {if (millis () <600000) {ArduinoOTA.handle ();} else if (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } hvis (button1_capture () == 1) {ring. ClearTo (sort); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} delay (10); } ugyldig OTA_init () {ArduinoOTA.onStart ( () {strengtype; hvis (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; ellers // U_SPIFFS type = "filsystem"; // BEMÆRK: hvis opdatering af SPIFFS ville dette være stedet for at afmontere SPIFFS ved hjælp af SPIFFS.end () Serial.println ("Start opdatering" + type);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progress:%u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t fejl) {Serial.printf ("Fejl [%u]:", fejl); hvis (error == OTA_AUTH_ERROR) Serial.println ("Auth. mislykkedes"); ellers hvis (error == OTA_BEGIN_ERROR) Serial.println ("Start Mislykkedes "); ellers hvis (fejl == OTA_CONNECT_ERROR) Serial.println (" Opret forbindelse mislykkedes "); ellers hvis (fejl == OTA_RECEIVE_ERROR) Serial.println (" Modtagelse mislykkedes "); ellers hvis (fejl == OTA_END_ERROR) Seriel. println ("Afslutning mislykkedes");}); ArduinoOTA.begin (); Serial.println ("Klar"); Serial.print ("IP -adresse:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Knap1 [debounce-1] = (touchRead (T0)); flydestrøm = MaxArray (knap1); float Button1_smooth = Button1_total/udjævning; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); hvis (nuværende <(0,85*Button1_smooth)) {Button1_total = 0; // fungerer som et debounce -afkast 1; } andet {Button1_total = current +Button1_total -Button1_smooth; } returner 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; for (int i = 0; imxm) {mxm = MaxMe ; }} returner mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; for (int i = 0; i
Trin 3: Montering
Tilslut dit bræt som vist, og kontroller, at det virker.
Nettet, der er forbundet til 'håndtaget', fungerer som en berøringsknap. På mit bord er ESP32 T0 fastgjort til D4. Du skal kontrollere dette, hvis du bruger et andet bord.
Vedhæftning af en ledning til denne pin vil opføre sig på samme måde. Ved at trykke to gange på den tændes den som et natlys. 3 gange lidt lysere og 4 gange hvid.
Trin 4: Saml delene i hjelmen
For at tænde lampen bruger vi hjelmens håndtag som berøringssensor. Det betyder, at den skal isoleres fra resten af hjelmen. Fjern håndtaget, og dæk kontaktfladen med isoleringstape. Jeg brugte brunt tape til at få det til at blande sig, det er fremhævet blåt på billedet. Bor hullerne ud, så skruerne er i fri afstand, og de kan læses sammen med nogle plastskiver på den anden side.
Tilslut din knapnål til en af håndtagets skruer ved hjælp af et krympestik.
Hvis du planlægger at bruge en flydende strømforsyning (stort set dem alle), skal du tilslutte en GND -pin til hjelmens krop på samme måde. Nu for at tænde lampen skal du placere den ene hånd på hjelmen og røre ved håndtaget med den anden.
Trin 5: Tilslut strømmen
Skru mikro -USB -udbrudskortet til det 3D -printede skotstik, og fastgør det derefter med møtrikken.
Enhver 5V DC strømforsyning kan bruges i stedet, men usb -opladere er rigelige i mit hus. Jeg brugte et flettet usb -kabel til at mimke en gammel flex og fuldende udseendet.
Det er det, du er færdig.
Hvis du vil ændre koden for at prøve ekstra farver, effekter eller timere, vil den være tilgængelig som en arduino OTA -enhed i de første 10 minutter, hver gang den tilsluttes. Dette slukkes derefter for at spare strøm.
Anbefalede:
Touch Free Straw Dispenser: 9 trin
Touch Free Straw Dispenser: Hej mit navn er Jack Widman, og jeg går i 8. klasse. Jeg har lavet en berøringsfri halmdispenser og deler den gerne med dig. Jeg føler du er så tilbøjelig, vær venlig at stemme på mig i " Kan ikke røre ved dette " konkurrence 2020
Touch Less Touch Switch: 11 trin
Touch Less Touch Switch: I den herskende COVID-19-situation introducerer en berøringsfri brugergrænseflade til offentlige maskiner for at undgå spredning af pandemien i samfundet
Hjemmeautomatisering med NodeMCU Touch Sensor LDR Temperaturkontrolrelæ: 16 trin
Hjemmeautomatisering med NodeMCU Touch Sensor LDR Temperaturstyringsrelæ: I mine tidligere NodeMCU -projekter har jeg styret to husholdningsapparater fra Blynk App. Jeg modtog mange kommentarer og beskeder for at opgradere projektet med manuel kontrol og tilføje flere funktioner. Så jeg har designet denne Smart Home Extension Box.I denne IoT
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Three Touch Sensor Circuits + Touch Timer Circuit: 4 trin
Three Touch Sensor Circuits + Touch Timer Circuit: Touch Sensor er et kredsløb, der tændes, når det registrerer berøring af Touch Pins. Det fungerer på forbigående basis, dvs. belastningen vil kun være tændt for den tid, berøringen foretages på stifterne. Her vil jeg vise dig tre forskellige måder at lave et tryk på