فهرست مطالب:

لامپ لمسی کلاه غواصی: 5 مرحله
لامپ لمسی کلاه غواصی: 5 مرحله

تصویری: لامپ لمسی کلاه غواصی: 5 مرحله

تصویری: لامپ لمسی کلاه غواصی: 5 مرحله
تصویری: Part 1 - The Invisible Man Audiobook by H. G. Wells (Chs 01-17) 2024, نوامبر
Anonim
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی
لامپ لمسی کلاه ایمنی غواصی

در این دستورالعمل

شما نیاز خواهید داشت

  1. کلاه غواصی یا معادل آن
  2. حلقه LED سازگار با Neopixel (من از حلقه ای با 38 LED استفاده کردم)
  3. برد Wemos ESP32 (یا معادل آن)
  4. چاپگر سه بعدی

مرحله 1: این قسمت ها را چاپ کنید

اگر از کلاه غواصی متفاوتی استفاده می کنید ، ممکن است این قطعات نیاز به سازگاری داشته باشند ، من فهمیدم که آن چیزی که من دارم بسیار رایج است

مرحله 2: کد را بارگذاری کنید

ssid و رمز عبور خود را در کد قرار دهید و سپس روی برد خود بارگذاری کنید. این امکان وجود دارد تا OTA پس از مونتاژ پروژه بارگذاری کد جدید را بارگذاری کند. شما باید NeoPixelBus by Makuna را در اینجا نصب کنید https://github.com/Makuna/NeoPixelBus همچنین برای استفاده از این برد باید تعاریف برد ESP32 را در محیط arduino نصب کنید.

// وای فای جاز #شامل #شامل #شامل #شامل #شامل بول wifi_timout = 0؛ const char* ssid = "SSID"؛ const char* رمز عبور = "رمز عبور"؛ // Neopixel jazz #inconste const uint16_t PixelCount = 38؛ const uint8_t PixelPin = 19؛ int colorSaturation = 50 ؛ int روشنایی = 50 ؛ int R = 0 ؛ int G = 0 ؛ int B = 0 ؛ int پالس = 1600 ؛ // نصف زمان بین ضربان قلب RgbColor سیاه (0) ؛ // Button Jazz float Button1_total = 0؛ هموارسازی int = 50 ؛ const int debounce = 5؛ float Button1 [debounce]؛ bool PWR = 0 ؛ حلقه NeoPixelBus (PixelCount ، PixelPin) ؛ void setup () {Serial.begin (115200)؛ Serial.println ("بوت") ؛ WiFi.mode (WIFI_STA) ؛ WiFi.begin (ssid ، رمز عبور) ؛ while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("اتصال ناموفق بود!") ؛ تأخیر (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) ؛ حلقه شروع ()؛ حلقه نمایش ()؛ } 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 (سیاه) ؛ ring. Show () ؛ PWR =! PWR؛ } if (millis () <1500) {PWR = 0؛} if (ring. CanShow () && PWR == 1) {Light (0)؛} تأخیر (10) ؛ } void OTA_init () {ArduinoOTA.onStart ( () {String type؛ if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"؛ else // U_SPIFFS type = "systemystem"؛ // NOTE: if به روز رسانی SPIFFS این مکان می تواند SPIFFS را با استفاده از SPIFFS.nd جدا کند..onProgress ( (int int پیشرفت ، unsigned int total) {Serial.printf ("پیشرفت:٪ u ٪٪ / r" ، (progress / (total / 100)))؛}).onError ( (ota_error_t error) {Serial.printf ("Error [٪ u]:"، error)؛ if (error == OTA_AUTH_ERROR) Serial.println ("Auth Failed") ؛ وگرنه اگر (error == OTA_BEGIN_ERROR) Serial.println ("شروع ناموفق ") ؛ در غیر این صورت (خطا == OTA_CONNECT_ERROR) Serial.println (" اتصال ناموفق بود ") ؛ وگرنه اگر (خطا == OTA_RECEIVE_ERROR) Serial.println (" دریافت ناموفق ") ؛ وگرنه اگر (خطا == OTA_END_ERROR) سریال. println ("پایان ناموفق")؛})؛ ArduinoOTA.begin ()؛ Serial.println ("آماده") ؛ Serial.print ("آدرس 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)) ؛ شناور جریان = MaxArray (Button1)؛ float Button1_smooth = Button1_total/smoothing؛ // شناور جریان = AveArray (Button1) ؛ Serial.print (Button1_smooth)؛ Serial.print ("")؛ Serial.print (جاری)؛ Serial.print ("")؛ Serial.println (Button1 [debounce-1])؛ if (فعلی <(0.85*Button1_smooth)) {Button1_total = 0؛ // به عنوان بازده بازگشتی 1 عمل می کند ؛ } else {Button1_total = current +Button1_total -Button1_smooth؛ } بازگشت 0؛ } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]؛ float mnm = MaxMe [0]؛ برای (int i = 0 ؛ imxm) {mxm = MaxMe ؛ }} return mxm؛ } float AveArray (float AveMe ) {float total = 0؛ float ave = 0؛ برای (int i = 0 ؛ i

مرحله 3: مونتاژ

مونتاژ
مونتاژ

صفحه خود را مطابق شکل سیم بندی کنید و بررسی کنید که کار می کند.

شبکه متصل به 'دسته' به عنوان یک دکمه لمسی عمل می کند. روی برد من ESP32 T0 به D4 متصل شده است. در صورت استفاده از برد دیگر ، باید این مورد را بررسی کنید.

اتصال سیم برهنه به این پین نیز همان رفتار را خواهد داشت. دوبار فشار دادن آن مانند نور شب کم روشن می شود. 3 بار کمی روشن تر و 4 برابر سفید.

مرحله 4: قطعات را داخل کلاه ایمنی جمع کنید

قطعات را داخل کلاه ایمنی جمع کنید
قطعات را داخل کلاه ایمنی جمع کنید
قطعات را داخل کلاه ایمنی جمع کنید
قطعات را داخل کلاه ایمنی جمع کنید

برای روشن کردن لامپ ، از دسته کلاه ایمنی به عنوان سنسور لمسی استفاده می کنیم. این بدان معناست که باید از بقیه کلاه ایمنی عایق باشد. دسته را بردارید و صورت تماس را با نوار عایق بپوشانید. من از نوار قهوه ای برای ترکیب آن استفاده کردم ، در تصویر آبی برجسته شده است. سوراخ ها را طوری سوراخ کنید که پیچ ها باز شده و با برخی از واشرهای پلاستیکی در طرف دیگر قابل جمع شدن مجدد باشند.

با استفاده از یک کانکتور ، دکمه دکمه خود را به یکی از پیچ های دسته متصل کنید.

اگر قصد دارید از منبع تغذیه شناور (تقریباً همه آنها) استفاده کنید ، باید یک پایه GND را به بدنه کلاه ایمنی به همان شیوه وصل کنید. حالا برای روشن کردن لامپ ، یک دست خود را روی کلاه ایمنی بگذارید و دسته دیگر را با دست دیگر لمس کنید.

مرحله 5: برق را وصل کنید

Image
Image
Power را وصل کنید
Power را وصل کنید

برد بریکت میکرو USB را به کانکتور دیواره چاپ سه بعدی وصل کرده و سپس با مهره در جای خود محکم کنید.

هر منبع تغذیه 5 ولت DC می تواند به جای آن استفاده شود ، اما شارژرهای USB در خانه من زیاد است. من از یک کابل usb بافته برای شبیه سازی فلکس قدیمی و تکمیل ظاهر استفاده کردم.

این همان کاری است که شما تمام کرده اید.

اگر می خواهید کد را تغییر دهید تا رنگ ها ، جلوه ها یا تایمرهای بیشتری را امتحان کنید ، هر بار که به برق متصل است ، به عنوان یک دستگاه OTA آردوینو در 10 دقیقه اول در دسترس خواهد بود. سپس برای صرفه جویی در برق خاموش می شود.

توصیه شده: