সুচিপত্র:

স্মার্ট হোম থার্মোস্ট্যাট: 4 টি ধাপ
স্মার্ট হোম থার্মোস্ট্যাট: 4 টি ধাপ

ভিডিও: স্মার্ট হোম থার্মোস্ট্যাট: 4 টি ধাপ

ভিডিও: স্মার্ট হোম থার্মোস্ট্যাট: 4 টি ধাপ
ভিডিও: Nov 5th, 2023 Podcast: Winter is Coming. Apps Not Paying Drivers! 2024, নভেম্বর
Anonim
স্মার্ট হোম থার্মোস্ট্যাট
স্মার্ট হোম থার্মোস্ট্যাট

আমাদের স্মার্ট হোম থার্মোস্ট্যাট একটি প্রোগ্রাম যা স্বয়ংক্রিয়ভাবে একজন ব্যক্তির পছন্দের উপর ভিত্তি করে ইউটিলিটি বিলে পরিবারের অর্থ সঞ্চয় করতে পারে।

ধাপ 1: ওভারভিউ

স্মার্ট হোম থার্মোস্ট্যাট বাড়ির তাপমাত্রা পেতে একটি তাপমাত্রা সেন্সর ব্যবহার করে। এই তাপমাত্রা পড়ার কর্মসূচির মধ্যে রাখা হয় যেখানে এটি সিদ্ধান্ত নেবে যে শীতাতপ নিয়ন্ত্রণ ব্যবস্থা পছন্দসই বাড়ির মালিকের তাপমাত্রার উপর ভিত্তি করে ঘর গরম বা শীতল করতে হবে।

থার্মোস্ট্যাটের জন্য দুটি মোড রয়েছে: ম্যানুয়াল এবং স্বয়ংক্রিয়। ম্যানুয়াল মোড যা ব্যবহারকারীর পছন্দসই তাপমাত্রার সাথে বাড়ির তাপমাত্রা সামঞ্জস্য করবে। এবং থার্মোস্ট্যাটের স্বয়ংক্রিয় মোড স্বয়ংক্রিয়ভাবে ব্যবহারকারীর প্রিসেট তাপমাত্রায় বাড়ির তাপমাত্রা পরিবর্তন করবে। স্বয়ংক্রিয় মোডের জন্য দুটি তাপমাত্রা সেটিংস থাকবে: দূরে তাপমাত্রা এবং বর্তমান তাপমাত্রা। ব্যবহারকারী বাড়িতে না থাকলে তাপস্থাপককে প্রিসেট এনার্জি-সেভিং টেম্পারেচারে পরিবর্তন করে শক্তি সঞ্চয় করতে দূরে তাপমাত্রা ব্যবহার করা হয়। বর্তমান তাপমাত্রা ব্যবহার করা হচ্ছে যখন ব্যবহারকারী বাড়িতে থাকে এবং একটি আরামদায়ক তাপমাত্রা চায়। যখন থার্মোস্ট্যাটের স্বয়ংক্রিয় মোডে থাকে, তখন মোশন সেন্সর সক্রিয়ভাবে চলাচল করে যাতে কেউ বাড়িতে থাকে কি না তা নির্ধারণ করে। তাদের পড়ার উপর ভিত্তি করে, বাড়ির তাপমাত্রা হয় দূরে তাপমাত্রা বা বর্তমান তাপমাত্রায় সেট করা হবে।

ধাপ 2: যন্ত্রাংশ এবং উপকরণ

(15) জাম্পার তারের

(4) 220 ওহম প্রতিরোধক

(1) 10K ওহম প্রতিরোধক

(1) টেম্প সেন্সর

(1) ফটো রেসিস্টার

(1) DAGU মিনি ডিসি গিয়ারবক্স

(1) ডায়োড

(1) ট্রানজিস্টর

(1) ফটোরিসিস্টর

(1) ব্রেডবোর্ড

(1) আরডুইনো এমকেআর

ধাপ 3: সার্কিট

সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট
সার্কিট

চিত্র 1 = বড় বাম ছবি

চিত্র 2 = উপরের ডানদিকে

চিত্র 3 = মধ্য ডান

চিত্র 4 = নীচের ডান

চিত্র 1

উপরের ডায়াগ্রামটি ব্যবহার করে, আমরা আমাদের তিনটি এলইডির প্রতিটিতে তারযুক্ত করেছি। আমরা একটি বড় রুটি বোর্ডের সাথে কাজ করার পর থেকে আমরা প্রতিটি এলইডি ফাঁক করেছিলাম। ছোট রুটি বোর্ডের জন্য, LEDs একসঙ্গে কাছাকাছি রাখা প্রয়োজন হতে পারে। এছাড়াও, রুটিবোর্ডকে বিদ্যুৎ দেওয়া অপ্রয়োজনীয় কারণ এলইডি এত কম শক্তি টানছে। আমরা LEDs এর জন্য রুটিবোর্ডে 5V সংযোগ ব্যবহার করিনি। এলইডি থেকে আমাদের আরডুইনোতে প্রতিটি সংযোগ তৈরি করা হয়েছিল যেমন সবুজ তারের উপরে। আমাদের লাল, নীল এবং সবুজ LED গুলি যথাক্রমে ডিজিটাল পিন 8, 9 এবং 10 এর সাথে সংযুক্ত, আমাদের ছবিতে একটি লাল, নীল এবং সবুজ তারের সাথে মনোনীত।

চিত্র ২

উপরের ডায়াগ্রামটি ফোটোরিসিস্টরকে তারের জন্য ব্যবহার করা হয়েছিল। আমরা আমাদের নিজস্ব কিছু সংশোধন করেছি; তবে ধারণাগুলি এখনও একই। ফোটোরিসিস্টর অবশ্যই একটি এনালগ পিনের সাথে সংযুক্ত থাকতে হবে যা আমাদের পিন A1 তে আছে। ফটোরিসিস্টারের নিকটতম রোধের জন্য 10K ওহম রোধক ব্যবহার করতে ভুলবেন না।

চিত্র 3

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

চিত্র 4

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

ধাপ 4: Arduino কোড

এখানে, কোডের সবচেয়ে গুরুত্বপূর্ণ অংশগুলি ব্যাখ্যা করা হয়েছে। কোডটি এখানে যা দেওয়া হয়েছে তা দিয়ে কাজ করবে না। সম্পূর্ণ ওয়ার্কিং কোড পেতে, পৃষ্ঠার নীচে একটি লিঙ্ক রয়েছে।

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

তাপমাত্রা সেন্সর এবং LED সেট আপ:

tempPin = 'A0';%বেনামী ফাংশন সংজ্ঞায়িত করে যা ভোল্টেজকে তাপমাত্রায় রূপান্তরিত করে নমুনা সময়কাল = 5; %সেকেন্ড। আমরা কতক্ষণের জন্য নমুনা নিতে চাই তাপমাত্রা রিডিং এর মধ্যে কত সেকেন্ড %স্যাম্পলিং টাইমের ভেক্টর সেটআপ স্যাম্পলিং টাইমস = 0: স্যাম্পলিং ইন্টারভাল: স্যাম্পলিং মেয়াদ; %সময়কাল এবং ব্যবধানের ভিত্তিতে নমুনার সংখ্যা গণনা করুন numSamples = দৈর্ঘ্য (নমুনা সময়); %preallocate temp ভেরিয়েবল এবং রিডিং সংখ্যার জন্য পরিবর্তনশীল এটি tempC = zeros (numSamples, 1) সংরক্ষণ করবে; tempF = tempC; %আমরা একটি লুপের জন্য এই সময় ব্যবহার করব একটি পূর্ব নির্ধারিত সংখ্যা %তাপমাত্রা রিডিং নিতে

লুপের জন্য:

সূচকের জন্য = 1: numSamples %tempPin এ ভোল্টেজ পড়ুন এবং ভেরিয়েবল ভোল্ট ভোল্ট = readVoltage (a, tempPin); tempC (সূচক) = -1*tempCfromVolts (ভোল্ট+0.3); tempF (সূচক) = tempC (সূচক)*(9/5) +32; %ডিসপ্লে ফরম্যাট করা আউটপুট বর্তমান তাপমাত্রা পড়ার fprintf (' %d সেকেন্ডে তাপমাত্রা %5.2f C বা %5.2f F. / n', … নমুনা সময় %নোট করুন এই ডিসপ্লে আউটপুটটি কোডটি এক্সিকিউট করার পরে একবারে দৃশ্যমান হয়ে যাবে যদি না আপনি একটি সাধারণ স্ক্রিপ্ট এমফাইলে কোডটি কপি/পেস্ট করেন। বিরতি (স্যাম্পলিং ইন্টারভাল) পরবর্তী নমুনা শেষ না হওয়া পর্যন্ত %বিলম্ব

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

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

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

মেনু সেটআপ:

পছন্দ = {'স্বয়ংক্রিয়', 'ম্যানুয়াল'}; imode = মেনু ('মোড', পছন্দ) যদি imode> 0 h = msgbox (['আপনি বেছে নিয়েছেন' পছন্দগুলি {imode}]); অন্যথায় h = warndlg ('আপনি পছন্দ না করে মেনু বন্ধ করেছেন') শেষ অপেক্ষা (h);

ম্যানুয়াল মোডে ব্যবহারকারীকে থার্মোস্ট্যাটের জন্য একটি তাপমাত্রা ইনপুট করতে হবে, তারপর তাপমাত্রা সেন্সর থেকে রিডিংয়ের ভিত্তিতে, এটি হয় ঘর গরম করার ঘর ঠান্ডা করা শুরু করবে। যদি তাপমাত্রা সেন্সরের রিডিং নির্ধারিত তাপমাত্রার চেয়ে বেশি হয়, তাহলে এটি ঘর ঠান্ডা করতে শুরু করবে। যদি তাপমাত্রা সেন্সরের রিডিং নির্ধারিত তাপমাত্রার চেয়ে কম হয়, তাহলে এটি ঘর গরম করবে।

ম্যানুয়াল মোড শুরু হবে:

যদি imode == 2 dlg_prompts = {'আপনি কোন তাপমাত্রা পছন্দ করবেন?'}; dlg_title = 'তাপমাত্রা'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); যদি isempty (dlg_ans) h = warndlg ('আপনি inputdlg কমান্ড বাতিল করেছেন'); অন্যথায় temp_manual = str2double (dlg_ans {1}) %[নিচে তাপমাত্রা নিয়ন্ত্রণের সেটআপ স্লাইড যোগ করুন] শেষ

ম্যানুয়াল মোডের জন্য if স্টেটমেন্টের ভিতরে, ব্যবহারকারীর পছন্দসই বাড়ির তাপমাত্রা বাছার জন্য আপনাকে মেনু ইন্টারফেস লিখতে হবে এবং তারপরে একটি সময় বিবৃতি প্রয়োগ করতে হবে যা বাড়ির তাপমাত্রা নিয়ন্ত্রণ করবে।

তাপমাত্রা নিয়ন্ত্রণের সেটআপ:

যখন temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); শেষ যখন temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); শেষ

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

স্বয়ংক্রিয় মোড সেটআপ করুন:

elseif imode == 1 dlg_prompts = {'সাধারণ', 'দূরে'}; dlg_title = 'তাপমাত্রা সেটিংস'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); যদি isempty (dlg_ans) h = warndlg ('আপনি inputdlg কমান্ড বাতিল করেছেন'); অন্যথায় temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) শেষ অপেক্ষা (h); %[নিচে মোশন ডিটেক্টর ধাপ যোগ করুন]

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

Run_Motion_Detector (a, inf) যখন lightStr == 0 temp = temp_away যখন temp tempF writeDigitalPin (a, 'D6', 1) ফ্যান রাইট ডিজিটালপিন (a, 'D9', 1) এর জন্য মোটরটিতে যে কোন পিন লাল আলো থাকে; শেষ শেষ যখন lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %পরিবর্তন করুন যে কোন পিন স্বাভাবিক আলোতে থাকে যখন temp tempF writeDigitalPin (a, 'D6', 1) পিন লাল আলোতেও থাকে ফ্যান লেখার জন্য ডিজিটালপিন (a, 'D9', 1); শেষ শেষ

সম্পূর্ণ কোড পাওয়া যাবে এখানে।

প্রস্তাবিত: