Sisällysluettelo:

Sukelluskypärän kosketuslamppu: 5 vaihetta
Sukelluskypärän kosketuslamppu: 5 vaihetta

Video: Sukelluskypärän kosketuslamppu: 5 vaihetta

Video: Sukelluskypärän kosketuslamppu: 5 vaihetta
Video: Korjaa - Korjaa kuulokeliitin 2024, Marraskuu
Anonim
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu
Sukelluskypärän kosketuslamppu

Tässä opettavaisessa

Tarvitset

  1. Sukelluskypärä tai vastaava
  2. Neopixel -yhteensopiva LED -rengas (käytin 38 LED -valon rengasta)
  3. Wemos ESP32 -levy (tai vastaava)
  4. 3D tulostin

Vaihe 1: Tulosta nämä osat

Nämä osat saattavat vaatia muokkaamista, jos käytät eri sukelluskypärää, olen oppinut, että minulla on melko yleinen

Vaihe 2: Lataa koodi

Aseta SSID ja salasana koodiin ja lataa sitten taulullesi. Tämä mahdollistaa OTA: n ladata uuden koodin projektin kokoamisen jälkeen. Sinun on asennettava Makunan NeoPixelBus, joka on saatavana täältä https://github.com/Makuna/NeoPixelBus Sinun on myös asennettava ESP32 -kortin määritelmät arduino -ympäristöön voidaksesi käyttää tätä korttia.

// Wifi Jazz #Sisällytä #Sisällytä #Sisällytä #Sisällytä bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Salasana"; // Neopixel -jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Kirkkaus = 50; int R = 0; int G = 0; int B = 0; int Pulssi = 1600; // Puolet pulssien välisestä ajasta RgbVäri musta (0); // Button Jazz float Button1_total = 0; int tasoitus = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus -rengas (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Käynnistys"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, salasana); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Yhteys epäonnistui!"); viive (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 (); näytä (); } 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 (musta); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} viive (10); } void OTA_init () {ArduinoOTA.onStart ( () {Merkkijonotyyppi; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // HUOMAUTUS: jos SPIFFS -tiedostojen päivittäminen tämä on oikea paikka irrottaa SPIFFS käyttämällä SPIFFS.end () Serial.println ("Aloita päivitys" + tyyppi);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progress:%u %% / r", (progress / (total / 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 Epäonnistui "); 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) Serial. println ("Loppu epäonnistui");}); ArduinoOTA.begin (); Serial.println ("Valmis"); Serial.print ("IP -osoite:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Button1 [debounce-1] = (touchRead (T0)); kelluva virta = MaxArray (Button1); float Button1_smooth = Button1_total/tasoitus; // kelluva virta = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); if (nykyinen <(0,85*Button1_smooth)) {Button1_total = 0; // toimii palautuspalautuksena 1; } else {Button1_total = nykyinen +Button1_total -Button1_smooth; } palauta 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; for (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; varten (int i = 0; i

Vaihe 3: Kokoonpano

Kokoonpano
Kokoonpano

Kytke levy johdotuksen mukaisesti ja tarkista, että se toimii.

Kahvaan liitetty verkko toimii kosketuspainikkeena. Taulullani ESP32 T0 on liitetty D4: ään. Sinun on tarkistettava tämä, jos käytät toista levyä.

Paljaan langan kiinnittäminen tähän nastaan toimii samalla tavalla. Kun painat sitä kahdesti, se sammuu kuin yövalo. 3 kertaa hieman kirkkaampi ja 4 kertaa valkoinen.

Vaihe 4: Kokoa osat kypärään

Kokoa osat kypärään
Kokoa osat kypärään
Kokoa osat kypärään
Kokoa osat kypärään

Sytyttääksesi lampun käytämme kypärän kahvaa kosketusanturina. Tämä tarkoittaa, että sen on oltava eristetty muusta kypärästä. Irrota kahva ja peitä kosketuspinta eristysteipillä. Käytin ruskeaa teippiä sekoittumaan, se on korostettu sinisenä kuvassa. Poraa reiät niin, että ruuvit ovat välyksissä ja kiinnittyvät toiselle puolelle muovialuslevyillä.

Kytke napinpidike yhteen kahvan ruuveista puristusliittimen avulla.

Jos aiot käyttää kelluvaa virtalähdettä (melkein kaikki), sinun on kytkettävä GND -nasta kypärän runkoon samalla tavalla. Kytke lamppu päälle asettamalla toinen käsi kypärään ja koskettamalla kahvaa toisella.

Vaihe 5: Kytke virta

Image
Image
Kytke virta
Kytke virta

Kierrä mikro -USB -murtokortti 3D -tulostettuun laipioliittimeen ja kiinnitä sitten mutterilla.

Sen sijaan voidaan käyttää mitä tahansa 5 V: n tasavirtalähdettä, mutta usb -latureita on talossani runsaasti. Käytin punottua USB -kaapelia jäljittelemään vanhaa flexiä ja täydentämään ulkoasua.

Siinä olet valmis.

Jos haluat muokata koodia kokeillaksesi lisävärejä, tehosteita tai ajastimia, se on saatavana arduino OTA -laitteena ensimmäisten 10 minuutin ajan aina, kun se kytketään verkkoon. Tämä sammuu virran säästämiseksi.

Suositeltava: