Inhoudsopgave:

Duikhelm Touch Lamp - Ajarnpa
Duikhelm Touch Lamp - Ajarnpa

Video: Duikhelm Touch Lamp - Ajarnpa

Video: Duikhelm Touch Lamp - Ajarnpa
Video: 42 мм Cadisen Royal Oak Homage C8180 - Распаковка и первые впечатления 2024, Juli-
Anonim
Duikhelm Touch Lamp
Duikhelm Touch Lamp
Duikhelm Touch Lamp
Duikhelm Touch Lamp
Duikhelm Touch Lamp
Duikhelm Touch Lamp
Duikhelm Touch Lamp
Duikhelm Touch Lamp

In dit instructable

Je zal nodig hebben

  1. Duikhelm of gelijkwaardig
  2. Neopixel-compatibele LED-ring (ik gebruikte een ring met 38 LED's)
  3. Wemos ESP32-bord (of gelijkwaardig)
  4. 3D-printer

Stap 1: Print deze onderdelen

Deze onderdelen moeten mogelijk worden aangepast als je een andere duikhelm gebruikt, ik heb geleerd dat degene die ik heb vrij algemeen is

Stap 2: Upload de code

Plaats uw ssid en wachtwoord in de code en upload deze vervolgens naar uw bord. Dit is er om OTA toe te staan nieuwe code te uploaden nadat het project is samengesteld. U moet NeoPixelBus van Makuna installeren, hier beschikbaar https://github.com/Makuna/NeoPixelBus. U moet ook de ESP32-kaartdefinities in de Arduino-omgeving installeren om dit bord te gebruiken.

//Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* wachtwoord = "Wachtwoord"; //Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int kleurverzadiging = 50; int Helderheid = 50; intR = 0; intG = 0; intB = 0; int Puls = 1600; // Halve tijd tussen pulsaties RgbColor zwart (0); // Knop Jazz float Button1_total = 0; int-afvlakking = 50; const int debounce = 5; zweven Knop1 [debounce]; bool PWR = 0; NeoPixelBus-ring (PixelCount, PixelPin); void setup() { Serial.begin(115200); Serial.println("Opstarten"); WiFi.modus (WIFI_STA); WiFi.begin(ssid, wachtwoord); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Verbinding mislukt!"); vertraging (5000); //ESP.herstart(); } 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. Toon(); } void loop() {if (millis()<600000){ArduinoOTA.handle();} else if (wifi_timout==0){ ArduinoOTA.end(); wifi_timout = 1; WiFi.modus (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(() { String type; if (ArduinoOTA.getCommand() == U_FLASH) type = "sketch"; else // U_SPIFFS type = "bestandssysteem"; // OPMERKING: als SPIFFS updaten dit zou de plek zijn om SPIFFS te ontkoppelen met SPIFFS.end() Serial.println("Start updaten" + type); }).onEnd(() { Serial.println("\nEnd"); }).onProgress((unsigned int progress, unsigned int totaal) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }).onError((ota_error_t error) { Serial.printf("Fout[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Mislukt"); else if (error == OTA_CONNECT_ERROR) Serial.println ("Verbinding mislukt"); else if (error == OTA_RECEIVE_ERROR) Serial.println ("Ontvangen mislukt"); else if (fout == OTA_END_ERROR) Serieel. println("Einde mislukt"); }); ArduinoOTA.begin(); Serial.println("Klaar"); Serial.print("IP-adres: "); Serial.println(WiFi.localIP()); } int button1_capture(){ for (int i=0; i<(debounce-1);i++){ Button1=Button1[i+1]; } Button1[debounce-1] = (touchRead(T0)); vlotterstroom = MaxArray (Knop1); float Button1_smooth = Button1_total/smooth; // vlotterstroom = AveArray (knop1); Serial.print(Button1_smooth);Serial.print(" ");Serial.print(huidig);Serial.print(" ");Serial.println(Button1[debounce-1]); if (huidig < (0.85*Button1_smooth)){ Button1_total = 0; // werkt als een debounce return 1; }else{ Button1_total = huidig +Button1_total -Button1_smooth; } retourneer 0; } float MaxArray(float MaxMe){ float mxm = MaxMe[0]; float mnm = MaxMe[0]; voor (int i=0; imxm) { mxm = MaxMe; } } retourneer mxm; } float AveArray(float AveMe){ float totaal = 0; float gemiddelde = 0; voor (int i=0; i

Stap 3: Montage

samenkomst
samenkomst

Sluit uw bord aan zoals afgebeeld en controleer of het werkt.

Het net dat op de 'hendel' is aangesloten, fungeert als een aanraakknop. Op mijn bord is de ESP32 T0 aangesloten op D4. U moet dit controleren als u een ander bord gebruikt.

Het bevestigen van een blote draad aan deze pin zal zich hetzelfde gedragen. Als je er twee keer op drukt, wordt het laag als een nachtlampje. 3 keer een beetje helderder en 4 keer wit.

Stap 4: Monteer de onderdelen in de helm

Monteer de onderdelen in de helm
Monteer de onderdelen in de helm
Monteer de onderdelen in de helm
Monteer de onderdelen in de helm

Om de lamp in te schakelen, gebruiken we het handvat van de helm als aanraaksensor. Dit betekent dat deze geïsoleerd moet zijn van de rest van de helm. Verwijder de handgreep en bedek het contactvlak met isolatietape. Ik heb bruine tape gebruikt om het te laten opgaan in, het is blauw gemarkeerd in de afbeelding. Boor de gaten uit zodat de schroeven vrij zijn en ze aan de andere kant weer in elkaar kunnen worden gezet met enkele plastic ringen.

Sluit uw buttonpin aan op een van de hendelschroeven met behulp van een krimpconnector.

Als je van plan bent om een zwevende voeding te gebruiken (vrijwel allemaal), dan moet je op dezelfde manier een GND-pin op de body van de helm aansluiten. Om nu de lamp aan te doen, plaatst u één hand op de helm en raakt u met de andere het handvat aan.

Stap 5: Sluit de stroom aan

Image
Image
Sluit de stroom aan
Sluit de stroom aan

Schroef de micro-USB-breakout-kaart op de 3D-geprinte schotconnector en zet hem vervolgens vast met de moer.

Elke 5V DC-voeding kan in plaats daarvan worden gebruikt, maar USB-opladers zijn er in overvloed in mijn huis. Ik gebruikte een gevlochten USB-kabel om een oude flex na te bootsen en de look af te maken.

Dat is het, je bent klaar.

Als je de code wilt wijzigen om extra kleuren, effecten of timers uit te proberen, dan is het elke keer dat het wordt aangesloten gedurende de eerste 10 minuten beschikbaar als een arduino OTA-apparaat. Dit wordt dan uitgeschakeld om stroom te besparen.

Aanbevolen: