Sisukord:

Sukeldumiskiivri puutelamp: 5 sammu
Sukeldumiskiivri puutelamp: 5 sammu

Video: Sukeldumiskiivri puutelamp: 5 sammu

Video: Sukeldumiskiivri puutelamp: 5 sammu
Video: Угрюм-река (1969) (1 серия) фильм 2024, Juuli
Anonim
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp
Sukeldumiskiivri puutelamp

Selles õpetlikus

Sa vajad

  1. Sukeldumiskiiver või samaväärne
  2. Neopixeliga ühilduv LED -rõngas (kasutasin 38 LED -iga rõngast)
  3. Wemos ESP32 plaat (või samaväärne)
  4. 3D printer

Samm: printige need osad välja

Need osad võivad vajada kohandamist, kui kasutate erinevat sukeldumiskiivrit, sain teada, et see, mis mul on, on üsna tavaline

Samm: laadige kood üles

Asetage oma SSID ja parool koodi, seejärel laadige see oma tahvlile üles. See võimaldab OTA -l pärast projekti kokkupanemist üles laadida uue koodi. Peate installima NeunaPixelBus by Makuna, mis on saadaval siin https://github.com/Makuna/NeoPixelBus Selle plaadi kasutamiseks peate installima ka ESP32 tahvli definitsioonid arduino keskkonda.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Parool"; // Neopixeli jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Heledus = 50; int R = 0; int G = 0; int B = 0; int Pulss = 1600; // Pool aega pulsatsioonide vahel RgbVärv must (0); // Button Jazz float Button1_total = 0; int silumine = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus ring (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Käivitamine"); WiFi -režiim (WIFI_STA); WiFi.begin (ssid, parool); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Ühendus nurjus!"); viivitus (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 -režiim (WIFI_OFF); btStop (); } if (button1_capture () == 1) {ring. ClearTo (must); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} viivitus (10); } void OTA_init () {ArduinoOTA.onStart ( () {Stringi tüüp; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // MÄRKUS: if SPIFFS -i värskendamine on see koht SPIFFS -i lahtiühendamiseks, kasutades SPIFFS.end () Serial.println ("Alusta värskendamist" + tüüp);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (allkirjastamata int progress, allkirjastamata int kokku) {Serial.printf ("Progress:%u %% / r", (progress / (kokku / 100)));}).onError ( (ota_error_t viga) {Serial.printf ("Viga [%u]:", viga); if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Begin Ebaõnnestus "); 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 ("Lõpp ebaõnnestus");}); ArduinoOTA.begin (); Serial.println ("Valmis"); Serial.print ("IP -aadress:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Nupp1 [debounce-1] = (touchRead (T0)); ujukivool = MaxArray (Button1); float Button1_smooth = Button1_total/silumine; // ujuvvool = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); if (praegune <(0,85*Button1_smooth)) {Button1_total = 0; // töötab tagasivoolutagastusena 1; } else {Button1_total = praegune +Button1_total -Button1_smooth; } tagasitulek 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; ujuk mnm = MaxMe [0]; jaoks (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; jaoks (int i = 0; i

3. samm: kokkupanek

Kokkupanek
Kokkupanek

Ühendage plaat vastavalt joonisele ja kontrollige, kas see töötab.

„Käepidemega” ühendatud võrk toimib puutetundliku nupuna. Minu plaadil on ESP32 T0 kinnitatud D4 külge. Teise plaadi kasutamisel peate seda kontrollima.

Palja traadi kinnitamine sellele tihvtile käitub samamoodi. Kui vajutate seda kaks korda, lülitatakse see nagu öövalgus sisse. 3 korda veidi heledam ja 4 korda valge.

Samm: ühendage kiivri osad kokku

Pange kiivri osad kokku
Pange kiivri osad kokku
Pange kiivri osad kokku
Pange kiivri osad kokku

Lambi sisselülitamiseks kasutame puuteandurina kiivri käepidet. See tähendab, et see peab olema ülejäänud kiivrist isoleeritud. Eemaldage käepide ja katke kontaktpind isolatsioonlindiga. Kasutasin segunemiseks pruuni teipi, see on pildil sinisega esile tõstetud. Puurige augud välja nii, et kruvid jääksid vabasse asendisse ja kinnitaksid neid mõne teise külje plastist seibidega.

Ühendage nööpnõel kruvipistiku abil ühe käepideme kruviga.

Kui kavatsete kasutada ujuvat toiteallikat (peaaegu kõiki neid), peate kiivri korpusega samal viisil ühendama GND tihvti. Lambi sisselülitamiseks asetage üks käsi kiivrile ja puudutage käepidet teisega.

Samm: ühendage toide

Image
Image
Ühendage toide
Ühendage toide

Keerake mikro -USB -katkestusplaat 3D -prinditud vaheseina pistiku külge ja kinnitage see mutriga.

Selle asemel saab kasutada mis tahes 5 V alalisvoolu toiteallikat, kuid USB -laadijaid on minu majas palju. Kasutasin põimitud USB -kaablit vana painde jäljendamiseks ja välimuse täiendamiseks.

Nii oletegi valmis.

Kui soovite koodi muuta, et proovida lisavärve, efekte või taimerit, on see saadaval arduino OTA -seadmena esimese 10 minuti jooksul iga kord, kui see võrku ühendatakse. See lülitub energia säästmiseks välja.

Soovitan: