Sadržaj:

Lampa na dodir ronilačke kacige: 5 koraka
Lampa na dodir ronilačke kacige: 5 koraka

Video: Lampa na dodir ronilačke kacige: 5 koraka

Video: Lampa na dodir ronilačke kacige: 5 koraka
Video: A 1000 Year Old Abandoned Italian Castle - Uncovering It's Mysteries! 2024, Juli
Anonim
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir
Ronilačka kaciga svjetiljka na dodir

U ovom uputstvu

Trebat će vam

  1. Ronilačka kaciga ili ekvivalent
  2. Neopixel kompatibilan LED prsten (koristio sam prsten sa 38 LED dioda)
  3. Wemos ESP32 ploča (ili ekvivalentna)
  4. 3D štampač

Korak 1: Odštampajte ove delove

Ove dijelove će možda trebati prilagoditi ako koristite drugu ronilačku kacigu, saznao sam da je ona koju imam prilično uobičajena

Korak 2: Otpremite kôd

Unesite svoj ssid i lozinku u kôd, a zatim ih prenesite na svoju ploču. Ovo je tu da omogući OTA učitavanje novog koda nakon sastavljanja projekta. Morat ćete instalirati NeoPixelBus by Makuna dostupan ovdje https://github.com/Makuna/NeoPixelBus Također ćete morati instalirati definicije ESP32 ploče u arduino okruženje da biste mogli koristiti ovu ploču.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Lozinka"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Osvjetljenje = 50; int R = 0; int G = 0; int B = 0; int Puls = 1600; // Pola vremena između pulsacija RgbColor crno (0); // Button Jazz float Button1_total = 0; int zaglađivanje = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus prsten (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Pokretanje"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, lozinka); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Veza nije uspjela!"); kašnjenje (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 (crno); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} delay (10); } void OTA_init () {ArduinoOTA.onStart ( () {Vrsta niza; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "datotečni sistem"; // NAPOMENA: ako ažuriranje SPIFFS -a ovo bi bilo mjesto za demontažu SPIFFS -a pomoću SPIFFS.end () Serial.println ("Počni ažuriranje" + tip);}).onEnd ( () {Serial.println ("\ nKraj");}).onProgress ( (bezznačni int napredak, bezznačni int ukupno) {Serial.printf ("Napredak:%u %% / r", (napredak / (ukupno / 100)));}). error) {Serial.printf ("Error [%u]:", error); if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Begin Nije uspjelo "); else if (error == OTA_CONNECT_ERROR) Serial.println (" Connect Failed "); else if (error == OTA_RECEIVE_ERROR) Serial.println (" Receive Failed "); else if (error == OTA_END_ERROR) Serijski. println ("Kraj nije uspeo");}); ArduinoOTA.begin (); Serial.println ("Spremno"); Serial.print ("IP adresa:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Button1 [debounce-1] = (touchRead (T0)); plutajuća struja = MaxArray (Button1); float Button1_smooth = Button1_total/smoothing; // plutajuća struja = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (trenutni); Serial.print (""); Serial.println (Button1 [debounce-1]); if (trenutni <(0,85*Button1_smooth)) {Button1_total = 0; // radi kao debounce return 1; } else {Button1_total = current +Button1_total -Button1_smooth; } return 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; plovak mnm = MaxMe [0]; for (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; za (int i = 0; i

Korak 3: Montaža

Montaža
Montaža

Ožičite ploču kao što je prikazano i provjerite radi li.

Mreža povezana s 'ručkom' djelovat će kao tipka na dodir. Na mojoj ploči ESP32 T0 je pričvršćen za D4. Ovo ćete morati provjeriti ako koristite drugu ploču.

Pričvršćivanje gole žice na ovaj pin će se ponašati isto. Dvaput ga pritisnete uključit će ga kao noćno svjetlo. 3 puta malo svjetlije i 4 puta bijelo.

Korak 4: Sastavite dijelove u kacigu

Sastavite dijelove u kacigu
Sastavite dijelove u kacigu
Sastavite dijelove u kacigu
Sastavite dijelove u kacigu

Za paljenje lampe koristit ćemo ručku kacige kao senzor za dodir. To znači da mora biti izolirana od ostatka kacige. Uklonite ručku i pokrijte površinu kontakta izolacijskom trakom. Koristio sam smeđu traku da se uklopi, na slici je označena plavom bojom. Izbušite rupe tako da vijci budu slobodni i ponovno ih postavite s nekim plastičnim podloškama s druge strane.

Spojite iglu na jedan od vijaka ručke pomoću konektora za presovanje.

Ako namjeravate koristiti plutajuće napajanje (uglavnom sve njih), morat ćete na isti način spojiti GND pin na tijelo kacige. Sada za uključivanje lampe, stavite jednu ruku na kacigu, a drugom dodirnite ručku.

Korak 5: Priključite napajanje

Image
Image
Priključite napajanje
Priključite napajanje

Pričvrstite mikro USB ploču za razbijanje na 3D štampani konektor pregrade i pričvrstite je navrtkom.

Umjesto toga se može koristiti bilo koje 5V DC napajanje, ali USB punjača ima u mojoj kući u izobilju. Koristio sam pleteni USB kabel da oponašam stari fleks i upotpunim izgled.

To je to.

Ako želite izmijeniti kôd kako biste isprobali dodatne boje, efekte ili tajmere, bit će dostupan kao arduino OTA uređaj prvih 10 minuta svaki put kada se uključi. Ovo će se isključiti radi uštede energije.

Preporučuje se: