Talaan ng mga Nilalaman:

Diving Helmet Touch Lamp: 5 Hakbang
Diving Helmet Touch Lamp: 5 Hakbang

Video: Diving Helmet Touch Lamp: 5 Hakbang

Video: Diving Helmet Touch Lamp: 5 Hakbang
Video: Odin Makes: I get to work with a laser! Longer Ray5 laser engraver review 2024, Hulyo
Anonim
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp
Diving Helmet Touch Lamp

Sa itinuturo na ito

Kakailanganin mong

  1. Diving helmet o katumbas
  2. Katugma ng Neopixel LED ring (Gumamit ako ng singsing na may 38 LEDs)
  3. Wemos ESP32 board (o katumbas)
  4. 3d printer

Hakbang 1: I-print ang Mga Bahaging Ito

Ang mga bahaging ito ay maaaring mangailangan ng pag-angkop kung gumagamit ka ng ibang diving helmet, natutunan ko na ang mayroon ako ay medyo pangkaraniwan

Hakbang 2: I-upload ang Code

Ilagay ang iyong ssid at password sa code pagkatapos ay i-upload sa iyong board. Naroroon ito upang payagan ang OTA na mag-upload ng bagong code pagkatapos na tipunin ang proyekto. Kakailanganin mong i-install ang NeoPixelBus ng Makuna na magagamit dito https://github.com/Makuna/NeoPixelBus Kakailanganin mo ring i-install ang mga kahulugan ng board ng ESP32 sa kapaligiran ng arduino upang magamit ang board na ito.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char * ssid = "SSID"; const char * password = "Password"; // Neopixel jazz # isama ang const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Liwanag = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // Half ang oras sa pagitan ng pulsations RgbColor black (0); // Button Jazz float Button1_total = 0; int smoothing = 50; Const int debounce = 5; float Button1 [debounce]; bool PWR = 0; NeoPixelBus ring (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Booting"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, password); habang (WiFi.waitForConnectResult ()! = WL_CONNected) {Serial.println ("Nabigo ang Koneksyon!"); pagkaantala (5000); //ESP. restart (); } OTA_init (); touch_pad_init (); touchSetCycle (0x6000, 0x6000); // touch_pad_set_cnt_mode (0, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_HIGH); singsing. Simula (); singsing. Ipakita (); } void loop () {if (millis () <600000) {ArduinoOTA.handle ();} iba pa kung (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } kung (button1_capture () == 1) {ring. ClearTo (black); ring. Show (); PWR =! PWR; } kung (millis () <1500) {PWR = 0;} kung (ring. CanShow () && PWR == 1) {Light (0);} pagkaantala (10); } void OTA_init () {ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // TANDAAN: kung pag-update ng SPIFFS ito ang magiging lugar upang mai-unmount ang SPIFFS gamit ang SPIFFS.end () Serial.println ("Simulang i-update ang" + uri);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (unsigned int progress, unsigned int total) {Serial.printf ("Progress:% u %% / r", (progress / (total / 100)));}).onError ( (ota_error_t error) {Serial.printf ("Error [% u]:", error); kung (error == OTA_AUTH_ERROR) Serial.println ("Nabigo ang Auth"); iba pa kung (error == OTA_BEGIN_ERROR) Serial.println ("Magsimula Nabigong "); iba pa kung (error == OTA_CONNECT_ERROR) Serial.println (" Nabigo ang Kumonekta "); iba pa kung (error == OTA_RECEIVE_ERROR) Serial.println (" Natanggap Nabigo "); iba pa kung (error == OTA_END_ERROR) Serial. println ("Nabigo ang Pagtatapos");}); ArduinoOTA.begin (); Serial.println ("Handa"); Serial.print ("IP address:"); Serial.println (WiFi.localIP ()); } int button1_capture () {para (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i + 1]; } Button1 [debounce-1] = (touchRead (T0)); float kasalukuyang = MaxArray (Button1); float Button1_smooth = Button1_total / smoothing; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (kasalukuyang); Serial.print (""); Serial.println (Button1 [debounce-1]); kung (kasalukuyang <(0.85 * Button1_smooth)) {Button1_total = 0; // gumagana bilang isang debounce return 1; } iba pa {Button1_total = kasalukuyang + Button1_total-Button1_smooth; } ibalik ang 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; para sa (int i = 0; imxm) {mxm = MaxMe ; }} ibalik ang mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; para sa (int i = 0; i

Hakbang 3: Assembly

Assembly
Assembly

Wire up ang iyong board tulad ng ipinakita at suriin na gumagana ito.

Ang net na konektado sa 'hawakan' ay kikilos bilang isang pindutang pindutin. Sa aking board ang ESP32 T0 ay nakakabit sa D4. Kakailanganin mong suriin ito kung gumagamit ng ibang board.

Ang paglakip ng isang hubad na kawad sa pin na ito ay magkakaugali sa pareho. Ang pagpindot dito ng dalawang beses ay bubukas ito sa mababang tulad ng isang ilaw sa gabi. 3 beses na medyo mas maliwanag at 4 na beses na puti.

Hakbang 4: Ipunin ang Mga Bahagi Sa Helmet

Ipunin ang Mga Bahagi Sa Helmet
Ipunin ang Mga Bahagi Sa Helmet
Ipunin ang Mga Bahagi Sa Helmet
Ipunin ang Mga Bahagi Sa Helmet

Upang i-on ang lampara gagamitin namin ang hawakan ng helmet bilang isang touch sensor. Nangangahulugan ito na dapat itong insulated mula sa natitirang helmet. Alisin ang hawakan at takpan ang mukha ng contact na may insulation tape. Gumamit ako ng brown tape upang maisama ito, naka-highlight ito ng asul sa imahe. I-drill ang mga butas upang ang mga turnilyo ay nasa clearance at muling ibalik sa ilang mga washer ng plastik sa kabilang panig.

Ikonekta ang iyong buttonpin sa isa sa mga humahawak ng mga tornilyo gamit ang isang crimp konektor.

Kung balak mong gumamit ng isang lumulutang na supply ng kuryente (halos lahat sa kanila) pagkatapos ay kakailanganin mong ikonekta ang isang GND pin sa katawan ng helmet sa parehong paraan. Ngayon upang i-on ang lampara ilagay ang isang kamay sa helmet at hawakan ang hawakan gamit ang iba pa.

Hakbang 5: Ikonekta ang Lakas

Image
Image
Ikonekta ang Lakas
Ikonekta ang Lakas

I-tornilyo ang micro USB breakout board sa naka-print na konektor ng bulkhead na 3D pagkatapos ay i-secure sa lugar gamit ang kulay ng nuwes.

Anumang 5V DC power supply ay maaaring magamit sa halip ngunit ang mga usb charger ay masagana sa aking bahay. Gumamit ako ng isang tinirintas na usb cable upang gayahin ang isang lumang baluktot at kumpletuhin ang hitsura.

Iyon ay tapos ka na.

Kung nais mong baguhin ang code upang subukan ang labis na mga kulay, epekto o timer pagkatapos ay magagamit ito bilang isang arduino OTA aparato para sa unang 10 minuto bawat oras na ito ay naka-plug in. Pagkatapos ay papatayin ito upang makatipid ng lakas.

Inirerekumendang: