Isi kandungan:

Lampu Sentuh Helmet Menyelam: 5 Langkah
Lampu Sentuh Helmet Menyelam: 5 Langkah

Video: Lampu Sentuh Helmet Menyelam: 5 Langkah

Video: Lampu Sentuh Helmet Menyelam: 5 Langkah
Video: SENTER PALING TERANG DIDUNIA TERMURAH 2024, November
Anonim
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam
Lampu Sentuh Helmet Menyelam

Dalam arahan ini

Anda perlu

  1. Helmet menyelam atau setaraf
  2. Cincin LED serasi Neopixel (saya menggunakan cincin dengan 38 LED)
  3. Papan Wemos ESP32 (atau setaraf)
  4. Pencetak 3D

Langkah 1: Cetak Bahagian Ini

Bahagian-bahagian ini mungkin perlu disesuaikan jika anda menggunakan helmet menyelam yang berbeza, saya mengetahui bahawa yang saya miliki agak biasa

Langkah 2: Muat naik Kod

Masukkan ssid dan kata laluan anda ke dalam kod kemudian muat naik ke papan anda. Ini ada untuk membolehkan OTA memuat naik kod baru setelah projek dipasang. Anda perlu memasang NeoPixelBus by Makuna yang terdapat di sini https://github.com/Makuna/NeoPixelBus Anda juga perlu memasang definisi papan ESP32 ke dalam persekitaran arduino untuk menggunakan papan ini.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * password = "Kata Laluan"; // Neopixel jazz #masuk const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Kecerahan = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // Separuh masa antara denyutan RgbColor black (0); // Button Jazz float Button1_total = 0; int smoothing = 50; const int debounce = 5; butang terapung1 [debounce]; bool PWR = 0; Cincin NeoPixelBus (PixelCount, PixelPin); persediaan tidak sah () {Serial.begin (115200); Serial.println ("Booting"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, kata laluan); sementara (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Sambungan Gagal!"); kelewatan (5000); //ESP.mulakan semula (); } OTA_init (); sentuh_pad_init (); touchSetCycles (0x6000, 0x6000); // touch_pad_set_cnt_mode (0, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_HIGH); cincin. Begin (); cincin. Tunjukkan (); } gelung void () {if (millis () <600000) {ArduinoOTA.handle ();} lain jika (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } if (button1_capture () == 1) {ring. ClearTo (hitam); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} kelewatan (10); } batal OTA_init () {ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // CATATAN: jika mengemas kini SPIFFS ini akan menjadi tempat untuk melepaskan SPIFFS menggunakan SPIFFS.end () Serial.println ("Mula mengemas kini" + jenis);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (int intigned int, unsigned int total) {Serial.printf ("Progress:% u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t ralat) {Serial.printf ("Ralat [% u]:", ralat); jika (ralat == OTA_AUTH_ERROR) Serial.println ("Auth Failed"); lain jika (ralat == OTA_BEGIN_ERROR) Serial.println ("Mulakan Gagal "); lain jika (ralat == OTA_CONNECT_ERROR) Serial.println (" Sambungan Gagal "); lain jika (ralat == OTA_RECEIVE_ERROR) Serial.println (" Terima Gagal "); lain jika (ralat == OTA_END_ERROR) Siri. println ("Tamat Gagal");}); ArduinoOTA.begin (); Serial.println ("Sedia"); Serial.print ("Alamat IP:"); Serial.println (WiFi.localIP ()); } int button1_capture () {untuk (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i + 1]; } Butang1 [debounce-1] = (touchRead (T0)); arus apungan = MaxArray (Butang1); butang terapung1_smooth = Butang1_total / melicinkan; // float current = AveArray (Butang1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (semasa); Serial.print (""); Serial.println (Button1 [debounce-1]); jika (semasa <(0.85 * Button1_smooth)) {Button1_total = 0; // berfungsi sebagai pemulangan debounce 1; } lain {Button1_total = semasa + Button1_total -Button1_smooth; } pulangkan 0; } terapung MaxArray (float MaxMe ) {float mxm = MaxMe [0]; terapung mnm = MaxMe [0]; untuk (int i = 0; imxm) {mxm = MaxMe ; }} pulangkan mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; untuk (int i = 0; i

Langkah 3: Perhimpunan

perhimpunan
perhimpunan

Kabelkan papan anda seperti yang ditunjukkan dan pastikan ia berfungsi.

Jaring yang disambungkan ke 'handle' akan bertindak sebagai butang sentuh. Di papan saya ESP32 T0 terpasang pada D4. Anda perlu memeriksa ini jika menggunakan papan yang berbeza.

Memasang wayar kosong ke pin ini akan berlaku sama. Menekannya dua kali akan menjadikannya rendah seperti cahaya malam. 3 kali ganda lebih cerah dan 4 kali putih.

Langkah 4: Pasang Bahagian ke Helmet

Pasang Bahagian ke Helmet
Pasang Bahagian ke Helmet
Pasang Bahagian ke Helmet
Pasang Bahagian ke Helmet

Untuk menghidupkan lampu, kita akan menggunakan pemegang helmet sebagai sensor sentuh. Ini bermaksud mesti dilindungi dari helmet yang lain. Tanggalkan pegangan dan tutup muka kontak dengan pita penebat. Saya menggunakan pita coklat untuk menyatu, ia diserlahkan biru pada gambar. Lubang lubang sehingga skru bebas dan pasang kembali dengan beberapa mesin basuh plastik di sisi lain.

Sambungkan pin butang anda ke salah satu skru pemegang menggunakan penyambung kelim.

Sekiranya anda merancang untuk menggunakan bekalan kuasa terapung (hampir semuanya), anda perlu menyambungkan pin GND ke badan topi keledar dengan cara yang sama. Sekarang untuk menyalakan lampu letakkan satu tangan pada topi keledar dan sentuh pemegangnya dengan tangan yang lain.

Langkah 5: Sambungkan Kuasa

Image
Image
Sambungkan Kuasa
Sambungkan Kuasa

Skru papan pemecah mikro USB ke penyambung sekat 3D yang dicetak kemudian selamatkan di tempatnya dengan mur.

Sebarang bekalan kuasa DC 5V boleh digunakan tetapi pengecas usb banyak terdapat di rumah saya. Saya menggunakan kabel usb yang dikepang untuk meniru flex lama dan melengkapkan penampilan.

Itulah dia selesai.

Sekiranya anda ingin mengubah kod untuk mencuba warna, kesan atau pemasa tambahan, ia akan tersedia sebagai peranti OTA arduino selama 10 minit pertama setiap kali ia dipasang. Ini kemudian akan dimatikan untuk menjimatkan kuasa.

Disyorkan: