সুচিপত্র:

AtHome: 7 ধাপ সহ একটি আলোকসজ্জা মডিউল তৈরি করুন
AtHome: 7 ধাপ সহ একটি আলোকসজ্জা মডিউল তৈরি করুন

ভিডিও: AtHome: 7 ধাপ সহ একটি আলোকসজ্জা মডিউল তৈরি করুন

ভিডিও: AtHome: 7 ধাপ সহ একটি আলোকসজ্জা মডিউল তৈরি করুন
ভিডিও: 🔴 চিহিরোস সিরিজ একটি লিউমিনেয়ার: আমার রাখা গুপি মাছের অাকাশের যে আলো প্রয়োজনটি ছিল! 2024, নভেম্বর
Anonim
AtHome দিয়ে একটি আলোকসজ্জা মডিউল তৈরি করুন
AtHome দিয়ে একটি আলোকসজ্জা মডিউল তৈরি করুন

এটহোম একটি সম্পূর্ণ ওপেনসোর্স এবং ওপেন হার্ডওয়্যার স্টুডেন্ট প্রজেক্ট যা এপিহেক থেকে গ্রুপ এথোম দ্বারা তৈরি করা হয়েছে, যার লক্ষ্য একটি স্ব-হোস্টেড ডাটাবেসের সাথে যোগাযোগের জন্য একটি পৃথক সেন্সর মডিউলগুলির একটি সংযুক্ত সমাধান তৈরি করা যা একটি স্মার্টফোন অ্যাপ্লিকেশন এবং একটি ওয়েব অ্যাপ্লিকেশন খাওয়ানোর জন্য ব্যবহৃত একটি API প্রকাশ করে। মডিউলগুলি একটি বাড়ির অভ্যন্তরীণ পরিবেশ পর্যবেক্ষণ করে এবং ব্যবহারকারীকে একটি চাক্ষুষ প্রতিক্রিয়া দিতে সক্ষম হয়, সবুজ (ভাল) থেকে লাল (খারাপ) এবং প্রেরিত ডেটা ব্যবহারকারীর দ্বারা একটি মডিউলের সিরিয়াল যোগাযোগের মাধ্যমে দৃশ্যমান হয় আমাদের অ্যাপ্লিকেশনগুলি যদি আপনি সেগুলি ব্যবহার করেন।

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

এই মডিউলগুলি মূলত একটি Arduino- সামঞ্জস্যপূর্ণ বোর্ড দিয়ে তৈরি করা হয় (একটি আংশিক Arduino কোর যতক্ষণ পর্যন্ত এটি স্ট্রিম, ওয়্যার এবং একটি UART স্ট্রিম সাপোর্ট থাকে) যথেষ্ট হওয়া উচিত, একটি LED (লাল এক বা RGB) সমস্যার ক্ষেত্রে লাল হয়ে যাচ্ছে, একটি সেন্সর, একটি পাওয়ার সাপ্লাই (ওয়াল পাওয়ার-সাপ্লাই বা ব্যাটারি) এবং লেজার-কাট কেস।

হ্যাঁ, এটি অবশ্যই নতুন নয়, অনেক সেন্সর প্রকল্প রয়েছে কিন্তু আমরা আশা করি অন্যান্য বৈশিষ্ট্য যেমন স্বাস্থ্য সমস্যা সনাক্তকরণ, যোগাযোগ এবং স্ব-হোস্টেড সার্ভারে তথ্য সংরক্ষণ এবং ভিজ্যুয়ালাইজেশন অ্যাপ্লিকেশন আপনাকে সাহায্য করবে। অথবা যদি আপনি শুধু আপনার ঘর, সাধারণ প্রকল্প বা কম আকর্ষণীয় পর্যবেক্ষণ করতে চান:)

ধাপ 1: উপাদান সংগ্রহ

উপাদান সংগ্রহ
উপাদান সংগ্রহ

এই প্রকল্পের জন্য, আপনার AtHome মডিউল তৈরি করতে আপনার কয়েকটি উপাদান প্রয়োজন হবে:

  • 1x Arduino- সামঞ্জস্যপূর্ণ বোর্ড: এখানে আমি একটি Arduino UNO ব্যবহার করব (কিন্তু এটি অন্যান্য বোর্ড যেমন TI Launchpads এবং ESP8266 বোর্ডের সাথেও কাজ করে)
  • 1x সেন্সর: আমি একটি TSL2561 লুমিনোসিটি সেন্সর ব্যবহার করব (সমর্থিত সেন্সরের তালিকা আমাদের লাইব্রেরির ডকুমেন্টেশনে পাওয়া যায়)
  • 1x নেতৃত্বাধীন: আমি এখানে একটি গ্রোভ চেইনএবল RGB LED ব্যবহার করব (কিন্তু এটি একটি সাধারণ লাল নেতৃত্বে বা একটি NeoPixel হতে পারে)
  • Dupont তারের

সামঞ্জস্যপূর্ণ উপাদানগুলির তালিকা আমাদের প্রকল্পের ডকুমেন্টেশনে পাওয়া যায়।

পদক্ষেপ 2: আমাদের লাইব্রেরি ইনস্টল করা

আমাদের লাইব্রেরি ইনস্টল করা
আমাদের লাইব্রেরি ইনস্টল করা
আমাদের লাইব্রেরি ইনস্টল করা
আমাদের লাইব্রেরি ইনস্টল করা

আমাদের লাইব্রেরি ইনস্টল করার জন্য, আপনাকে আমাদের সংগ্রহস্থল থেকে ডাউনলোড করতে হবে (আমরা পরে এটিকে Arduino IDE তালিকা এবং PlatformIO- এ প্রকাশ করব)

gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy

তারপরে, Arduino IDE এ যান এবং "স্কেচ> লাইব্রেরি অন্তর্ভুক্ত করুন>. ZIP লাইব্রেরি যোগ করুন …" নির্বাচন করুন। তারপর "artifacts.zip" নামে জিপ ফাইল নির্বাচন করুন এবং "ওকে" ক্লিক করুন।

ধাপ 3: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা

প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রয়োজনীয় লাইব্রেরি ইনস্টল করা

কাজ করার জন্য, আমাদের লাইব্রেরিতে আপনার কম্পিউটারে কিছু অন্যান্য লাইব্রেরি ইনস্টল করা প্রয়োজন:

  • Arkhipenko TaskScheduler লাইব্রেরি
  • স্টুডিও গ্রোভ ডিজিটাল লাইট সেন্সর লাইব্রেরি দেখুন
  • SEEED স্টুডিও গ্রোভ চেইনএবল RGB LED লাইব্রেরি
  • Adafruit NeoPixel লাইব্রেরি

আপনি "স্কেচ"> "লাইব্রেরি অন্তর্ভুক্ত করুন"> "লাইব্রেরি পরিচালনা করুন …" এ গিয়ে Arduino IDE এর লাইব্রেরি ম্যানেজারের মাধ্যমে সেগুলি ইনস্টল করতে পারেন।

যে নতুন উইন্ডোটি খুলবে, সাদা সার্চ বারে আপনি যে লাইব্রেরি ইনস্টল করতে চান তার নাম লিখুন, তারপর তার ব্লকে ক্লিক করুন। একটি "ইনস্টল" বোতাম প্রদর্শিত হবে, আপনাকে কেবল এটিতে ক্লিক করতে হবে এবং IDE এটি ডাউনলোড করে আপনার জন্য এটি ইনস্টল করবে।

ধাপ 4: মডিউল একত্রিত করা

মডিউল একত্রিত করা
মডিউল একত্রিত করা

আমরা সেন্সর দিয়ে শুরু করব। একটি তারের মাধ্যমে TSL2561 এর VCC পিনটি Arduino এর 5V পিন, সেন্সরের GND পিনটি Arduino এর GND পিন এবং SDA এবং SCL পিনের সাথে Arduino এর SDA এবং SCL পিনের সাথে সংযুক্ত করুন । এখন আপনার কাজ শেষ!

এখন, Grove Chainable RGB LED এর VCC পিনটি Arduino এর 5V পিন এবং LED এর GND পিনটিকে Arduino এর দ্বিতীয় GND এর সাথে সংযুক্ত করুন। আপনি যদি শুধুমাত্র একটি 5V পিন হিসাবে Arduino হন, তাহলে আপনি একটি রুটিবোর্ড ব্যবহার করতে পারেন Arduino এর 5v কে রুটিবোর্ডের একটি + সারিতে সংযুক্ত করতে এবং এতে আপনার সমস্ত উপাদান 5V পিন সংযুক্ত করতে, অথবা স্ট্রিপবোর্ডের একটি টুকরোতে তাদের একসঙ্গে সোল্ডারিং করতে পারেন ওয়াগো সংযোগকারী বা আপনি যা পছন্দ করেন তা ব্যবহার করুন। এখন, আপনার LED এর CI পিনটি আপনার Arduino এর 7 পিন এবং আপনার LED এর DI পিনটিকে আপনার Arduino এর 8 পিনের সাথে সংযুক্ত করুন। আপনার যদি এমন একটি LED না থাকে, তাহলে চিন্তা করবেন না, আপনার Arduino বোর্ডের অন্তর্নির্মিত LED বা কোডে সামান্য পরিবর্তন সহ একটি ক্লাসিক ব্যবহার করা সম্ভব।

ধাপ 5: লুমিনোসিটি মডিউল স্কেচ লেখা

লুমিনোসিটি মডিউল স্কেচ লেখা
লুমিনোসিটি মডিউল স্কেচ লেখা

আসুন একটি নতুন স্কেচ তৈরি করি এবং আমাদের মডিউলের কোড লিখি।

আপনি যদি স্কেচের ব্যাখ্যায় আগ্রহী না হন, তাহলে আপনি শুধু আপনার Arduino IDE এ কপি এবং পেস্ট করতে পারেন:

#অন্তর্ভুক্ত

LightModule = AtHomeModule ব্যবহার করে; স্ট্রিম *স্ট্রিমস = {& সিরিয়াল, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED নেতৃত্বে (& grovePins); LightModule *module = LightModule:: getInstance (); void setup () {// আপনার সেটআপ কোড এখানে রাখুন, একবার চালানোর জন্য: Serial.begin (9600); মডিউল-> সেট স্ট্রিমস (স্ট্রিমস); GroveDigitalLightSensor *lightSensor = নতুন GroveDigitalLightSensor (); মডিউল-> সেটসেন্সর (লাইটসেন্সর); module-> setDisplay (& led); মডিউল-> সেটআপ (); } অকার্যকর লুপ () {// আপনার প্রধান কোডটি এখানে রাখুন, বারবার চালানোর জন্য: মডিউল-> রান (); }

এই কোডটি কি করছে তা যদি আপনি বুঝতে চান তবে আপনি নিম্নলিখিতগুলি পড়তে পারেন বা যদি আপনি আগ্রহী না হন তবে আপনি সরাসরি পরবর্তী ধাপে যেতে পারেন।

শুরু করার জন্য, স্কেচের শীর্ষে এই লাইনটি লিখে আমাদের স্কেচে আমাদের লাইব্রেরি অন্তর্ভুক্ত করতে হবে:

#অন্তর্ভুক্ত

এখন, আমরা যে মডিউল অবজেক্টটি ব্যবহার করব তার একটি উপনাম তৈরি করতে হবে। আপনি এটিকে একটি বাক্স হিসাবে দেখতে পারেন, যার উপাদান পরিবর্তন করতে, এটি শুরু করতে, থামাতে, ইত্যাদি ব্যবহার করা হয়। যেহেতু এটি একটি টেমপ্লেট দ্বারা নির্মিত একটি বক্স (যেমন সাধারণ টেমপ্লেট যা আমরা মানুষ হিসেবে প্রকল্পের জন্য ব্যবহার করি, এটির একটি স্টার্টার বেস আছে এবং Arduino এর কম্পাইলার আমরা তাকে প্রদত্ত প্যারামিটারের উপর ভিত্তি করে চূড়ান্ত কোড তৈরি করি) একটি সেন্সর মান এবং সংখ্যক সেন্সর মান যা আমরা মেমরিতে রাখতে চাই, এটি তার নামেই নির্দিষ্ট করা আছে এবং সাধারণত যখনই আমরা এটি ব্যবহার করতে চাই তখন এটি পুনরাবৃত্তি করা উচিত। যা কিছুটা বিরক্তিকর, সেজন্য আমরা এই বাক্সের পুরো নামের সাথে একটি নতুন নাম, একটি উপনাম যুক্ত করব।

উদাহরণস্বরূপ বলা যাক আমি এই বাক্সটির নাম "লাইট মডিউল" রাখতে চাই, কারণ এটি একটি উজ্জ্বলতা পর্যবেক্ষণ মডিউল বাস্তবায়নের জন্য ব্যবহৃত হবে এবং আমি একবারে মাত্র 1 মান রাখতে চাই। আমাদের TSL2561 সেন্সর দ্বারা একটি অবিচ্ছেদ্য প্রকার হিসেবে লাক্সে লুমিনোসিটিকে প্রতিনিধিত্ব করা হয়, যা কম্পিউটার দ্বারা একটি uint16_t হিসাবে উপস্থাপিত হয়। আমাদের উপনাম এই মত হবে:

LightModule = AtHomeModule ব্যবহার করে;

"ব্যবহার" শব্দটির অর্থ হল আমরা একটি উপনাম তৈরি করছি এবং "=" অক্ষরের পরের ক্রম অনুসারে আমরা যে নামটি দিয়েছি।

"AtHomeModule" হল এই বাক্সের আসল নাম যা আমরা একটি নতুন নাম দিচ্ছি, এবং মান প্রতিনিধিত্ব এবং মেমরিতে রাখা মানগুলির সংজ্ঞা নির্ধারণকারী প্যারামিটারগুলি "" এর মধ্যে তালিকাভুক্ত করা হয়েছে।

এখন, যখন আমরা পরে "AtHomeModule" নামটি ব্যবহার করব, Arduino জানবে এটি সম্পূর্ণ নাম "AtHomeModule" বোঝায়।

যদি আপনি চান যে আপনার বাক্স মেমরিতে 1 এর পরিবর্তে 5 টি মান রাখতে সক্ষম হয়, তাহলে আপনাকে "1" কে "5" দ্বারা প্রতিস্থাপন করতে হবে এবং Arduino আপনার জন্য একটি ভিন্ন ধরনের বক্স তৈরি করবে যা আপনি করতে চান। তবে মনে রাখবেন, যদি মডিউলটি সেন্সরের 5 টি মান কার্যকরভাবে পরিমাপ করার সময় দেওয়ার আগে তার মানগুলি পাঠানোর জন্য প্রোগ্রাম করা হয়, তবে আপনি কখনই দেখতে পাবেন না যে তাদের মধ্যে 5 টি পাঠানো হচ্ছে কারণ এটি শেষ আপলোডের পর থেকে শুধুমাত্র নতুন মানগুলি পাঠায়।

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

স্ট্রিম *স্ট্রিমস = {& সিরিয়াল, nullptr};

"*" অক্ষর মানে টাইপ হল একটি পয়েন্টার (উপাদানটির অবস্থান, উপাদান নিজেই নয়) এবং "" বন্ধনী মানে Arduino এ এটি একটি অ্যারে, তাই আমরা একাধিক মান রাখতে পারি।

পরবর্তী, আমাদের আমাদের LED তৈরি করতে হবে। এটি করার জন্য, আমাদের নিম্নলিখিত দুটি লাইন লিখতে হবে;

GroveChainableLED:: Pins grovePins = {7, 8};

GroveChainableLED নেতৃত্বে (& grovePins);

আপনার যদি গ্রোভ আরজিবি এলইডি না থাকে কিন্তু তবুও একটি ভিজ্যুয়াল ফিডব্যাক চান, তাহলে আপনি স্কেচে একটি সহজ পরিবর্তন দিয়ে এটি করতে পারেন। এই লাইন দ্বারা পূর্ববর্তী দুটি লাইন প্রতিস্থাপন করুন:

একরঙা LED নেতৃত্বে (LED_BUILTIN);

এই কনফিগারেশনে সবুজ অন্তর্নির্মিত LED ততক্ষণ চালু থাকবে যতক্ষণ না পর্যবেক্ষণকৃত মান স্বাস্থ্যের জন্য ঠিক থাকে এবং বন্ধনের বাইরে থাকলে বন্ধ হয়ে যায়। যদি আপনি এটি বন্ধ করার সময় এটি চালু করতে পছন্দ করেন (কারণ আপনি উদাহরণস্বরূপ পিন 13 এ সবুজের পরিবর্তে একটি লাল LED ব্যবহার করছেন) আপনি পরিবর্তে এই লাইনটি ব্যবহার করতে পারেন:

একরঙা LED নেতৃত্বাধীন (LED_BUILTIN, সত্য);

পরবর্তী ধাপ হল আমাদের মডিউল নিজেই তৈরি করা। "GetInstance" পদ্ধতিতে কল করে আমরা প্রথমবার মেমরিতে এর অবস্থান পেতে পারি, এইভাবে:

LightModule *module = LightModule:: getInstance ();

তারপরে, আমাদের Arduino এর "সেটআপ ()" ফাংশনে প্যারামিটার সেট করতে হবে, আরডুইনো স্কেচগুলিতে যথারীতি "সিরিয়াল" পোর্ট শুরু করে শুরু করতে হবে:

Serial.begin (9600);

আমরা এই লাইনটি লিখে আলো সেন্সর তৈরি করি:

GroveDigitalLightSensor *lightSensor = নতুন GroveDigitalLightSensor ();

তারপরে, আমরা আমাদের মডিউলকে তাদের মাধ্যমে যোগাযোগ করার জন্য Arduino স্ট্রীমে আমাদের পয়েন্টারগুলির অ্যারে ব্যবহার করতে বলি:

মডিউল-> সেট স্ট্রিমস (স্ট্রিমস);

আমরা আমাদের মডিউলকে আলোর তীব্রতা পর্যবেক্ষণ করতে আমাদের হালকা সেন্সর ব্যবহার করতে বলি যেখানে মডিউলটি রয়েছে:

মডিউল-> সেটসেন্সর (লাইটসেন্সর);

আমরা আমাদের মডিউলকে আমাদের LED ব্যবহার করতে বলি আমাদের একটি চাক্ষুষ মতামত দিতে:

module-> setDisplay (& led);

অবশেষে, আমরা আমাদের মডিউলকে বলি যে এটি তার নিজস্ব "সেটআপ" ফাংশন কল করে যে কোন অভ্যন্তরীণ কনফিগারেশন করতে প্রস্তুত:

মডিউল-> সেটআপ ();

আমাদের শেষ ধাপটি এখন আমাদের মডিউলের "রান ()" ফাংশনকে কল করা, যা "লুপ" ফাংশনের ভিতরে এই লাইনটি লিখে Arduino এর "লুপ" ফাংশনের প্রতিটি পুনরাবৃত্তিতে বলা হবে:

মডিউল-> রান ();

এখন, আমাদের স্কেচ শেষ পর্যন্ত আরডুইনোতে আপলোড করতে এবং আমাদের মডিউল পরীক্ষা করার জন্য প্রস্তুত!

ধাপ 6: আমাদের AtHome মডিউল পরীক্ষা করা

আমাদের AtHome মডিউল পরীক্ষা করা হচ্ছে
আমাদের AtHome মডিউল পরীক্ষা করা হচ্ছে
আমাদের AtHome মডিউল পরীক্ষা করা হচ্ছে
আমাদের AtHome মডিউল পরীক্ষা করা হচ্ছে

Arduino এ স্কেচ আপলোড করতে, "Tools"> "Port"> "[COMx বা/dev/x] (Arduino/Genuino UNO)" এ গিয়ে আপনার Arduino UNO বোর্ড নির্বাচন করুন।

শেষ কথা, আপনার বোর্ডে স্কেচ আপলোড করার জন্য শুধু "আপলোড" বাটনে (ডানদিকে নির্দেশ করা তীর সহ বৃত্ত বোতাম, টুল বারের দ্বিতীয় আইকন) ক্লিক করুন।

এটা শেষ! এখন আপনার মডিউলটি কাজ করা উচিত এবং আপনার কম্পিউটারে মানগুলি পাঠানো যা Arduino এর সিরিয়াল মনিটরে দৃশ্যমান। আপনি "সরঞ্জাম" মেনুতে Arduino এর "সিরিয়াল মনিটর" খোলার মাধ্যমে এটি পরীক্ষা করতে পারেন এবং আপনার এই পদক্ষেপের দ্বিতীয় শিরোনাম ছবির মতো একটি আউটপুট থাকা উচিত:)

ধাপ 7: মডিউলের জন্য একটি কেস তৈরি করা

মডিউলের জন্য একটি কেস তৈরি করা
মডিউলের জন্য একটি কেস তৈরি করা

আপনি আপনার মডিউলের জন্য একটি সাধারণ বক্স কেস তৈরি করতে পারেন লেজার দিয়ে এটি 3 মিমি পাতলা পাতলা কাঠের তক্তায় কেটে।

আমাদের বক্স কেস তৈরির জন্য, আমরা পরবর্তীতে কাস্টমাইজড কাঙ্ক্ষিত মাত্রায় টেমপ্লেট প্রস্তুত করতে ম্যাকারকেস ব্যবহার করি। আপনি এই ধাপে সংযুক্ত লুমিনোসিটি মডিউলের এসভিজি ফাইলটি পাবেন।

তারপরে কেবল মুখগুলিকে একসাথে আঠালো করুন যাতে আপনি এটি পরে খুলতে পারেন, আপনার সার্কিটটি ভিতরে রাখুন এবং কেসটির গর্তে এলইডি লাগান (আমরা গর্তটি পূরণ করতে স্বচ্ছ টেপ ব্যবহার করি এবং সামনে এলইডি লাগানোর পাশাপাশি আলো ছড়িয়ে দেই এর)।

এখন শুধু আপনার Arduino কে পাওয়ার করার জন্য একটি ব্যাটারি যোগ করুন, কেসটি বন্ধ করুন এবং আপনার মডিউল প্রস্তুত এবং ভালো দেখা উচিত:)

প্রস্তাবিত: