Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
V tomto pokyne
Budete potrebovať
- Potápačská prilba alebo jej ekvivalent
- Neopixelový LED krúžok (použil som krúžok s 38 diódami LED)
- Doska Wemos ESP32 (alebo ekvivalent)
- 3D tlačiareň
Krok 1: Vytlačte tieto diely
Tieto časti možno bude potrebné prispôsobiť, ak používate inú potápačskú prilbu. Dozvedel som sa, že tá, ktorú mám, je celkom bežná
Krok 2: Nahrajte kód
Vložte ssid a heslo do kódu a potom ho nahrajte na tabuľu. Toto má umožniť OTA nahrávanie nového kódu po zostavení projektu. Na používanie tejto dosky budete musieť nainštalovať NeoPixelBus od spoločnosti Makuna, ktorý je k dispozícii tu https://github.com/Makuna/NeoPixelBus. Tiež budete musieť nainštalovať definície dosky ESP32 do prostredia arduino.
// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* heslo = "Heslo"; // Neopixelový jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Jas = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // Polovičný čas medzi pulzáciami RgbColor čierny (0); // Button Jazz float Button1_total = 0; int vyhladzovanie = 50; const int debounce = 5; float Button1 [odskok]; bool PWR = 0; Prsteň NeoPixelBus (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Zavádzanie"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, heslo); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Pripojenie zlyhalo!"); oneskorenie (5 000); //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); prsteň. Začnite (); prsteň. 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 (black); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} delay (10); } neplatné OTA_init () {ArduinoOTA.onStart ( () {typ reťazca; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // POZNÁMKA: ak aktualizácia SPIFFS toto by bolo miesto, kde môžete odpojiť SPIFFS pomocou SPIFFS.end () Serial.println ("Začať aktualizovať" + typ);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (priebeh bez znamienka, celkový počet bez znamienka) {Serial.printf ("priebeh:%u %% / r", (priebeh / (celkom / 100)));}).onError ( (ota_error_t chyba) {Serial.printf ("Chyba [%u]:", chyba); if (chyba == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Begin Zlyhalo "); else if (chyba == OTA_CONNECT_ERROR) Serial.println (" Pripojenie zlyhalo "); else if (chyba == OTA_RECEIVE_ERROR) Serial.println (" Príjem zlyhal "); else if (chyba == OTA_END_ERROR) Sériové číslo. println ("Koniec zlyhal");}); ArduinoOTA.begin (); Serial.println ("Pripravený"); 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)); float current = MaxArray (Button1); float Button1_smooth = Button1_total/smoothing; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (aktuálna); Serial.print (""); Serial.println (Button1 [debounce-1]); if (aktuálne <(0,85*Button1_smooth)) {Button1_total = 0; // funguje ako návratnosť debounce 1; } else {Button1_total = current +Button1_total -Button1_smooth; } vrátiť 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; pre (int i = 0; imxm) {mxm = MaxMe ; }} vrátiť mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; pre (int i = 0; i
Krok 3: Zostavenie
Zapojte dosku podľa obrázku a skontrolujte, či funguje.
Sieť pripojená k „držadlu“bude fungovať ako dotykové tlačidlo. Na mojej doske je ESP32 T0 pripevnený k D4. Ak používate inú dosku, budete to musieť skontrolovať.
Pripojenie holého drôtu k tomuto kolíku sa bude správať rovnako. Dvojitým stlačením sa vypne ako nočné svetlo. 3 krát trochu jasnejšie a 4 krát biele.
Krok 4: Zostavte diely do prilby
Na zapnutie žiarovky použijeme rukoväť helmy ako dotykový senzor. To znamená, že musí byť izolovaný od zvyšku prilby. Odstráňte rukoväť a kontaktnú plochu zakryte izolačnou páskou. Na splynutie som použil hnedú pásku, na obrázku je zvýraznená modrou farbou. Vyvŕtajte otvory tak, aby boli skrutky vo vôli a mohli ich znova nájsť pomocou niektorých plastových podložiek na druhej strane.
Pripojte svoj kolík k jednej z skrutiek držadla pomocou krimpovacieho konektora.
Ak plánujete používať plávajúci napájací zdroj (takmer všetky), budete musieť rovnakým spôsobom pripojiť kolík GND k telu prilby. Teraz, aby ste rozsvietili lampu, položte jednu ruku na prilbu a druhou sa dotýkajte rukoväte.
Krok 5: Pripojte napájanie
Odskrutkujte oddeľovaciu dosku micro USB k 3D tlačenému prepážkovému konektoru a potom ho zaistite maticou.
Namiesto toho je možné použiť akékoľvek napájanie 5 V DC, ale v mojom dome je veľa USB nabíjačiek. Použil som opletený USB kábel, aby som napodobnil starý flex a dokončil vzhľad.
To je všetko, čo ste urobili.
Ak chcete kód upraviť tak, aby vyskúšal ďalšie farby, efekty alebo časovače, bude k dispozícii ako zariadenie arduino OTA počas prvých 10 minút vždy, keď je zapojený. Potom sa vypne, aby sa šetrila energia.