Mục lục:

Bộ điều nhiệt nhà thông minh: 4 bước
Bộ điều nhiệt nhà thông minh: 4 bước

Video: Bộ điều nhiệt nhà thông minh: 4 bước

Video: Bộ điều nhiệt nhà thông minh: 4 bước
Video: Trải nghiệm giải pháp nhà thông minh Rạng Đông: Đa dụng, hữu ích cho căn nhà hiện đại 2024, Tháng bảy
Anonim
Bộ điều nhiệt nhà thông minh
Bộ điều nhiệt nhà thông minh

Smart Home Thermostat của chúng tôi là một chương trình có thể tự động tiết kiệm một khoản tiền hộ gia đình cho các hóa đơn điện nước dựa trên sở thích của một người.

Bước 1: Tổng quan

Smart Home Thermostat sử dụng cảm biến nhiệt độ để lấy nhiệt độ của ngôi nhà. Việc đọc nhiệt độ này được đưa vào chương trình, nơi nó sẽ quyết định hệ thống điều hòa không khí cần sưởi ấm hoặc làm mát ngôi nhà dựa trên nhiệt độ mong muốn của chủ nhà.

Có hai chế độ cho bộ điều chỉnh nhiệt: thủ công và tự động. Chế độ thủ công sẽ điều chỉnh nhiệt độ của ngôi nhà thành bất kỳ nhiệt độ mong muốn nào do người dùng cài đặt. Và chế độ tự động của bộ điều nhiệt sẽ tự động thay đổi nhiệt độ trong nhà thành nhiệt độ do người dùng cài đặt trước. Sẽ có hai cài đặt nhiệt độ cho chế độ tự động: nhiệt độ xa và nhiệt độ hiện tại. Nhiệt độ xa được sử dụng để tiết kiệm năng lượng bằng cách thay đổi bộ điều nhiệt thành nhiệt độ tiết kiệm năng lượng đặt trước bất cứ khi nào người dùng không ở nhà. Nhiệt độ hiện tại sẽ được sử dụng khi người dùng ở nhà và muốn có nhiệt độ thoải mái. Khi ở chế độ tự động của máy điều nhiệt, cảm biến chuyển động sẽ chủ động tìm kiếm chuyển động để xác định xem có người ở nhà hay không. Dựa trên kết quả đọc, nhiệt độ nhà sẽ được đặt thành nhiệt độ xa hoặc nhiệt độ hiện tại.

Bước 2: Các bộ phận và vật liệu

(15) Dây nhảy

(4) Điện trở 220 Ohm

(1) Điện trở 10K Ohm

(1) Cảm biến nhiệt độ

(1) Điện trở ảnh

(1) Hộp số DC Mini DAGU

(1) Diode

(1) Bóng bán dẫn

(1) Điện trở quang

(1) Bảng mạch

(1) Arduino MKR

Bước 3: Mạch

Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện

Hình 1 = Hình lớn bên trái

Hình 2 = Trên cùng bên phải

Hình 3 = Giữa phải

Hình 4 = Dưới cùng bên phải

Hình 1

Sử dụng sơ đồ trên, chúng tôi đã đấu dây cho từng đèn LED trong số ba đèn LED của chúng tôi. Chúng tôi đã bố trí từng đèn LED vì chúng tôi đang làm việc với một bảng bánh mì lớn. Đối với bảng mạch bánh mì nhỏ hơn, có thể cần đặt các đèn LED gần nhau hơn. Ngoài ra, không cần thiết phải cấp nguồn cho breadboard vì đèn LED tiêu thụ rất ít năng lượng. Chúng tôi không sử dụng kết nối 5V trên bảng mạch cho đèn LED. Mỗi kết nối từ đèn LED đến Arduino của chúng tôi được thực hiện giống như dây màu xanh lá cây ở trên. Các đèn LED màu đỏ, xanh lam và xanh lục của chúng tôi được kết nối tương ứng với Chân số 8, 9 và 10, được chỉ định bằng dây màu đỏ, xanh lam và xanh lá cây trong hình của chúng tôi.

Hình 2

Sơ đồ trên được sử dụng để nối dây điện trở quang. Chúng tôi đã thực hiện một vài chỉnh sửa của riêng mình; tuy nhiên các khái niệm vẫn giống nhau. Điện trở quang phải được kết nối với chân tương tự mà chúng ta có ở chân A1. Đảm bảo sử dụng điện trở 10K ohm cho điện trở gần với điện trở quang nhất.

Hình 3

Đây là sơ đồ dùng để đấu dây cảm biến nhiệt độ. Đảm bảo không nhầm bóng bán dẫn được sử dụng ở đây với cảm biến nhiệt độ. Chúng trông gần giống hệt nhau. Cảm biến nhiệt độ có thể sẽ có TMP hoặc một số tập lệnh khác được viết trên mặt phẳng của cảm biến. Cách đấu dây ở đây rất đơn giản cảm biến nhiệt độ của chúng ta được cắm vào chân analog A0 bằng dây màu trắng.

hinh 4

Hình trên được sử dụng để đấu dây cho Hộp số DC Mini DAGU. Dây màu xanh lá cây gắn với Hộp số thực chất là dây màu đỏ được kết nối với nó trong hình của chúng ta. Hộp số được kết nối với chân số 11 bằng dây màu cam trong mô hình của chúng tôi. Đảm bảo không nhầm bóng bán dẫn được sử dụng ở đây với cảm biến nhiệt độ. Chúng trông gần giống hệt nhau. Cảm biến nhiệt độ có thể sẽ có TMP hoặc một số tập lệnh khác được viết trên mặt phẳng của cảm biến. Bạn phải sử dụng bóng bán dẫn ở đây chứ không phải cảm biến nhiệt độ.

Bước 4: Mã Arduino

Ở đây, các phần quan trọng nhất của mã được giải thích. Mã sẽ không hoạt động chỉ với những gì được đưa ra ở đây. Để có được mã làm việc đầy đủ, có một liên kết ở cuối trang.

Khi tạo mã của bộ điều nhiệt có thể lập trình, một trong những điều đầu tiên bạn làm là thiết lập các cảm biến và tạo một vòng lặp for sẽ liên tục nhận được các kết quả đo nhiệt độ từ cảm biến nhiệt độ.

Thiết lập cảm biến nhiệt độ và đèn LED:

tempPin = 'A0';% xác định hàm ẩn danh chuyển đổi điện áp thành nhiệt độ tempCfromVolts = @ (volts) (volts-0,5) * 100; lấy mẫuDuration = 5; % giây. Chúng ta muốn lấy mẫu trong bao lâu để lấy mẫu samplingInterval = 1; % Bao nhiêu giây giữa các lần đọc nhiệt độ% thiết lập vectơ thời gian lấy mẫu samplingTimes = 0: samplingInterval: samplingDuration; % tính toán số lượng mẫu dựa trên thời lượng và khoảng numSamples = length (samplingTimes); % phân bổ trước các biến tạm thời và biến cho số lần đọc nó sẽ lưu trữ tempC = zeros (numSamples, 1); tempF = tempC; % Chúng tôi sẽ sử dụng vòng lặp for lần này để thực hiện một số% số lần đọc nhiệt độ được xác định trước

Vòng lặp for:

for index = 1: numSamples% đọc điện áp tại tempPin và lưu trữ ở dạng volt biến đổi volt = readVoltage (a, tempPin); tempC (chỉ số) = -1 * tempCfromVolts (vôn + 0,3); tempF (chỉ số) = tempC (chỉ số) * (9/5) +32; % Hiển thị đầu ra được định dạng thông báo giá trị đọc nhiệt độ hiện tại fprintf ('Nhiệt độ ở% d giây là% 5.2f C hoặc% 5.2f F. / n',… samplingTimes (chỉ mục), tempC (chỉ số), tempF (chỉ số)); % lưu ý rằng đầu ra hiển thị này sẽ chỉ hiển thị tất cả cùng một lúc sau khi mã% được thực thi xong trừ khi bạn sao chép / dán mã vào mfile tập lệnh thuần túy. tạm dừng (samplingInterval)% độ trễ cho đến khi kết thúc mẫu tiếp theo

Tiếp theo, chúng tôi tạo menu người dùng để người dùng quyết định đặt Máy điều nhiệt ở chế độ Thủ công hay Tự động. Chúng tôi cũng tạo mã lỗi nếu người dùng không chọn một trong hai tùy chọn.

Menu Chế độ thủ công yêu cầu người dùng đặt một số cho nhiệt độ của bộ điều nhiệt, sau đó nó sẽ làm nóng nhà, làm mát nhà hoặc không hoạt động dựa trên các kết quả đọc được. Để thiết lập phần mã này, bạn đã sử dụng số đọc nhiệt độ từ cảm biến nhiệt độ và tạo mã sẽ làm mát nhà khi giá trị nhiệt độ cao hơn nhiệt độ cài đặt và sưởi ấm nhà khi số đọc nhiệt độ thấp hơn nhiệt độ cài đặt.

Sau khi bạn có kết quả đọc nhiệt độ, bạn có thể tạo mã thông báo cho bộ điều nhiệt làm mát nhà khi giá trị nhiệt độ cao hơn nhiệt độ cài đặt và sưởi ấm nhà khi giá trị đọc nhiệt độ thấp hơn nhiệt độ cài đặt. Đối với mẫu thử nghiệm, đèn màu xanh dương bật sáng khi bộ điều nhiệt nguội và đèn đỏ bật sáng khi bộ điều chỉnh nhiệt độ nóng.

Thiết lập menu:

lựa chọn = {'Tự động', 'Thủ công'}; imode = menu ('Chế độ', lựa chọn) if imode> 0 h = msgbox (['Bạn đã chọn' lựa chọn {imode}]); else h = warndlg ('Bạn đã đóng menu mà không đưa ra lựa chọn') end waitfor (h);

Chế độ Thủ công yêu cầu người dùng nhập nhiệt độ cho bộ điều nhiệt, sau đó dựa trên các kết quả đọc được từ cảm biến nhiệt độ, nó sẽ bắt đầu làm mát ngôi nhà sưởi ấm ngôi nhà. Nếu chỉ số của cảm biến nhiệt độ cao hơn nhiệt độ cài đặt, nó sẽ bắt đầu làm mát nhà. Nếu chỉ số của cảm biến nhiệt độ thấp hơn nhiệt độ cài đặt, nó sẽ làm nóng nhà.

Chế độ Thủ công sẽ bắt đầu:

if imode == 2 dlg_prompts = {'Bạn muốn nhiệt độ nào hơn?'}; dlg_title = 'Nhiệt độ'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Bạn đã hủy lệnh inputdlg'); else temp_manual = str2double (dlg_ans {1})% [Thêm trang trình bày Thiết lập Quy định Nhiệt độ bên dưới] end

Bên trong câu lệnh if cho chế độ thủ công, bạn cần viết giao diện menu để người dùng chọn nhiệt độ gia đình mong muốn và sau đó thực hiện câu lệnh while sẽ điều chỉnh nhiệt độ gia đình.

Thiết lập quy định nhiệt độ:

while temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); end while temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); kết thúc

Chế độ Tự động yêu cầu nhiều đầu vào hơn chế độ thủ công. Sau khi vào chế độ Tự động, người dùng sẽ đặt nhiệt độ Bình thường và Nhiệt độ Rời cho bộ điều nhiệt của họ.

Thiết lập chế độ Tự động:

elseif imode == 1 dlg_prompts = {'Bình thường', 'Đi vắng'}; dlg_title = 'Cài đặt nhiệt độ'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Bạn đã hủy lệnh inputdlg'); else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); % [Thêm bước phát hiện chuyển động bên dưới]

Chúng tôi cũng cần thiết lập cảm biến chuyển động cho cài đặt Chế độ tự động. Khi bộ phát hiện chuyển động nhận chuyển động, nó sẽ giữ nhiệt độ ở cài đặt nhiệt độ hiện tại, nếu không nó sẽ đặt ở cài đặt nhiệt độ xa.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) bất kỳ chân đèn đỏ nào cũng có trong động cơ cho quạt writeDigitalPin (a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1)% thay đổi thành bất kỳ chân nào mà đèn bình thường ở trong khi temp tempF writeDigitalPin (a, 'D6', 1) bất kỳ chân nào đèn đỏ cũng ở động cơ cho quạt ghiDigitalPin (a, 'D9', 1); kết thúc cuối cùng

Mã đầy đủ có thể được tìm thấy ở đây.

Đề xuất: