Innehållsförteckning:
- Steg 1: Skriv ut dessa delar
- Steg 2: Ladda upp koden
- Steg 3: Montering
- Steg 4: Montera delarna i hjälmen
- Steg 5: Anslut strömmen
Video: Peklampa för dykhjälm: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
I detta instruerbara
Du kommer behöva
- Dykhjälm eller motsvarande
- Neopixel -kompatibel LED -ring (jag använde en ring med 38 lysdioder)
- Wemos ESP32 -kort (eller motsvarande)
- 3d skrivare
Steg 1: Skriv ut dessa delar
Dessa delar kan behöva anpassas om du använder en annan dykhjälm, jag lärde mig att den jag har är ganska vanlig
Steg 2: Ladda upp koden
Placera ditt ssid och lösenord i koden och ladda upp det till ditt kort. Detta är där för att tillåta OTA att ladda upp ny kod efter att projektet har monterats. Du måste installera NeoPixelBus av Makuna som finns här https://github.com/Makuna/NeoPixelBus Du måste också installera ESP32 -kortdefinitionerna i arduino -miljön för att kunna använda detta kort.
// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Lösenord"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorMättnad = 50; int Ljusstyrka = 50; int R = 0; int G = 0; int B = 0; int puls = 1600; // Halva tiden mellan pulsationerna RgbColor black (0); // Button Jazz float Button1_total = 0; int utjämning = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus -ring (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Uppstart"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, lösenord); medan (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Anslutningen misslyckades!"); fördröjning (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 ();} annars if (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } if (button1_capture () == 1) {ring. ClearTo (svart); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} delay (10); } ogiltig OTA_init () {ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // OBS: om om du uppdaterar SPIFFS är det här platsen att avmontera SPIFFS med SPIFFS.end () Serial.println ("Börja uppdatera" + typ);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progress:%u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t fel) {Serial.printf ("Fel [%u]:", fel); om (error == OTA_AUTH_ERROR) Serial.println ("Auth misslyckades"); annars om (error == OTA_BEGIN_ERROR) Serial.println ("Börja Misslyckades "); annars om (fel == OTA_CONNECT_ERROR) Serial.println (" Anslutning misslyckades "); annars om (fel == OTA_RECEIVE_ERROR) Serial.println (" Mottagning misslyckades "); annars om (fel == OTA_END_ERROR) Seriell. println ("Slutet misslyckades");}); ArduinoOTA.begin (); Serial.println ("Ready"); Serial.print ("IP -adress:"); Serial.println (WiFi.localIP ()); } int button1_capture () {för (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Knapp1 [debounce-1] = (touchRead (T0)); flottörström = MaxArray (knapp 1); float Button1_smooth = Button1_total/smoothing; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); if (nuvarande <(0,85*Button1_smooth)) {Button1_total = 0; // fungerar som en debounce -retur 1; } annat {Button1_total = current +Button1_total -Button1_smooth; } returnera 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; för (int i = 0; imxm) {mxm = MaxMe ; }} returnera mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; för (int i = 0; i
Steg 3: Montering
Anslut din bräda enligt bilden och kontrollera att den fungerar.
Nätet som är anslutet till "handtaget" fungerar som en tryckknapp. På mitt kort är ESP32 T0 ansluten till D4. Du måste kontrollera detta om du använder ett annat kort.
Att fästa en ledning till denna stift kommer att fungera på samma sätt. Om du trycker på den två gånger tänds den som ett nattljus. 3 gånger lite ljusare och 4 gånger vitt.
Steg 4: Montera delarna i hjälmen
För att tända lampan kommer vi att använda hjälmens handtag som en beröringssensor. Det betyder att den måste isoleras från resten av hjälmen. Ta bort handtaget och täck kontaktytan med isoleringstejp. Jag använde brun tejp för att få den att smälta in, den är markerad blå i bilden. Borra ut hålen så att skruvarna är i fritt utrymme och lösa med några plastbrickor på andra sidan.
Anslut din knappnål till en av handtagens skruvar med en krympkontakt.
Om du planerar att använda en flytande strömförsörjning (i stort sett alla) måste du ansluta en GND -stift till hjälmkroppen på samma sätt. Nu för att tända lampan, placera en hand på hjälmen och rör vid handtaget med den andra.
Steg 5: Anslut strömmen
Skruva in mikro -USB -utbrottskortet på den 3D -tryckta skottkontakten och fäst sedan på plats med muttern.
Vilken som helst 5V DC -strömförsörjning kan användas istället men usb -laddare finns det gott om i mitt hus. Jag använde en flätad usb -kabel för att mimma en gammal flex och slutföra utseendet.
Det är det du är klar.
Om du vill ändra koden för att testa extra färger, effekter eller timers kommer den att finnas tillgänglig som en arduino OTA -enhet de första 10 minuterna varje gång den ansluts. Detta stängs sedan av för att spara ström.
Rekommenderad:
Inställning för extern Bluetooth GPS -leverantör för Android -enheter: 8 steg
Inställning för extern Bluetooth GPS-leverantör för Android-enheter: Den här instruktionsboken kommer att förklara hur du skapar din egen externa Bluetooth-aktiverade GPS för din telefon, tänd vad som helst för ungefär $ 10. Materialräkning: NEO 6M U-blox GPSHC-05 bluetooth-modul Kunskap om gränssnitt Blutooth LavenergimodulerArdui
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?
1.5A linjär regulator för konstant ström för lysdioder för: 6 steg
1.5A linjär regulator för konstant ström för lysdioder för: Så det finns massor av instruktioner som täcker användning av LED -lampor med hög ljusstyrka. Många av dem använder den kommersiellt tillgängliga Buckpuck från Luxdrive. Många av dem använder också linjära regleringskretsar som toppar vid 350 mA eftersom de är mycket ineffektiva