Turinys:

Nardymo šalmo jutiklinė lempa: 5 žingsniai
Nardymo šalmo jutiklinė lempa: 5 žingsniai

Video: Nardymo šalmo jutiklinė lempa: 5 žingsniai

Video: Nardymo šalmo jutiklinė lempa: 5 žingsniai
Video: #SalmoJack #Jack #дайвер #салмо #salmo 2024, Liepa
Anonim
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa
Nardymo šalmo jutiklinė lempa

Šioje pamokomoje

Jums reikės

  1. Nardymo šalmas ar lygiavertis
  2. Su „Neopixel“suderinamas LED žiedas (naudojau žiedą su 38 šviesos diodais)
  3. „Wemos ESP32“plokštė (arba lygiavertė)
  4. 3D spausdintuvas

1 žingsnis: išspausdinkite šias dalis

Šias dalis gali tekti pritaikyti, jei naudojate kitą nardymo šalmą, sužinojau, kad tas, kurį turiu, yra gana įprastas

2 veiksmas: įkelkite kodą

Įdėkite savo SSID ir slaptažodį į kodą, tada įkelkite į savo lentą. Tai leidžia OTA įkelti naują kodą surinkus projektą. Turėsite įdiegti „NeunaPixelBus by Makuna“, kurią rasite čia https://github.com/Makuna/NeoPixelBus Kad galėtumėte naudoti šią plokštę, taip pat turėsite įdiegti ESP32 plokštės apibrėžimus arduino aplinkoje.

// „Wifi Jazz“#įtraukimas #įtraukimas #įtraukimas #įtraukimo boolis wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Slaptažodis"; // Neopikselių džiazas #include const uint16_t PixelCount = 38; const uint8_t „PixelPin“= 19; int colorSaturation = 50; int Ryškumas = 50; int R = 0; int G = 0; int B = 0; int Pulsas = 1600; // Pusė laiko tarp pulsacijų RgbSpalva juoda (0); // Button Jazz float Button1_total = 0; int glotninimas = 50; const int debounce = 5; plūdės mygtukas1 [debounce]; bool PWR = 0; „NeoPixelBus“žiedas („PixelCount“, „PixelPin“); void setup () {Serial.begin (115200); Serial.println („Įkrovimas“); „WiFi.mode“(WIFI_STA); WiFi.begin (ssid, slaptažodis); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Ryšys nepavyko!"); vėlavimas (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); žiedas. Pradėti (); 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 (juoda); ring. Show (); PWR =! PWR; } if (milis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Šviesa (0);} uždelsimas (10); } void OTA_init () {ArduinoOTA.onStart ( () {Stygos tipas; if (ArduinoOTA.getCommand () == U_FLASH) type = "eskizas"; else // U_SPIFFS type = "filesystem"; // PASTABA: jei atnaujinant SPIFFS, tai būtų vieta, kur būtų galima išjungti SPIFFS naudojant SPIFFS.end () Serial.println („Pradėti atnaujinimą“+ tipas);}).onEnd ( () {Serial.println („\ nEnd");}).onProgress ( (nepasirašytas int progresas, unsigned int total) {Serial.printf ("Progress:%u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t klaida) {Serial.printf („Klaida [%u]:“, klaida); jei (klaida == OTA_AUTH_ERROR) Serial.println („Aut. nepavyko“); kitaip jei (klaida == OTA_BEGIN_ERROR) Serial.println („Pradėti Nepavyko "); else if (error == OTA_CONNECT_ERROR) Serial.println (" Connect Failed "); else if (error == OTA_RECEIVE_ERROR) Serial.println (" Nepavyko gauti "); else if (error == OTA_END_ERROR) Serial. println („Pabaiga nepavyko“);}); ArduinoOTA.begin (); Serial.println („Paruošta“); Serial.print („IP adresas:“); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Button1 [debounce-1] = (touchRead (T0)); plūdės srovė = MaxArray (Button1); float Button1_smooth = Button1_total/glotninimas; // plūdės srovė = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (dabartinis); Serial.print (""); Serial.println (Button1 [debounce-1]); if (dabartinis <(0,85*Button1_smooth)) {Button1_total = 0; // veikia kaip debounce return 1; } else {Button1_total = dabartinis +Button1_total -Button1_smooth; } grįžti 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; plūdė mnm = MaxMe [0]; už (int i = 0; imxm) {mxm = MaxMe ; }} return mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; už (int i = 0; i

3 žingsnis: Surinkimas

Surinkimas
Surinkimas

Prijunkite plokštę, kaip parodyta, ir patikrinkite, ar ji veikia.

Prie rankenos prijungtas tinklas veiks kaip jutiklinis mygtukas. Mano lentoje ESP32 T0 yra prijungtas prie D4. Turėsite tai patikrinti, jei naudojate kitą plokštę.

Pritvirtinus pliką vielą prie šio kaiščio, elgsitės taip pat. Paspaudus du kartus, jis įsijungs kaip naktinis apšvietimas. 3 kartus šiek tiek ryškesnis ir 4 kartus baltas.

4 žingsnis: Surinkite dalis į šalmą

Surinkite dalis į šalmą
Surinkite dalis į šalmą
Surinkite dalis į šalmą
Surinkite dalis į šalmą

Norėdami įjungti lempą, mes naudosime šalmo rankeną kaip jutiklinį jutiklį. Tai reiškia, kad jis turi būti izoliuotas nuo likusio šalmo. Nuimkite rankeną ir uždenkite kontaktinį paviršių izoliacine juostele. Aš naudoju rudą juostą, kad ji susilietų, ji yra paryškinta mėlynai paveikslėlyje. Išgręžkite skyles taip, kad varžtai būtų laisvi ir vėl tvirtinami plastikinėmis poveržlėmis kitoje pusėje.

Prijunkite sagutę prie vieno iš rankenų varžtų, naudodami gofruotą jungtį.

Jei planuojate naudoti plūduriuojantį maitinimo šaltinį (beveik visus), tokiu pačiu būdu turėsite prijungti GND kaištį prie šalmo korpuso. Dabar, norėdami įjungti lempą, uždėkite vieną ranką ant šalmo ir kita palieskite rankeną.

5 veiksmas: prijunkite maitinimą

Image
Image
Prijunkite maitinimą
Prijunkite maitinimą

Prisukite mikro USB pertraukos plokštę prie 3D spausdintos pertvaros jungties, tada pritvirtinkite veržle.

Vietoj to galima naudoti bet kokį 5 V nuolatinės srovės maitinimo šaltinį, tačiau mano namuose gausu USB įkroviklių. Aš panaudojau pintą USB kabelį, kad paimčiau seną lankstumą ir užbaigčiau išvaizdą.

Štai ir viskas.

Jei norite modifikuoti kodą, kad išbandytumėte papildomas spalvas, efektus ar laikmačius, jis bus prieinamas kaip arduino OTA įrenginys pirmąsias 10 minučių kiekvieną kartą, kai jis bus prijungtas. Tada jis išsijungs taupant energiją.

Rekomenduojamas: