Cuprins:

Lampă tactilă pentru cască de scufundare: 5 pași
Lampă tactilă pentru cască de scufundare: 5 pași

Video: Lampă tactilă pentru cască de scufundare: 5 pași

Video: Lampă tactilă pentru cască de scufundare: 5 pași
Video: Cele Mai Bune POVESTI De GROAZA Din Luna SEPTEMBRIE 2024, Iulie
Anonim
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare
Lampă tactilă pentru cască de scufundare

În acest instructabil

Vei avea nevoie

  1. Casca de scufundare sau echivalent
  2. Inel cu LED compatibil Neopixel (am folosit un inel cu 38 de LED-uri)
  3. Placa Wemos ESP32 (sau echivalent)
  4. imprimantă 3d

Pasul 1: Imprimați aceste părți

Este posibil ca aceste părți să fie nevoie să se adapteze dacă utilizați o cască de scufundare diferită, am aflat că cea pe care o am este destul de comună

Pasul 2: încărcați codul

Plasați ssid-ul și parola în cod, apoi încărcați-le pe tablă. Acest lucru este acolo pentru a permite OTA să încarce cod nou după asamblarea proiectului. Va trebui să instalați NeoPixelBus de Makuna disponibil aici https://github.com/Makuna/NeoPixelBus Va trebui, de asemenea, să instalați definițiile plăcii ESP32 în mediul arduino pentru a utiliza această placă.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * password = "Parola"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Luminozitate = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // Jumătate din timpul dintre pulsații RgbColor negru (0); // Buton Jazz float Buton1_total = 0; netezire int = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; Inel NeoPixelBus (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println („Pornire”); WiFi.mode (WIFI_STA); WiFi.begin (ssid, parolă); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Conexiunea nu a reușit!"); întârziere (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.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); } void OTA_init () {ArduinoOTA.onStart ( () {Tip șir; if (ArduinoOTA.getCommand () == U_FLASH) type = "schiță"; else // U_SPIFFS type = "sistem de fișiere"; // NOTĂ: if actualizarea SPIFFS acesta ar fi locul de demontare a SPIFFS folosind SPIFFS.end () Serial.println ("Începeți actualizarea" + tip);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (progres int nesemnat, total nesemnat) {Serial.printf ("Progres:% u %% / r", (progres / (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 Failed "); 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 ("Finalul a eșuat");}); ArduinoOTA.begin (); Serial.println („Gata”); Serial.print („Adresă IP:”); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i + 1]; } Buton1 [debounce-1] = (touchRead (T0)); float current = MaxArray (Buton1); float Button1_smooth = Buton1_total / netezire; // curent plutitor = AveArray (Buton1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (curent); Serial.print (""); Serial.println (Button1 [debounce-1]); if (current <(0.85 * Button1_smooth)) {Button1_total = 0; // funcționează ca un return de debounce 1; } else {Button1_total = current + Button1_total -Button1_smooth; } returnează 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; pentru (int i = 0; i

Pasul 3: Asamblare

Asamblare
Asamblare

Conectați-vă placa așa cum se arată și verificați dacă funcționează.

Plasa conectată la „mâner” va acționa ca un buton tactil. Pe placa mea ESP32 T0 este atașat la D4. Va trebui să verificați acest lucru dacă utilizați o altă placă.

Atașarea unui fir gol la acest știft se va comporta la fel. Dacă îl apăsați de două ori, îl veți aprinde ca o lumină de noapte. De 3 ori puțin mai strălucitor și de 4 ori alb.

Pasul 4: Asamblați piesele în cască

Asamblați piesele în cască
Asamblați piesele în cască
Asamblați piesele în cască
Asamblați piesele în cască

Pentru a aprinde lampa vom folosi mânerul căștii ca senzor tactil. Aceasta înseamnă că trebuie izolat de restul căștii. Scoateți mânerul și acoperiți fața de contact cu bandă izolatoare. Am folosit bandă maro pentru a se amesteca, este evidențiată în albastru în imagine. Găuriți găurile astfel încât șuruburile să fie libere și reașezabile cu niște șaibe de plastic pe cealaltă parte.

Conectați știftul la unul dintre șuruburile mânerelor folosind un conector de sertizare.

Dacă intenționați să utilizați o sursă de alimentare plutitoare (cam toate), va trebui să conectați un pin GND la corpul căștii în același mod. Acum, pentru a aprinde lampa, puneți o mână pe cască și atingeți mânerul cu cealaltă.

Pasul 5: Conectați alimentarea

Image
Image
Conectați alimentarea
Conectați alimentarea

Înșurubați placa de rupere micro USB la conectorul de perete imprimat 3D, apoi fixați-l cu piulița.

Orice sursă de alimentare de 5V DC poate fi utilizată în schimb, dar încărcătoarele USB sunt abundente în casa mea. Am folosit un cablu USB împletit pentru a mima un flex vechi și a completa aspectul.

Asta ai terminat.

Dacă doriți să modificați codul pentru a încerca culori, efecte sau temporizatoare suplimentare, acesta va fi disponibil ca dispozitiv arduino OTA în primele 10 minute de fiecare dată când este conectat. Acest lucru se va opri pentru a economisi energie.

Recomandat: