Obsah:

Dotyková lampa potápačskej prilby: 5 krokov
Dotyková lampa potápačskej prilby: 5 krokov

Video: Dotyková lampa potápačskej prilby: 5 krokov

Video: Dotyková lampa potápačskej prilby: 5 krokov
Video: Dotyková RGB stolní lampa – Crystal Diamond 2024, November
Anonim
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu
Dotyková lampa na potápačskú prilbu

V tomto pokyne

Budete potrebovať

  1. Potápačská prilba alebo jej ekvivalent
  2. Neopixelový LED krúžok (použil som krúžok s 38 diódami LED)
  3. Doska Wemos ESP32 (alebo ekvivalent)
  4. 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

zhromaždenie
zhromaždenie

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

Zostavte diely do prilby
Zostavte diely do prilby
Zostavte diely do prilby
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

Image
Image
Pripojte napájanie
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.

Odporúča: