Mục lục:

Đèn cảm ứng mũ bảo hiểm lặn: 5 bước
Đèn cảm ứng mũ bảo hiểm lặn: 5 bước

Video: Đèn cảm ứng mũ bảo hiểm lặn: 5 bước

Video: Đèn cảm ứng mũ bảo hiểm lặn: 5 bước
Video: Bộ Váy Hoa Súng gây bão truyền thông của Hoa Hậu Khánh Vân tại Miss Universe 2021 2024, Tháng mười một
Anonim
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn
Đèn cảm ứng mũ bảo hiểm lặn

Trong hướng dẫn này

Bạn sẽ cần

  1. Mũ bảo hiểm lặn hoặc tương đương
  2. Vòng LED tương thích Neopixel (Tôi đã sử dụng vòng có 38 đèn LED)
  3. Bo mạch Wemos ESP32 (hoặc tương đương)
  4. máy in 3D

Bước 1: In các phần này

Những bộ phận này có thể cần thích ứng nếu bạn đang sử dụng một chiếc mũ bảo hiểm lặn khác, tôi biết được rằng cái tôi có là khá phổ biến

Bước 2: Tải lên mã

Đặt ssid và mật khẩu của bạn vào mã sau đó tải lên bảng của bạn. Điều này ở đó để cho phép OTA tải lên mã mới sau khi dự án được lắp ráp. Bạn sẽ cần cài đặt NeoPixelBus của Makuna có sẵn tại đây https://github.com/Makuna/NeoPixelBus Bạn cũng sẽ cần cài đặt các định nghĩa bảng ESP32 vào môi trường arduino để sử dụng bảng này.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * password = "Mật khẩu"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Độ sáng = 50; int R = 0; int G = 0; int B = 0; int Xung = 1600; // Một nửa thời gian giữa các xung RgbColor black (0); // Nút Jazz float Button1_total = 0; int làm mịn = 50; const int debounce = 5; float Button1 [gỡ lỗi]; bool PWR = 0; Vòng NeoPixelBus (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Đang khởi động"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, mật khẩu); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Kết nối không thành công!"); chậm trễ (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 ( () {Kiểu chuỗi; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // LƯU Ý: nếu cập nhật SPIFFS, đây sẽ là nơi để ngắt kết nối SPIFFS bằng SPIFFS.end () Serial.println ("Bắt đầu cập nhật" + type);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int process, unsigned int total) {Serial.printf ("Progress:% u %% / r", (process / (total / 100)));}).onError ( (ota_error_t error) {Serial.printf ("Error [% u]:", error); if (error == OTA_AUTH_ERROR) Serial.println ("Auth F failed"); else if (error == OTA_BEGIN_ERROR) Serial.println ("Bắt đầu Không thành công "); else if (lỗi == OTA_CONNECT_ERROR) Serial.println (" Kết nối không thành công "); else if (lỗi == OTA_RECEIVE_ERROR) Serial.println (" Nhận không thành công "); else if (lỗi == OTA_END_ERROR) Sê-ri. println ("Kết thúc Không thành công");}); ArduinoOTA.begin (); Serial.println ("Sẵn sàng"); Serial.print ("Địa chỉ IP:"); 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 hiện tại = MaxArray (Button1); float Button1_smooth = Button1_total / làm mịn; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); if (current <(0.85 * Button1_smooth)) {Button1_total = 0; // hoạt động như một debounce return 1; } else {Button1_total = current + Button1_total -Button1_smooth; } trả về 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; for (int i = 0; imxm) {mxm = MaxMe ; }} trả về mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; for (int i = 0; i

Bước 3: Lắp ráp

cuộc họp
cuộc họp

Nối dây bảng của bạn như được hiển thị và kiểm tra xem nó có hoạt động không.

Mạng kết nối với 'tay cầm' sẽ hoạt động như một nút cảm ứng. Trên bảng của tôi, ESP32 T0 được gắn vào D4. Bạn sẽ cần phải kiểm tra điều này nếu sử dụng một bảng khác.

Gắn dây trần vào chốt này sẽ hoạt động tương tự. Nhấn nó hai lần sẽ bật nó ở mức thấp như đèn ngủ. Sáng hơn 3 lần một chút và trắng hơn 4 lần.

Bước 4: Lắp ráp các bộ phận vào mũ bảo hiểm

Lắp ráp các bộ phận vào mũ bảo hiểm
Lắp ráp các bộ phận vào mũ bảo hiểm
Lắp ráp các bộ phận vào mũ bảo hiểm
Lắp ráp các bộ phận vào mũ bảo hiểm

Để bật đèn, chúng ta sẽ sử dụng tay cầm của mũ bảo hiểm như một cảm biến cảm ứng. Điều này có nghĩa là nó phải được cách nhiệt với phần còn lại của mũ bảo hiểm. Tháo tay cầm và che mặt tiếp xúc bằng băng keo cách nhiệt. Tôi đã sử dụng băng màu nâu để làm cho nó hòa trộn vào nhau, nó được đánh dấu màu xanh lam trong hình ảnh. Khoan các lỗ sao cho các vít ở trong khoảng hở và lắp lại bằng một số vòng đệm bằng nhựa ở phía bên kia.

Kết nối đinh ghim của bạn với một trong số các vít của tay cầm bằng cách sử dụng đầu nối uốn.

Nếu bạn định sử dụng nguồn điện nổi (hầu như tất cả chúng) thì bạn sẽ cần kết nối một chốt GND với thân mũ bảo hiểm theo cách tương tự. Bây giờ để bật đèn, hãy đặt một tay lên mũ bảo hiểm và chạm vào tay cầm bằng nhiệt độ khác.

Bước 5: Kết nối nguồn

Image
Image
Kết nối nguồn điện
Kết nối nguồn điện

Vặn bảng ngắt micro USB vào đầu nối vách ngăn in 3D sau đó cố định vị trí bằng đai ốc.

Có thể sử dụng bất kỳ nguồn điện 5V DC nào thay thế nhưng trong nhà tôi có rất nhiều bộ sạc usb. Tôi đã sử dụng một cáp usb bện để bắt chước một cái uốn cũ và hoàn thiện giao diện.

Đó là nó bạn đã hoàn thành.

Nếu bạn muốn sửa đổi mã để thử màu sắc, hiệu ứng hoặc bộ hẹn giờ bổ sung thì mã sẽ có sẵn dưới dạng thiết bị arduino OTA trong 10 phút đầu tiên mỗi khi được cắm vào. Thao tác này sau đó sẽ tắt để tiết kiệm điện.

Đề xuất: