INHOUDSOPGAWE:

Duikhelm se aanraaklamp: 5 stappe
Duikhelm se aanraaklamp: 5 stappe

Video: Duikhelm se aanraaklamp: 5 stappe

Video: Duikhelm se aanraaklamp: 5 stappe
Video: 42 мм Cadisen Royal Oak Homage C8180 - Распаковка и первые впечатления 2024, November
Anonim
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp
Duikhelm se aanraaklamp

In hierdie instruerbare

Jy sal nodig hê

  1. Duikhelm of ekwivalent
  2. Neopixel -versoenbare LED -ring (ek het 'n ring met 38 LED's gebruik)
  3. Wemos ESP32 -bord (of ekwivalent)
  4. 3D -drukker

Stap 1: Druk hierdie onderdele af

Hierdie dele moet moontlik aangepas word as u 'n ander duikhelm gebruik; ek het geleer dat die een wat ek het redelik algemeen is

Stap 2: Laai die kode op

Plaas u ssid en wagwoord in die kode en laai dit dan na u bord op. Dit is daar om OTA toe te laat om nuwe kode op te laai nadat die projek saamgestel is. U sal NeoPixelBus by Makuna moet installeer wat hier beskikbaar is https://github.com/Makuna/NeoPixelBus U moet ook die ESP32 -borddefinisies in die arduino -omgewing installeer om hierdie bord te kan gebruik.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Password"; // Neopixel jazz #insluit const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Helderheid = 50; int R = 0; int G = 0; int B = 0; int Puls = 1600; // Die helfte van die tyd tussen pulsasies RgbColor black (0); // Button Jazz float Button1_total = 0; int smoothing = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus -ring (PixelCount, PixelPin); ongeldige opstelling () {Serial.begin (115200); Serial.println ("opstart"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, wagwoord); terwyl (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Verbinding misluk!"); vertraging (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 (); } leemte -lus () {if (millis () <600000) {ArduinoOTA.handle ();} anders as (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } as (button1_capture () == 1) {ring. ClearTo (swart); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} vertraging (10); } maak OTA_init () {ArduinoOTA.onStart ( () {String tipe; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; anders // U_SPIFFS type = "filesystem"; // OPMERKING: as SPIFFS opdateer, dit is die plek om SPIFFS te ontkoppel met SPIFFS.end () Serial.println ("Begin met opdatering" + tipe);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (ongetekende int vordering, ongetekende int totaal) {Serial.printf ("Vordering:%u %% / r", (vordering / (totaal / 100)));}).onError ( (ota_error_t fout) {Serial.printf ("Fout [%u]:", fout); as (error == OTA_AUTH_ERROR) Serial.println ("Auth misluk"); anders as (error == OTA_BEGIN_ERROR) Serial.println ("Begin Misluk "); anders as (fout == OTA_CONNECT_ERROR) Serial.println (" Koppel misluk "); anders as (fout == OTA_RECEIVE_ERROR) Serial.println (" Ontvang misluk "); anders as (fout == OTA_END_ERROR) Reeks. println ("Einde misluk");}); ArduinoOTA.begin (); Serial.println ("Gereed"); Serial.print ("IP -adres:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Knoppie1 [debounce-1] = (touchRead (T0)); dryfstroom = MaxArray (Button1); float Button1_smooth = Button1_total/smoothing; // dryfstroom = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (huidige); Serial.print (""); Serial.println (Button1 [debounce-1]); as (huidige <(0.85*Button1_smooth)) {Button1_total = 0; // werk as 'n terugslag terugkeer 1; } anders {Button1_total = huidige +Button1_total -Button1_smooth; } gee 0 terug; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; vir (int i = 0; imxm) {mxm = MaxMe ; }} gee mxm terug; } float AveArray (float AveMe ) {float totaal = 0; float ave = 0; vir (int i = 0; i

Stap 3: Montering

Vergadering
Vergadering

Draai die bord vas soos aangedui en kyk of dit werk.

Die net wat aan die 'handvatsel' gekoppel is, dien as 'n aanraakknoppie. Op my bord is die ESP32 T0 aan D4 gekoppel. U moet dit nagaan as u 'n ander bord gebruik.

As u 'n kaal draad aan hierdie pen heg, sal dit dieselfde optree. Deur twee keer daarop te druk, word dit laag soos 'n naglig. 3 keer 'n bietjie helderder en 4 keer wit.

Stap 4: Monteer die dele in die helm

Monteer die onderdele in die helm
Monteer die onderdele in die helm
Monteer die onderdele in die helm
Monteer die onderdele in die helm

Om die lamp aan te skakel, gebruik ons die helm se handvatsel as 'n aanraaksensor. Dit beteken dat dit van die res van die helm geïsoleer moet word. Verwyder die handvatsel en bedek die kontakvlak met isolasieband. Ek het bruin band gebruik om dit in te meng, dit word blou in die prentjie gemerk. Boor die gate uit sodat die skroewe vry is en met 'n paar plastiekwassers aan die ander kant vasgemaak kan word.

Koppel u knoppie met een van die handvatsels se skroewe met 'n krimpkoppelstuk.

As u van plan is om 'n drywende kragbron te gebruik (byna almal), moet u 'n GND -pen op dieselfde manier aan die helm se liggaam koppel. Om die lamp aan te skakel, plaas die een hand op die helm en raak die handvatsel met die ander hand.

Stap 5: Koppel die krag aan

Image
Image
Koppel die krag aan
Koppel die krag aan

Skroef die mikro -USB -breekbord vas aan die 3D -gedrukte skottelaansluiting en maak dit dan vas met die moer.

Enige 5V DC -kragtoevoer kan in plaas daarvan gebruik word, maar usb -laaiers is volop in my huis. Ek het 'n gevlegde usb -kabel gebruik om 'n ou flex te maak en die voorkoms te voltooi.

Dit is dit wat jy klaar is.

As u die kode wil verander om ekstra kleure, effekte of timers uit te probeer, sal dit die eerste 10 minute as 'n arduino OTA -toestel beskikbaar wees elke keer as dit ingeprop word. Dit word dan afgeskakel om krag te bespaar.

Aanbeveel: