İçindekiler:

Dalış Kaskı Dokunmatik Lamba: 5 Adım
Dalış Kaskı Dokunmatik Lamba: 5 Adım

Video: Dalış Kaskı Dokunmatik Lamba: 5 Adım

Video: Dalış Kaskı Dokunmatik Lamba: 5 Adım
Video: EN İLGİNÇ 3 AKILLI SAAT🤫 2024, Kasım
Anonim
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba
Dalış Kaskı Dokunmatik Lamba

Bu talimatta

İhtiyacın olacak

  1. Dalış kaskı veya eşdeğeri
  2. Neopixel uyumlu LED halka (38 LED'li bir halka kullandım)
  3. Wemos ESP32 kartı (veya eşdeğeri)
  4. 3 boyutlu yazıcı

1. Adım: Bu Parçaları Yazdırın

Farklı bir dalış kaskı kullanıyorsanız bu parçaların uyarlanması gerekebilir, bende bulunanın oldukça yaygın olduğunu öğrendim.

2. Adım: Kodu Yükleyin

Kodun içine ssid ve şifrenizi girin ve ardından panonuza yükleyin. Bu, proje oluşturulduktan sonra OTA'nın yeni kod yüklemesine izin vermek için var. Burada bulunan NeoPixelBus by Makuna'yı yüklemeniz gerekecek https://github.com/Makuna/NeoPixelBus Bu kartı kullanabilmek için arduino ortamına ESP32 kart tanımlarını da yüklemeniz gerekecektir.

//Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* şifre = "Şifre"; //Neopixel caz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorDoygunluk = 50; int Parlaklık = 50; int R = 0; int G = 0; int B = 0; int Darbe = 1600; // Pulsasyonlar arasındaki zamanın yarısı RgbColor black(0); //Button Jazz şamandırası Button1_total = 0; int yumuşatma = 50; const int geri dönme = 5; şamandıra Button1[debounce]; bool PWR = 0; NeoPixelBus halkası (PixelCount, PixelPin); geçersiz kurulum() { Serial.begin(115200); Serial.println("Önyükleme"); WiFi.modu(WIFI_STA); WiFi.begin(ssid, şifre); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Bağlantı Başarısız!"); gecikme (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(); halka. Göster(); } void loop() { if (millis()<600000){ArduinoOTA.handle();} else if (wifi_timout==0){ ArduinoOTA.end(); wifi_timout = 1; WiFi.modu(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(() { Dize türü; if (ArduinoOTA.getCommand() == U_FLASH) türü = "sketch"; else // U_SPIFFS türü = "dosya sistemi"; // NOT: if SPIFFS'yi güncellemek, SPIFFS.end() Serial.println("Güncellemeye başla " + type); }).onEnd(() { Serial.println("\nEnd"); }) kullanarak SPIFFS'nin bağlantısını kesmek için burası olacaktır..onProgress((işaretsiz int ilerleme, işaretsiz int toplam) { Serial.printf("İlerleme: %u%%\r", (ilerleme / (toplam / 100))); }).onError((ota_error_t) error) { Serial.printf("Hata[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Başarısız"); else if (hata == OTA_CONNECT_ERROR) Serial.println("Bağlantı Başarısız"); else if (hata == OTA_RECEIVE_ERROR) Serial.println("Alma Başarısız"); else if (hata == OTA_END_ERROR) Seri. println("Bitti Başarısız"); }); ArduinoOTA.begin(); Serial.println("Hazır"); Serial.print("IP adresi:"); Serial.println(WiFi.localIP()); } int button1_capture(){ for (int i=0; i<(debounce-1);i++){ Button1=Button1[i+1]; } Button1[debounce-1] = (dokunmatikOkuma(T0)); kayan akım = MaxArray(Button1); float Button1_smooth = Button1_total/smoothing; // kayan akım = AveArray(Button1); Serial.print(Button1_smooth);Serial.print(" ");Serial.print(mevcut);Serial.print(" ");Serial.println(Button1[debounce-1]); if (geçerli < (0.85*Button1_smooth)){ Button1_total = 0; // geri dönme dönüşü 1 olarak çalışır; }else{ Button1_total = geçerli +Button1_total -Button1_smooth; } 0 döndür; } float MaxArray(float MaxMe){ float mxm = MaxMe[0]; kayan nokta mnm = MaksMe[0]; for (int i=0; imxm) { mxm = MaksMe; } } mxm'yi döndür; } float AveArray(float AveMe){ float toplam = 0; kayan nokta ave = 0; for (int i=0; ben

Adım 3: Montaj

toplantı
toplantı

Kartınızı gösterildiği gibi bağlayın ve çalışıp çalışmadığını kontrol edin.

'Tutamaç'a bağlı ağ, dokunmatik bir düğme görevi görecektir. Kartımda ESP32 T0, D4'e bağlı. Farklı bir tahta kullanıyorsanız bunu kontrol etmeniz gerekecektir.

Bu pime çıplak bir tel takmak aynı şekilde davranacaktır. İki kez basmak, bir gece lambası gibi düşük yakacaktır. 3 kat biraz daha parlak ve 4 kat beyaz.

Adım 4: Parçaları Kask İçinde Birleştirin

Parçaları Kask İçinde Birleştirin
Parçaları Kask İçinde Birleştirin
Parçaları Kask İçinde Birleştirin
Parçaları Kask İçinde Birleştirin

Lambayı yakmak için kaskın tutamağını dokunmatik sensör olarak kullanacağız. Bu, kaskın geri kalanından yalıtılması gerektiği anlamına gelir. Kolu çıkarın ve temas yüzeyini yalıtım bandıyla kapatın. Karışması için kahverengi bant kullandım, resimde mavi vurgulanmış. Delikleri, vidalar boşlukta kalacak ve diğer taraftaki bazı plastik pullarla yeniden monte edilebilecek şekilde delin.

Düğme piminizi bir kıvrımlı konektör kullanarak tutamak vidalarından birine bağlayın.

Yüzer bir güç kaynağı kullanmayı planlıyorsanız (hemen hemen hepsi), aynı şekilde kaskın gövdesine bir GND pimi bağlamanız gerekecektir. Şimdi lambayı açmak için bir elinizi kaskın üzerine koyun ve diğeriyle tutamağa dokunun.

Adım 5: Gücü Bağlayın

Image
Image
Gücü Bağlayın
Gücü Bağlayın

Mikro USB devre kartını 3D baskılı bölme konektörüne vidalayın ve ardından somunla yerine sabitleyin.

Bunun yerine herhangi bir 5V DC güç kaynağı kullanılabilir, ancak evimde usb şarj cihazları bol miktarda bulunur. Eski bir esnekliği taklit etmek ve görünümü tamamlamak için örgülü bir usb kablosu kullandım.

İşte bu kadarsın.

Ekstra renkler, efektler veya zamanlayıcılar denemek için kodu değiştirmek isterseniz, her takıldığında ilk 10 dakika boyunca bir arduino OTA cihazı olarak mevcut olacaktır. Bu daha sonra güç tasarrufu için kapanacaktır.

Önerilen: