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, Studeni
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 s 38 LED dioda)
  3. Wemos ESP32 ploča (ili ekvivalentna)
  4. 3D pisač

Korak 1: Ispišite ove dijelove

Ove dijelove će možda trebati prilagoditi ako koristite drugu ronilačku kacigu. Naučio sam da je ovaj koji imam prilično uobičajen

Korak 2: Prenesite kôd

Upišite svoj ssid i lozinku u kôd, a zatim ih prenesite na svoju ploču. To je tu da OTA -u omogući prijenos 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 Svjetlina = 50; int R = 0; int G = 0; int B = 0; int Puls = 1600; // Pola vremena između pulsacija RgbColor crna (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.započni (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 sustav"; // 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)));}).onError ( (ota_error_t 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 uspio");}); 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_mootk)) {Button1_total = 0; // radi kao debounce return 1; } else {Button1_total = current +Button1_total -Button1_mooth; } return 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; plovak mnm = MaxMe [0]; za (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float ukupno = 0; float ave = 0; za (int i = 0; i

Korak 3: Montaža

Skupština
Skupština

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

Mreža spojena na 'ručku' djelovat će kao gumb na dodir. Na mojoj je ploči ESP32 T0 pričvršćen na D4. To ćete morati provjeriti ako koristite drugu ploču.

Pričvršćivanje gole žice na ovaj pin će se ponašati isto. Dvaput 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 dodirnu površinu izolacijskom trakom. Koristila 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šcima s druge strane.

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

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

Korak 5: Priključite napajanje

Image
Image
Spojite napajanje
Spojite napajanje

Pričvrstite mikro USB ploču za razbijanje na 3D ispisani konektor pregrade, a zatim je pričvrstite maticom.

Umjesto toga se može koristiti bilo koje 5V DC napajanje, ali u mojoj kući ima puno USB punjača. Upotrijebio sam pleteni USB kabel kako bih oponašao stari fleks i upotpunio izgled.

To je to, gotovi ste.

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

Preporučeni: