جدول المحتويات:
فيديو: ترموستات المنزل الذكي: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
Smart Home Thermostat هو برنامج يمكنه تلقائيًا توفير أموال الأسرة في فواتير الخدمات بناءً على تفضيلات الشخص.
الخطوة 1: نظرة عامة
يستخدم Smart Home Thermostat مستشعر درجة حرارة للحصول على درجة حرارة المنزل. يتم وضع قراءة درجة الحرارة هذه في البرنامج حيث سيقرر ما إذا كان نظام تكييف الهواء بحاجة إلى تدفئة أو تبريد المنزل بناءً على درجة حرارة صاحب المنزل المطلوبة.
يوجد وضعان للثرموستات: يدوي وتلقائي. الوضع اليدوي الذي يضبط درجة حرارة المنزل لأي درجة حرارة مرغوبة يحددها المستخدم. وسيؤدي الوضع التلقائي للثرموستات تلقائيًا إلى تغيير درجة حرارة المنزل إلى درجات حرارة محددة مسبقًا من قبل المستخدم. سيكون هناك إعدادان لدرجة الحرارة للوضع التلقائي: درجة الحرارة بعيدًا ودرجة الحرارة الحالية. تُستخدم درجة الحرارة بعيدًا لتوفير الطاقة عن طريق تغيير منظم الحرارة إلى درجة حرارة مُحددة مسبقًا موفرة للطاقة عندما لا يكون المستخدم في المنزل. سيتم استخدام درجة الحرارة الحالية عندما يكون المستخدم في المنزل ويريد درجة حرارة مريحة. عندما تكون في الوضع التلقائي للثرموستات ، تبحث مستشعرات الحركة بنشاط عن الحركة لتحديد ما إذا كان الشخص في المنزل أم لا. بناءً على قراءتهم ، سيتم ضبط درجة حرارة المنزل إما على درجة الحرارة البعيدة أو درجة الحرارة الحالية.
الخطوة 2: الأجزاء والمواد
(15) أسلاك توصيل
(4) 220 أوم مقاومات
(1) 10 كيلو أوم المقاوم
(1) مستشعر درجة الحرارة
(1) مقاوم للصور
(1) علبة التروس DAGU Mini DC
(1) ديود
(1) الترانزستور
(1) مقاوم ضوئي
(1) اللوح
(1) اردوينو MKR
الخطوة 3: الدائرة
الشكل 1 = الصورة اليسرى الكبيرة
الشكل 2 = أعلى اليمين
الشكل 3 = وسط اليمين
الشكل 4 = أسفل اليمين
شكل 1
باستخدام الرسم البياني أعلاه ، قمنا بتوصيل كل من مصابيح LED الثلاثة الخاصة بنا. قمنا بتباعد كل مصباح LED لأننا كنا نعمل مع لوح خبز كبير. بالنسبة لألواح الخبز الأصغر ، قد يكون من الضروري تقريب مصابيح LED من بعضها. أيضًا ، ليس من الضروري تشغيل اللوح لأن مصابيح LED تستهلك القليل جدًا من الطاقة. لم نستخدم اتصال 5V على اللوح لمصابيح LED. تم إجراء كل اتصال من مصابيح LED إلى Arduino مثل السلك الأخضر أعلاه. يتم توصيل مصابيح LED باللون الأحمر والأزرق والأخضر الخاصة بنا بـ Digital Pin 8 و 9 و 10 على التوالي ، والمخصصة بسلك أحمر وأزرق وأخضر في صورتنا.
الشكل 2
تم استخدام الرسم البياني أعلاه لتوصيل المقاوم الضوئي. لقد قمنا ببعض التصحيحات الخاصة بنا ؛ لكن المفاهيم لا تزال هي نفسها. يجب توصيل المقاوم الضوئي بالدبوس التناظري الموجود في الدبوس A1. تأكد من استخدام مقاوم 10 كيلو أوم للمقاوم الأقرب إلى المقاوم الضوئي.
الشكل 3
هذا هو الرسم التخطيطي المستخدم في توصيل مستشعر درجة الحرارة. تأكد من عدم الخلط بين الترانزستور المستخدم هنا ومستشعر درجة الحرارة. تبدو متطابقة تقريبًا. من المحتمل أن يحتوي مستشعر درجة الحرارة على TMP أو بعض النصوص الأخرى المكتوبة على الجانب المسطح من المستشعر. الأسلاك هنا بسيطة للغاية ، يتم توصيل مستشعر درجة الحرارة الخاص بنا بمسمار تناظري A0 بسلك أبيض.
الشكل 4
تم استخدام الصورة أعلاه لتوصيل علبة التروس DAGU Mini DC. السلك الأخضر المتصل بعلبة التروس هو في الواقع السلك الأحمر المتصل به في صورتنا. يتم توصيل علبة التروس بالدبوس الرقمي 11 بسلك برتقالي في طرازنا. تأكد من عدم الخلط بين الترانزستور المستخدم هنا ومستشعر درجة الحرارة. تبدو متطابقة تقريبًا. من المحتمل أن يحتوي مستشعر درجة الحرارة على TMP أو بعض النصوص الأخرى المكتوبة على الجانب المسطح من المستشعر. يجب استخدام الترانزستور هنا وليس مستشعر درجة الحرارة.
الخطوة 4: كود اردوينو
هنا ، يتم شرح أهم أجزاء الكود. لن يعمل الرمز مع ما هو وارد هنا فقط. للحصول على كود العمل الكامل ، يوجد رابط في أسفل الصفحة.
عند إنشاء رمز منظم الحرارة القابل للبرمجة ، فإن أول ما تفعله هو إعداد المستشعرات وإنشاء حلقة for التي ستحصل باستمرار على قراءات درجات الحرارة من مستشعر درجة الحرارة.
إعداد مستشعر درجة الحرارة و LED:
tempPin = 'A0' ؛٪ تحديد وظيفة مجهولة تقوم بتحويل الجهد إلى درجة حرارة درجة الحرارة CfromVolts = @ (فولت) (فولت -0.5) * 100 ؛ مدة أخذ العينات = 5 ؛ ٪ ثانية. كم من الوقت نريد أخذ عينات من أجل samplingInterval = 1 ؛ ٪ كم عدد الثواني بين قراءات درجة الحرارة٪ إعداد متجه لأوقات أخذ العينات samplingTimes = 0: samplingInterval: samplingDuration ؛ ٪ حساب عدد العينات على أساس المدة والفاصل numSamples = الطول (samplingTimes) ؛ ٪ تخصيص متغيرات درجة الحرارة مسبقًا والمتغير لعدد القراءات التي سيتم تخزينها tempC = الأصفار (numSamples ، 1) ؛ tempF = tempC ؛ ٪ سنستخدم حلقة for هذه المرة لأخذ عدد محدد مسبقًا من قراءات درجة الحرارة٪
حلقة for:
للمؤشر = 1: numSamples ٪ اقرأ الجهد عند tempPin وقم بتخزينه في فولت متغير فولت = readVoltage (a ، tempPin) ؛ tempC (index) = -1 * tempCfromVolts (فولت + 0.3) ؛ tempF (index) = tempC (index) * (9/5) +32 ؛ ٪ عرض إخراج منسق يتصل بقراءة درجة الحرارة الحالية fprintf ( درجة الحرارة عند٪ d ثانية هي٪ 5.2f C أو٪ 5.2f F. / n '، … samplingTimes (index) ، tempC (index) ، tempF (index)) ؛ ٪ لاحظ أن إخراج العرض هذا سيصبح مرئيًا جميعًا مرة واحدة فقط بعد اكتمال تنفيذ التعليمات البرمجية بنسبة٪ ما لم تقم بنسخ / لصق الكود إلى ملف نصي عادي. الإيقاف المؤقت (samplingInterval)٪ تأخير حتى نهاية العينة التالية
بعد ذلك ، نقوم بإنشاء قائمة المستخدم الخاصة بنا ليقرر المستخدم ما إذا كان سيضع منظم الحرارة في الوضع اليدوي أو التلقائي. نقوم أيضًا بإنشاء رمز خطأ إذا لم يحدد المستخدم أيًا من الخيارين.
تتطلب قائمة الوضع اليدوي من المستخدم تعيين رقم لدرجة حرارة منظم الحرارة ، ثم يقوم إما بتسخين المنزل أو تبريد المنزل أو الخمول بناءً على القراءات. لإعداد هذا الجزء من الكود ، استخدمت قراءات درجة الحرارة من مستشعر درجة الحرارة وقم بإنشاء كود يبرد المنزل عندما تكون قراءة درجة الحرارة أعلى من درجة الحرارة المحددة ، وتسخين المنزل عندما تكون قراءة درجة الحرارة أقل من درجة الحرارة المحددة.
بمجرد حصولك على قراءات درجة الحرارة ، يمكنك إنشاء الكود الذي سيخبر منظم الحرارة بتبريد المنزل عندما تكون قراءة درجة الحرارة أعلى من درجة الحرارة المحددة ، وتسخين المنزل عندما تكون قراءة درجة الحرارة أقل من درجة الحرارة المحددة. بالنسبة للنموذج الأولي ، يضيء الضوء الأزرق عندما يبرد منظم الحرارة ويضيء الضوء الأحمر عندما يسخن منظم الحرارة.
إعداد القائمة:
الاختيارات = {'Automatic'، 'Manual'}؛ imode = القائمة ('الوضع'، الاختيارات) إذا كان imode> 0 h = msgbox (['اخترت' اختيارات {imode}])؛ else h = warndlg ('لقد أغلقت القائمة دون اختيار') end waitfor (h)؛
يتطلب الوضع اليدوي من المستخدم إدخال درجة حرارة للثرموستات ، ثم بناءً على القراءات من مستشعر درجة الحرارة ، سيبدأ إما في تبريد منزل تدفئة المنزل. إذا كانت قراءة مستشعر درجة الحرارة أعلى من درجة الحرارة المحددة ، فسيبدأ في تبريد المنزل. إذا كانت قراءة مستشعر درجة الحرارة أقل من درجة الحرارة المحددة ، فسوف تقوم بتسخين المنزل.
سيبدأ الوضع اليدوي:
if imode == 2 dlg_prompts = {'ما درجة الحرارة التي تفضلها؟'}؛ dlg_title = "درجة الحرارة" ؛ dlg_defaults = {'68'} ، OPts. Resize = 'on' ؛ dlg_ans = inputdlg (dlg_prompts ، dlg_title ، 1 ، dlg_defaults ، خيارات) ؛ if isempty (dlg_ans) h = warndlg ('لقد ألغيت أمر inputdlg') ؛ else temp_manual = str2double (dlg_ans {1})٪ [أضف شريحة إعداد تنظيم درجة الحرارة أدناه] النهاية
داخل عبارة if للوضع اليدوي ، تحتاج إلى كتابة واجهة القائمة للمستخدم لاختيار درجة حرارة المنزل المطلوبة ، ثم تنفيذ بيان while الذي سينظم درجة حرارة المنزل.
إعداد تنظيم درجة الحرارة:
بينما 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 = {'عادي'، 'Away'}؛ dlg_title = "إعدادات درجة الحرارة" ؛ dlg_defaults = {'68'، '64'} ، OPts. Resize = 'on' ؛ dlg_ans = inputdlg (dlg_prompts ، dlg_title ، 1 ، dlg_defaults ، خيارات) ؛ if isempty (dlg_ans) h = warndlg ('لقد ألغيت أمر inputdlg') ؛ else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h)؛ ٪ [إضافة خطوة كاشف الحركة أدناه]
نحتاج أيضًا إلى إعداد مستشعر الحركة لإعدادات الوضع التلقائي. عندما يلتقط كاشف الحركة الحركة ، فإنه سيحافظ على درجة الحرارة على إعداد درجة الحرارة الحالية ، وإلا فسيتم ضبطه على إعداد درجة الحرارة البعيدة.
Run_Motion_Detector (a ، inf) بينما lightStr == 0 temp = temp_away بينما temp tempF writeDigitalPin (a، 'D6'، 1) أيا كان الضوء الأحمر الدبوس في المحرك أيضًا لكتابة المروحة DigitalPin (a ، 'D9' ، 1) ؛ end end بينما lightStr == 1 temp = temp_normal writeDigitalPin (a، 'D6'، 1)٪ تغيير إلى أي دبوس يوجد به الضوء العادي أثناء temp tempF writeDigitalPin (a، 'D6'، 1) أيًا كان الضوء الأحمر الدبوس موجودًا أيضًا محرك لكتابة المروحة DigitalPin (a، 'D9'، 1) ؛ نهاية النهاية
يمكن العثور على الكود الكامل هنا.
موصى به:
المنزل الذكي من Raspberry Pi: 5 خطوات (بالصور)
Smart Home من Raspberry Pi: هناك بالفعل العديد من المنتجات التي تجعل شقتك أكثر ذكاءً ، ولكن معظمها حلول مملوكة. ولكن لماذا تحتاج إلى اتصال بالإنترنت لتبديل الضوء بهاتفك الذكي؟ كان هذا أحد الأسباب التي دفعتني إلى بناء Smar الخاص بي
فتحت باب المرآب الذكي DIY + تكامل مساعد المنزل: 5 خطوات
فتحت باب المرآب الذكي DIY + تكامل مساعد المنزل: أدر باب المرآب العادي بذكاء باستخدام مشروع DIY هذا. سأوضح لك كيفية بنائه والتحكم فيه باستخدام Home Assistant (عبر MQTT) ولديه القدرة على فتح باب الجراج الخاص بك وإغلاقه عن بُعد. سأستخدم لوحة ESP8266 تسمى Wemos
نظام المنزل الذكي Alexa باستخدام وحدة الترحيل NodeMCU: 10 خطوات
نظام المنزل الذكي Alexa باستخدام وحدة NodeMCU Relay: في مشروع IoT هذا ، صنعت نظام Alexa Smart Home Automation باستخدام NodeMCU ESP8266 & amp؛ وحدة الترحيل. يمكنك التحكم بسهولة في الإضاءة والمروحة والأجهزة المنزلية الأخرى باستخدام الأمر الصوتي. لتوصيل مكبر الصوت الذكي Echo Dot بـ
المنزل الذكي البعيد: 5 خطوات
المنزل الذكي البعيد: المواد: dunne gelamineerde hout platen. 1 x grondplaat مع قطر een 1 سم kleine nagels2 x b breadbords plakbandveel kabels met قطر 0.3 cmveel jumper kabels gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
كيفية جعل المنزل الذكي باستخدام وحدة التحكم في ترحيل Arduino - أفكار أتمتة المنزل: 15 خطوة (بالصور)
كيفية جعل المنزل الذكي باستخدام وحدة التحكم في ترحيل Arduino | أفكار أتمتة المنزل: في مشروع أتمتة المنزل هذا ، سنصمم وحدة ترحيل منزلية ذكية يمكنها التحكم في 5 أجهزة منزلية. يمكن التحكم في وحدة الترحيل هذه من الهاتف المحمول أو الهاتف الذكي أو جهاز التحكم عن بعد بالأشعة تحت الحمراء أو جهاز التحكم عن بعد في التلفزيون أو المفتاح اليدوي. يمكن لهذا التتابع الذكي أيضًا أن يستشعر r