Përmbajtje:

Llambë prekëse e helmetës së zhytjes: 5 hapa
Llambë prekëse e helmetës së zhytjes: 5 hapa

Video: Llambë prekëse e helmetës së zhytjes: 5 hapa

Video: Llambë prekëse e helmetës së zhytjes: 5 hapa
Video: PIJA që largon helmet nga trupi: E pini para se të flini dhe dhjami në bark do të zhduket! 2024, Nëntor
Anonim
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes
Llambë prekëse e helmetës së zhytjes

Në këtë të udhëzueshme

Do t'ju duhet

  1. Përkrenare zhytjeje ose ekuivalente
  2. Unazë LED e pajtueshme me Neopixel (kam përdorur një unazë me 38 LED)
  3. Bordi Wemos ESP32 (ose ekuivalenti)
  4. Printer 3D

Hapi 1: Shtypni këto pjesë

Këto pjesë mund të kenë nevojë të përshtaten nëse përdorni një përkrenare të ndryshme zhytjeje, mësova se ajo që kam është mjaft e zakonshme

Hapi 2: Ngarko kodin

Vendosni ssid -in dhe fjalëkalimin tuaj në kod, pastaj ngarkoni në tabelën tuaj. Kjo është atje për të lejuar OTA të ngarkojë kodin e ri pasi të jetë montuar projekti. Ju do të duhet të instaloni NeoPixelBus by Makuna në dispozicion këtu https://github.com/Makuna/NeoPixelBus Ju gjithashtu do të duhet të instaloni përkufizimet e bordit ESP32 në mjedisin arduino në mënyrë që të përdorni këtë tabelë.

// Wifi Jazz #includ #include #include #include #includ bool wifi_timout = 0; const char* ssid = "SSID"; const char* fjalëkalimi = "Fjalëkalimi"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int Ndriçimi = 50; int R = 0; int G = 0; int B = 0; int Puls = 1600; // Gjysma e kohës midis pulsimeve RgbColor black (0); // Button Jazz float Button1_total = 0; int zbutja = 50; const int debounce = 5; float Button1 [debounce]; bool PWR = 0; Unaza NeoPixelBus (PixelCount, PixelPin); void setup () {Serial.begin (115200); Serial.println ("Boot"); Modaliteti WiFi (WIFI_STA); WiFi.filloni (ssid, fjalëkalim); ndërsa (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("Lidhja dështoi!"); vonesa (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); unazë. Filloni (); unazë. Shfaq (); } void loop () {if (millis () <600000) {ArduinoOTA.handle ();} tjetër nëse (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; Modaliteti WiFi (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);} vonesë (10); } void OTA_init () {ArduinoOTA.onStart ( () {Lloji i vargut; nëse (ArduinoOTA.getCommand () == U_FLASH) type = "skicë"; tjetër // U_SPIFFS type = "file system"; // SHENIM: nëse duke përditësuar SPIFFS ky do të ishte vendi për të çmontuar SPIFFS duke përdorur SPIFFS.end () Serial.println ("Fillo përditësimin" + lloji);}). në fund ( () {Serial.println ("\ nPërfundimi");}).onProgress ( (progres i panënshkruar int, i panënshkruar int total) {Serial.printf ("Progresi:%u %% / r", (përparimi / (total / 100)));}).onError ( (ota_error_t gabim) {Serial.printf ("Gabim [%u]:", gabim); nëse (gabim == OTA_AUTH_ERROR) Serial.println ("Autori dështoi"); tjetër nëse (gabim == OTA_BEGIN_ERROR) Serial.println ("Fillo Dështoi "); përndryshe nëse (gabim == OTA_CONNECT_ERROR) Serial.println (" Lidhja dështoi "); përndryshe nëse (gabim == OTA_RECEIVE_ERROR) Serial.println (" Marrja dështoi "); përndryshe nëse (gabim == OTA_END_ERROR) Serial. println ("Fundi dështoi");}); ArduinoOTA.filloj (); Serial.println ("Gati"); Serial.print ("Adresa IP:"); Serial.println (WiFi.localIP ()); } int button1_capture () {për (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Butoni1 [debounce-1] = (touchRead (T0)); float current = MaxArray (Button1); float Button1_smooth = Button1_total/zbutje; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (aktual); Serial.print (""); Serial.println (Button1 [debounce-1]); nëse (aktuale <(0.85*Button1_smooth)) {Button1_total = 0; // punon si kthim debounce 1; } else {Button1_total = aktuale +Button1_total -Button1_smooth; } kthimi 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; për (int i = 0; imxm) {mxm = MaxMe ; }} kthimi mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; për (int i = 0; i

Hapi 3: Montimi

Kuvendi
Kuvendi

Lidhni bordin tuaj siç tregohet dhe kontrolloni që të funksionojë.

Rrjeta e lidhur me 'dorezën' do të veprojë si një buton me prekje. Në bordin tim ESP32 T0 është ngjitur në D4. Ju do të duhet ta kontrolloni këtë nëse përdorni një tabelë tjetër.

Lidhja e një teli të zhveshur në këtë kunj do të sillet njësoj. Shtypja e tij dy herë do ta ndezë atë si drita e natës. 3 herë pak më e ndritshme dhe 4 herë e bardhë.

Hapi 4: Mblidhni Pjesët Në Përkrenare

Mblidhni Pjesët Në Përkrenare
Mblidhni Pjesët Në Përkrenare
Mblidhni Pjesët Në Përkrenare
Mblidhni Pjesët Në Përkrenare

Për të ndezur llambën ne do të përdorim dorezën e përkrenares si një sensor prekjeje. Kjo do të thotë se duhet të izolohet nga pjesa tjetër e përkrenares. Hiqeni dorezën dhe mbuloni fytyrën e kontaktit me shirit izolues. Kam përdorur shirit ngjyrë kafe për ta bërë atë të përzier, është e theksuar blu në imazh. Shponi vrimat në mënyrë që vidhat të jenë në hapësirë dhe të rikarikohen me disa rondele plastike në anën tjetër.

Lidhni butonin tuaj me një nga vidhat e dorezave duke përdorur një lidhës të ngjeshur.

Nëse planifikoni të përdorni një furnizim me energji lundruese (pothuajse të gjitha) atëherë do t'ju duhet të lidhni një kunj GND me trupin e përkrenares në të njëjtën mënyrë. Tani për të ndezur llambën vendoseni njërën dorë në përkrenare dhe prekni dorezën me tjetrën.

Hapi 5: Lidhni fuqinë

Image
Image
Lidhni fuqinë
Lidhni fuqinë

Vidhosni bordin e shpërthimit të mikro USB në lidhësin e ndarjes të printuar 3D dhe më pas sigurojeni në vend me arrë.

Çdo furnizim me energji 5V DC mund të përdoret në vend të tij, por ngarkuesit USB janë të shumtë në shtëpinë time. Kam përdorur një kabllo usb të thurur për të imituar një flex të vjetër dhe për të përfunduar pamjen.

Kjo është ajo që ju keni mbaruar.

Nëse dëshironi të modifikoni kodin për të provuar ngjyra shtesë, efekte ose kohëmatës atëherë ai do të jetë i disponueshëm si një pajisje arduino OTA për 10 minutat e para sa herë që të jetë i kyçur. Kjo pastaj do të fiket për të kursyer energji.

Recommended: