Агуулгын хүснэгт:

Ухаалаг гэрийн термостат: 4 алхам
Ухаалаг гэрийн термостат: 4 алхам

Видео: Ухаалаг гэрийн термостат: 4 алхам

Видео: Ухаалаг гэрийн термостат: 4 алхам
Видео: Камера ANBIUX ДВУГЛАЗКА УДИВИЛА после ОБНОВЛЕНИЯ!!! 2024, Арваннэгдүгээр
Anonim
Ухаалаг гэрийн термостат
Ухаалаг гэрийн термостат

Манай Ухаалаг Гэрийн Термостат нь тухайн хүний сонголтоос шалтгаалан ахуйн зардлыг автоматаар хэмнэх боломжтой програм юм.

Алхам 1: Тойм

Ухаалаг гэрийн термостат нь гэрийн температурыг хэмжихийн тулд температур мэдрэгч ашигладаг. Энэхүү температурын уншилтыг агааржуулалтын систем нь байшингийн эзний хүссэн температурт үндэслэн байшинг халаах эсвэл хөргөх шаардлагатай эсэхийг шийдэх хөтөлбөрт оруулсан болно.

Термостатын хоёр горим байдаг: гарын авлага ба автомат. Гэрийн температурыг хэрэглэгчийн хүссэн температурт тохируулах гарын авлагын горим. Термостатын автомат горим нь гэрийн температурыг хэрэглэгчийн урьдчилан тогтоосон температурт автоматаар өөрчлөх болно. Автомат горимд температурын хоёр тохиргоо байх болно: холын болон одоогийн температур. Холдох температурыг хэрэглэгч гэртээ байхгүй үед термостатыг урьдчилан тохируулсан эрчим хүч хэмнэх температур болгон өөрчлөх замаар эрчим хүч хэмнэхэд ашигладаг. Хэрэглэгч гэртээ байгаа бөгөөд тав тухтай температур хүсч байгаа үед одоогийн температурыг ашиглах болно. Термостатын автомат горимд байх үед хөдөлгөөн мэдрэгч нь хэн нэгэн гэртээ байгаа эсэхийг тодорхойлохын тулд хөдөлгөөнийг идэвхтэй хайдаг. Тэдний уншилт дээр үндэслэн гэрийн температурыг холын температур эсвэл одоогийн температурт тохируулна.

Алхам 2: эд анги, материал

(15) холбогч утас

(4) 220 Ом эсэргүүцэл

(1) 10K Ом эсэргүүцэл

(1) Температур мэдрэгч

(1) Фото резистор

(1) DAGU Mini DC хурдны хайрцаг

(1) диод

(1) транзистор

(1) Фоторезистор

(1) Талхны самбар

(1) Arduino MKR

Алхам 3: Хэлхээ

Хэлхээ
Хэлхээ
Хэлхээ
Хэлхээ
Хэлхээ
Хэлхээ
Хэлхээ
Хэлхээ

Зураг 1 = Зүүн талын том зураг

Зураг 2 = Баруун дээд

Зураг 3 = Баруун дунд

Зураг 4 = Баруун доод

Зураг 1

Дээрх диаграмыг ашиглан бид гурван LED тус бүрийг утсаар холбосон. Бид том талхны тавцан дээр ажиллаж байснаасаа хойш LED тус бүрийг тусгаарласан. Жижиг талхны хавтангийн хувьд LED -ийг хооронд нь ойртуулах шаардлагатай байж магадгүй юм. Түүнчлэн, LED нь маш бага эрчим хүч авдаг тул талхны хавтанг асаах шаардлагагүй болно. Бид LED дээр талхны самбар дээрх 5V холболтыг ашиглаагүй. LED -ээс манай Arduino -д холбогдох бүх холболт ногоон утас дээр байгаа юм шиг хийгдсэн. Манай улаан, цэнхэр, ногоон LED нь Digital Pin 8, 9, 10 -т холбогдсон бөгөөд зураг дээрх улаан, цэнхэр, ногоон утсаар тэмдэглэгдсэн байдаг.

Зураг 2

Дээрх диаграмыг фоторезисторыг холбоход ашигласан болно. Бид өөрсдөө хэд хэдэн залруулга хийсэн; Гэсэн хэдий ч ойлголтууд ижил хэвээр байна. Фоторезистор нь A1 зүү дээрх аналог зүүтэй холбогдсон байх ёстой. Фоторезистортой хамгийн ойр байгаа эсэргүүцлийн хувьд 10К ом эсэргүүцэл ашиглахаа мартуузай.

Зураг 3

Энэ бол температур мэдрэгчийг холбох утас юм. Энд ашигласан транзисторыг температур мэдрэгчтэй андуурч болохгүй. Тэд бараг адилхан харагдаж байна. Температур мэдрэгч нь мэдрэгчийн хавтгай талд TMP эсвэл өөр скрипт бичсэн байх магадлалтай. Энд байгаа утас нь маш энгийн бөгөөд бидний температур мэдрэгчийг цагаан утсаар A0 аналог зүүгээр холбодог.

Зураг 4

Дээрх зургийг DAGU Mini DC хурдны хайрцгийг утсаар холбоход ашигласан болно. Хурдны хайрцагт хавсаргасан ногоон утас нь үнэндээ манай зураг дээр холбогдсон улаан утас юм. Gearbox нь манай загварт улбар шар утастай дижитал зүү 11 -т холбогдсон байна. Энд ашигласан транзисторыг температур мэдрэгчтэй андуурч болохгүй. Тэд бараг адилхан харагдаж байна. Температур мэдрэгч нь мэдрэгчийн хавтгай талд TMP эсвэл өөр скрипт бичсэн байх магадлалтай. Та энд температур мэдрэгч биш транзисторыг ашиглах ёстой.

Алхам 4: Arduino код

Энд кодын хамгийн чухал хэсгүүдийг тайлбарласан болно. Код нь зөвхөн энд өгөгдсөн зүйлтэй ажиллахгүй. Ажлын кодыг бүрэн эхээр нь авахын тулд хуудасны доод хэсэгт линк байна.

Програмчлагдах термостатын кодыг үүсгэх үед таны хийх ёстой хамгийн эхний зүйл бол мэдрэгчийг тохируулах, температур мэдрэгчээс температурын заалтыг байнга авч байх зориулалттай давталт үүсгэх явдал юм.

Температур мэдрэгч ба LED -ийг тохируулах:

tempPin = 'A0';%нь хүчдэлийг температур руу хөрвүүлдэг үл мэдэгдэх функцийг тодорхойлдог tempCfromVolts = @(вольт) (вольт-0.5)*100; түүвэр хийх хугацаа = 5; %секунд. Бид дээж авахын тулд хэр удаан дээж авахыг хүсч байна Interval = 1; %Температурын уншилтын хооронд хэдэн секундын дотор %дээж авах хугацааны векторыг тохируулж байна %үргэлжлэх хугацаа ба интервал дээр үндэслэн дээжийн тоог тооцоолно numSamples = урт (samplelingTimes); %temp хувьсагчдыг урьдчилан хуваарилах ба унших тооны хувьсагч нь tempC = тэгийг хадгалах болно (numSamples, 1); tempF = tempC; %Бид энэ удаад for давталтыг ашиглан урьдчилан тодорхойлсон %температурын заалтыг авна

For давталт:

индексийн хувьд = 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',… samplingTimes (индекс), tempC (индекс), tempF (индекс)) -ийг илэрхийлж буй форматтай гаралтыг харуулах; Хэрэв та кодыг энгийн скрипт mfile руу хуулж/буулгахгүй бол кодыг гүйцэтгэж дууссаны дараа энэ дэлгэцийн гаралт нэг дор харагдах болно. завсарлага (түүвэрлэлтийн завсар) %дараагийн удаашрах хүртэл

Дараа нь бид термостатыг гар эсвэл автомат горимд оруулах эсэхээ шийдэхийн тулд хэрэглэгчийн цэсийг бий болгодог. Хэрэв хэрэглэгч хоёр сонголтын аль нэгийг сонгоогүй бол бид алдааны кодыг үүсгэдэг.

Гарын авлагын горимын цэс нь хэрэглэгчээс термостатын температурын дугаарыг тохируулахыг шаарддаг бөгөөд ингэснээр гэрийг халаах, гэрийг хөргөх эсвэл уншилт дээр үндэслэн сул зогсох болно. Кодын энэ хэсгийг тохируулахын тулд та температур мэдрэгчийн температурын уншилтыг ашиглаж, температурын уншилт нь тогтоосон температураас өндөр байх үед гэрийг хөргөх кодыг бий болгож, температурын үзүүлэлт тогтоосон температураас доогуур байвал гэрийг халаана.

Температурын заалттай болсны дараа температурыг унших нь тогтоосон температураас өндөр байх үед термостатад байшинг хөргөхийг зааж өгөх кодыг үүсгэж болно. Прототипийн хувьд термостат хөрөхөд цэнхэр гэрэл, термостат халах үед улаан гэрэл асдаг.

Цэсийн тохиргоо:

choices = {'Автомат', 'Гарын авлага'}; imode = цэс ('Горим', сонголтууд), хэрэв imode> 0 h = msgbox (['Та сонгосон' сонголтууд {imode}]); else h = warningdlg ('Та сонголт хийхгүйгээр цэсийг хаасан') 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, opts); if isempty (dlg_ans) h = warningdlg ('Та 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 = {'Хэвийн', 'Алслагдсан'}; dlg_title = 'Температурын тохиргоо'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warningdlg ('Та 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) сэнсний бичих моторт ямар ч улаан гэрэл байгаа бол бичихDigitalPin (a, 'D9', 1); төгсгөл end байхад lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %нь ердийн гэрэл ямар ч байсан зүү болж өөрчлөгдөж байхад temp tempFDigitalPin (a, 'D6', 1) улаан гэрэл ч бас байдаг сэнсний бичих хөдөлгүүрDigitalPin (a, 'D9', 1); төгсгөл төгсгөл

Бүрэн кодыг эндээс олж болно.

Зөвлөмж болгож буй: