সুচিপত্র:

ডাইভিং হেলমেট টাচ ল্যাম্প: 5 টি ধাপ
ডাইভিং হেলমেট টাচ ল্যাম্প: 5 টি ধাপ

ভিডিও: ডাইভিং হেলমেট টাচ ল্যাম্প: 5 টি ধাপ

ভিডিও: ডাইভিং হেলমেট টাচ ল্যাম্প: 5 টি ধাপ
ভিডিও: Watch and enjoy the helmet tap!😁😳ওয়াও হেলমেট ট্যাপ দেখুন কি ভাবে ঠকালো আমায়?😢😒 2024, জুলাই
Anonim
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প
ডাইভিং হেলমেট টাচ ল্যাম্প

এই নির্দেশে

আপনার প্রয়োজন হবে

  1. ডাইভিং হেলমেট বা সমতুল্য
  2. Neopixel সামঞ্জস্যপূর্ণ LED রিং (আমি 38 LEDs সহ একটি রিং ব্যবহার করেছি)
  3. Wemos ESP32 বোর্ড (বা সমতুল্য)
  4. 3D প্রিন্টার

ধাপ 1: এই অংশগুলি মুদ্রণ করুন

যদি আপনি একটি ভিন্ন ডাইভিং হেলমেট ব্যবহার করেন তবে এই অংশগুলি খাপ খাইয়ে নেওয়ার প্রয়োজন হতে পারে, আমি শিখেছি যে আমার যেটি আছে তা মোটামুটি সাধারণ

ধাপ 2: কোড আপলোড করুন

কোডে আপনার ssid এবং পাসওয়ার্ড রাখুন তারপর আপনার বোর্ডে আপলোড করুন। প্রকল্পটি একত্রিত হওয়ার পরে ওটিএ নতুন কোড আপলোড করার অনুমতি দেওয়ার জন্য এটি রয়েছে। আপনাকে এখানে মাকুনার মাধ্যমে NeoPixelBus ইনস্টল করতে হবে https://github.com/Makuna/NeoPixelBus এই বোর্ডটি ব্যবহার করার জন্য আপনাকে Arduino পরিবেশে ESP32 বোর্ড সংজ্ঞাগুলিও ইনস্টল করতে হবে।

// ওয়াইফাই জাজ #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত বুল wifi_timout = 0; const char* ssid = "SSID"; const char* password = "Password"; // Neopixel জ্যাজ #অন্তর্ভুক্ত const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int উজ্জ্বলতা = 50; int R = 0; int জি = 0; int B = 0; int পালস = 1600; // স্পন্দনের মধ্যে অর্ধেক সময় RgbColor কালো (0); // বাটন জ্যাজ ভাসা Button1_total = 0; int মসৃণতা = 50; const int debounce = 5; float Button1 [debounce]; বুল PWR = 0; NeoPixelBus রিং (PixelCount, PixelPin); অকার্যকর সেটআপ () {Serial.begin (115200); Serial.println ("বুটিং"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, password); যখন (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 (black); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} বিলম্ব (10); } অকার্যকর OTA_init () {ArduinoOTA.onStart ( () {String type; if (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // NOTE: if SPIFFS আপডেট করা SPIFFS.end () Serial.println ("আপডেট করা শুরু করুন" + টাইপ);}) ব্যবহার করে SPIFFS আনমাউন্ট করার জায়গা হবে।.onProgress ( (স্বাক্ষরহীন int অগ্রগতি, স্বাক্ষরবিহীন int মোট) {Serial.printf ("অগ্রগতি:%u %% / r", (অগ্রগতি / (মোট / 100%));}) 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) সিরিয়াল.প্রিন্টলন (" ব্যর্থ ব্যর্থ "); অন্যথায় যদি (ত্রুটি == OTA_END_ERROR) সিরিয়াল println ("শেষ ব্যর্থ");}); ArduinoOTA.begin (); Serial.println ("প্রস্তুত"); সিরিয়াল.প্রিন্ট ("আইপি ঠিকানা:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } বাটন 1 [debounce-1] = (touchRead (T0)); float current = MaxArray (Button1); float Button1_smooth = Button1_total/smoothing; // float current = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (current); Serial.print (""); Serial.println (Button1 [debounce-1]); যদি (বর্তমান <(0.85*Button1_smooth)) {Button1_total = 0; // একটি ডিবাউন্স রিটার্ন 1 হিসাবে কাজ করে; } অন্যথায় {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 ; }} mxm ফেরত দিন; } float AveArray (float AveMe ) {float total = 0; ভাসমান ave = 0; জন্য (int i = 0; i

ধাপ 3: সমাবেশ

সমাবেশ
সমাবেশ

দেখানো হিসাবে আপনার বোর্ড তারের এবং এটি কাজ করে তা পরীক্ষা করুন।

'হ্যান্ডেল' এর সাথে সংযুক্ত নেট টাচ বাটন হিসেবে কাজ করবে। আমার বোর্ডে ESP32 T0 D4 এর সাথে সংযুক্ত। ভিন্ন বোর্ড ব্যবহার করলে আপনাকে এটি পরীক্ষা করতে হবে।

এই পিনের সাথে একটি খালি তার সংযুক্ত করা একই আচরণ করবে। এটি দুবার চাপলে এটি রাতের আলোর মতো কম হয়ে যাবে। 3 বার একটু উজ্জ্বল এবং 4 বার সাদা।

ধাপ 4: হেলমেটে অংশগুলি একত্রিত করুন

হেলমেটে অংশগুলি একত্রিত করুন
হেলমেটে অংশগুলি একত্রিত করুন
হেলমেটে অংশগুলি একত্রিত করুন
হেলমেটে অংশগুলি একত্রিত করুন

বাতি জ্বালানোর জন্য আমরা হেলমেটের হাতল টাচ সেন্সর হিসেবে ব্যবহার করব। এর অর্থ এটি হেলমেটের বাকি অংশ থেকে উত্তাপিত হতে হবে। হ্যান্ডেলটি সরান এবং ইনসুলেশন টেপ দিয়ে যোগাযোগের মুখটি েকে দিন। আমি মিশ্রিত করতে বাদামী টেপ ব্যবহার করেছি, এটি ছবিতে নীল হাইলাইট করা হয়েছে। ছিদ্রগুলি ড্রিল করুন যাতে স্ক্রুগুলি ক্লিয়ারেন্সে থাকে এবং অন্যদিকে কিছু প্লাস্টিকের ওয়াশারের সাথে পুনরায় ব্যবহারযোগ্য হয়।

আপনার বাটনপিনকে ক্রিম্প কানেক্টর ব্যবহার করে হ্যান্ডলস স্ক্রুগুলির মধ্যে একটিতে সংযুক্ত করুন।

যদি আপনি একটি ভাসমান বিদ্যুৎ সরবরাহ (তাদের বেশিরভাগই) ব্যবহার করার পরিকল্পনা করেন তবে আপনাকে একইভাবে হেলমেটের শরীরের সাথে একটি GND পিন সংযুক্ত করতে হবে। এখন বাতি জ্বালানোর জন্য হেলমেটের উপর একটি হাত রাখুন এবং অন্য হাত দিয়ে হ্যান্ডেলটি স্পর্শ করুন।

ধাপ 5: পাওয়ার সংযোগ করুন

Image
Image
বিদ্যুৎ সংযোগ করুন
বিদ্যুৎ সংযোগ করুন

মাইক্রো ইউএসবি ব্রেকআউট বোর্ড থ্রিডি প্রিন্টেড বাল্কহেড কানেক্টরে স্ক্রু করুন তারপর বাদাম দিয়ে জায়গায় নিরাপদ করুন।

যেকোন 5V ডিসি পাওয়ার সাপ্লাই ব্যবহার করা যেতে পারে কিন্তু ইউএসবি চার্জারগুলি আমার বাড়িতে প্রচুর পরিমাণে রয়েছে। আমি একটি পুরানো ফ্লেক্স মিমিক করতে এবং চেহারাটি সম্পূর্ণ করতে একটি ব্রেইড ইউএসবি কেবল ব্যবহার করেছি।

এটাই আপনার কাজ শেষ।

যদি আপনি অতিরিক্ত রং, প্রভাব বা টাইমার ব্যবহার করার জন্য কোডটি সংশোধন করতে চান তাহলে এটি প্রথম 10 মিনিটের জন্য একটি arduino OTA ডিভাইস হিসাবে উপলব্ধ হবে যখন এটি প্লাগ ইন করা হবে। এটি তখন বিদ্যুৎ সাশ্রয় করার জন্য বন্ধ হয়ে যাবে।

প্রস্তাবিত: