Daftar Isi:

Lampu Sentuh Helm Selam: 5 Langkah
Lampu Sentuh Helm Selam: 5 Langkah

Video: Lampu Sentuh Helm Selam: 5 Langkah

Video: Lampu Sentuh Helm Selam: 5 Langkah
Video: Brimob Tembak Jatuh Drone Liar di Acara Grebeg Syawal Yogyakarta 2024, Juli
Anonim
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam
Lampu Sentuh Helm Selam

Dalam instruksi ini

Anda akan perlu

  1. Helm selam atau yang setara
  2. Cincin LED yang kompatibel dengan Neopixel (saya menggunakan cincin dengan 38 LED)
  3. Papan Wemos ESP32 (atau setara)
  4. pencetak 3D

Langkah 1: Cetak Bagian Ini

Bagian-bagian ini mungkin perlu disesuaikan jika Anda menggunakan helm selam yang berbeda, saya mengetahui bahwa yang saya miliki cukup umum

Langkah 2: Unggah Kode

Tempatkan ssid dan kata sandi Anda ke dalam kode lalu unggah ke papan Anda. Ini ada untuk memungkinkan OTA mengunggah kode baru setelah proyek dirakit. Anda perlu menginstal NeoPixelBus oleh Makuna yang tersedia di sini https://github.com/Makuna/NeoPixelBus Anda juga perlu menginstal definisi papan ESP32 ke dalam lingkungan arduino untuk menggunakan papan ini.

//Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* kata sandi = "Kata sandi"; //Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int warnaSaturasi = 50; int Kecerahan = 50; int R = 0; int G = 0; int B = 0; int Pulsa = 1600; //Setengah waktu antara denyut RgbColor black(0); //Tombol Jazz float Button1_total = 0; int pemulusan = 50; const int debounce = 5; float Button1[debounce]; bool PWR = 0; Cincin NeoPixelBus (PixelCount, PixelPin); void setup() { Serial.begin(115200); Serial.println("Booting"); WiFi.mode(WIFI_STA); WiFi.begin(ssid, kata sandi); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Koneksi Gagal!"); penundaan(5000); //ESP.mulai ulang(); } OTA_init(); touch_pad_init(); touchSetCycles(0x6000, 0x6000); // touch_pad_set_cnt_mode(0, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_HIGH); cincin. Mulai(); cincin. Tampilkan(); } void loop() { if (millis()<600000){ArduinoOTA.handle();} else if (wifi_timout==0){ ArduinoOTA.end(); wifi_timout = 1; WiFi.mode(WIFI_OFF); btBerhenti(); } if (button1_capture()==1){ ring. ClearTo(hitam);ring. Show(); PWR = !PWR; } if (milis()<1500){PWR = 0;} if (ring. CanShow()&&PWR==1){Light(0);} delay(10); } void OTA_init(){ ArduinoOTA.onStart(() { Jenis string; if (ArduinoOTA.getCommand() == U_FLASH) type = "sketsa"; else // U_SPIFFS type = "filesystem"; // CATATAN: jika memperbarui SPIFFS ini akan menjadi tempat untuk meng-unmount SPIFFS menggunakan SPIFFS.end() Serial.println("Mulai memperbarui " + ketik); }).onEnd(() { Serial.println("\nEnd"); }).onProgress((kemajuan unsigned int, unsigned int total) { Serial.printf("Kemajuan: %u%%\r", (kemajuan / (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("Mulai Gagal"); 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("Akhir Gagal"); }); ArduinoOTA.mulai(); Serial.println("Siap"); Serial.print("Alamat IP: "); Serial.println(WiFi.localIP()); } int button1_capture(){ for (int i=0; i<(debounce-1);i++){ Button1=Button1[i+1]; } Button1[debounce-1] = (sentuhBaca(T0)); arus float = MaxArray(Button1); float Button1_smooth = Button1_total/halus; // arus float = AveArray(Button1); Serial.print(Button1_smooth);Serial.print(" ");Serial.print(current);Serial.print(" ");Serial.println(Button1[debounce-1]); if (saat ini < (0,85*Button1_smooth)){ Button1_total = 0; //bekerja sebagai pengembalian debounce 1; }else{ Button1_total = saat ini +Tombol1_total -Button1_smooth; } kembalikan 0; } float MaxArray(float MaxMe){ float mxm = MaxMe[0]; float mnm = MaxMe[0]; for (int i=0; imxm) { mxm = MaxMe; } } kembalikan mxm; } float AveArray(float AveMe){ float total = 0; jalan apung = 0; untuk (int i=0; i

Langkah 3: Perakitan

perakitan
perakitan

Pasang papan Anda seperti yang ditunjukkan dan periksa apakah itu berfungsi.

Jaring yang terhubung ke 'pegangan' akan berfungsi sebagai tombol sentuh. Di papan saya, ESP32 T0 terpasang ke D4. Anda perlu memeriksa ini jika menggunakan papan yang berbeda.

Memasang kabel telanjang ke pin ini akan berperilaku sama. Menekannya dua kali akan menyalakannya rendah seperti lampu malam. 3 kali lebih terang dan 4 kali lebih putih.

Langkah 4: Pasang Bagian Ke Helm

Merakit Bagian Ke Helm
Merakit Bagian Ke Helm
Merakit Bagian Ke Helm
Merakit Bagian Ke Helm

Untuk menyalakan lampu kita akan menggunakan gagang helm sebagai sensor sentuh. Ini berarti harus diisolasi dari sisa helm. Lepaskan pegangan dan tutupi permukaan kontak dengan pita isolasi. Saya menggunakan pita coklat untuk membuatnya berbaur, itu disorot biru pada gambar. Bor lubangnya sehingga sekrup berada dalam jarak bebas dan dapat dipasang kembali dengan beberapa ring plastik di sisi lainnya.

Hubungkan pin tombol Anda ke salah satu sekrup pegangan menggunakan konektor crimp.

Jika Anda berencana untuk menggunakan catu daya mengambang (hampir semuanya) maka Anda perlu menghubungkan pin GND ke badan helm dengan cara yang sama. Sekarang untuk menyalakan lampu, letakkan satu tangan di atas helm dan sentuh pegangannya dengan tangan lainnya.

Langkah 5: Hubungkan Daya

Image
Image
Hubungkan Daya
Hubungkan Daya

Pasang papan breakout micro USB ke konektor sekat cetak 3D, lalu kencangkan di tempatnya dengan mur.

Catu daya 5V DC apa pun dapat digunakan sebagai gantinya tetapi pengisi daya usb berlimpah di rumah saya. Saya menggunakan kabel usb yang dikepang untuk meniru flex lama dan melengkapi tampilan.

Itu saja Anda sudah selesai.

Jika Anda ingin mengubah kode untuk mencoba warna, efek, atau timer tambahan, maka kode akan tersedia sebagai perangkat OTA arduino selama 10 menit pertama setiap kali dicolokkan. Ini kemudian akan dimatikan untuk menghemat daya.

Direkomendasikan: