Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Home System 3000 là một thiết bị sử dụng Arduino, cảm biến nhiệt độ, bộ rung piezo, bộ dò quang học / phototransistor và một servo để hiển thị các cách cải thiện hiệu quả sử dụng năng lượng tại nhà.
Bước 1: Cảm biến nhiệt độ
· Chạy dây điện và dây nối đất của bạn từ
bộ điều khiển vi mô ở bên cạnh bảng mạch bánh mì
· Đặt cảm biến nhiệt độ vào bảng mạch bánh mì và chạy dây nguồn và dây nối đất tương ứng
· Lưu ý rằng cảm biến nhiệt độ có ba ngạnh, và ngạnh giữa có một dây dẫn chạy từ cổng "A0".
· Mã cho cảm biến nhiệt độ:
answer = questdlg ('Vui lòng chạy mã khởi động arduino và servo', 'response', 'Ok', 'Ok')
prompt = 'Nhấn phím bất kỳ để bắt đầu'
tạm ngừng
prompt1 = 'Đặt nhiệt độ tối thiểu'
x = input (prompt1)
prompt2 = 'Đặt nhiệt độ tối đa'
y = input (prompt2)
prompt3 = 'nhấn bất kỳ phím nào để bắt đầu'
tạm ngừng
nhân vật
h = animationline;
ax = gca;
ax. YGrid = 'trên';
ax. YLim = [65 85];
dừng lại = sai;
startTime = datetime ('bây giờ');
trong khi ~ dừng lại
% Đọc giá trị điện áp hiện tại
v = readVoltage (a, 'A0');
% Tính toán nhiệt độ từ điện áp (dựa trên bảng dữ liệu)
TempC = (v - 0,5) * 100;
TempF = 9/5 * TempC + 32;
% Nhận thời gian hiện tại
t = datetime ('now') - startTime;
% Thêm điểm vào hoạt ảnh
điểm cộng (h, datenum (t), TempF)
% Cập nhật trục
ax. XLim = datenum ([t-giây (15) t]);
datetick ('x', 'keeplimits')
drawnow
% Kiểm tra điều kiện dừng
stop = readDigitalPin (a, 'D12');
Bước 2: Buzzer
· Dây trong bộ rung sẽ được sử dụng để báo hiệu nhiệt độ cực cao hoặc cực thấp
· Không có dây nào được chạy từ cột dương sang cực dương của còi
· Thay vào đó, một dây được chạy từ cực dương của bộ rung đến một cổng có nhãn "11"
Điều này sẽ được sử dụng sau này để gọi vị trí của bộ rung trong mã đã viết.
· Mã cho buzzer:
nếu TempF> = y
disp ('đóng cửa đi, nó nóng')
playTone (a, 'D11', 500, 1)
elseif TempF <= x
disp ('đóng cửa đi, trời lạnh')
playTone (a, 'D11', 250, 1)
kết thúc
kết thúc
Bước 3: Máy dò quang học / Điện trở quang
· Cảm biến này yêu cầu điện trở không giống như những cảm biến khác
· Đảm bảo tất cả bốn ngạnh của cảm biến được bao gồm trong vòng lặp sau khi cắm dây
· Cảm biến phát hiện sự thay đổi ánh sáng, biểu thị chuyển động và ghi lại nó dưới dạng đầu vào
· Mã cho máy dò quang học / điện trở quang:
rõ ràng một
a = arduino ('/ dev / tty.usbserial-DN01DVI2', 'Uno', 'Libraries', 'Servo');
prompt = 'Đặt ngưỡng mức ánh sáng'
z = input (dấu nhắc)
lightLevel = 0
trong khi lightLevel ~ = -1
lightLevel = readVoltage (a, 'A1')
nếu lightLevel> = z
answer = questdlg ('có muốn thay đổi AC không?', 'Có', 'Không')
chuyển câu trả lời
trường hợp 'Có'
answer2 = questdlg ('Bật nguồn AC lên hay xuống?', 'response', 'Down', 'Up', 'Up')
chuyển câu trả lời2
trường hợp 'Down'
s = servo (a, 'D10');
cho góc = 0:.1:.5
writePosition (s, angle);
current_position = readPosition (s);
vị trí hiện tại = current_position * 180;
% in vị trí hiện tại của động cơ servo
fprintf ('Vị trí hiện tại là% d / n', current_position);
% độ trễ nhỏ được yêu cầu để servo có thể được định vị tại
% góc nói với nó.
tạm dừng (2);
kết thúc
% đưa động cơ trở lại vị trí góc 0
writePosition (s, 0);
rõ ràng s
prompt = 'Nhấn phím bất kỳ để tiếp tục'
questdlg ('AC từ chối', 'phản hồi', 'Ok', 'Ok')
trường hợp 'Lên'
s = servo (a, 'D10');
cho góc =.5:.1: 1
writePosition (s, angle);
current_position = readPosition (s);
vị trí hiện tại = current_position * 180;
% in vị trí hiện tại của động cơ servo
fprintf ('Vị trí hiện tại là% d / n', current_position);
% độ trễ nhỏ được yêu cầu để servo có thể được định vị tại
% góc nói với nó.
tạm dừng (2);
kết thúc
Bước 4: Servo
· Servo đại diện cho
máy điều hòa không khí và là đầu ra của đầu vào phát hiện chuyển động
· Nó yêu cầu dây dương, dây nối đất và dây từ cổng "D9" đến servo
· Mã cho servo:
% đưa động cơ trở lại vị trí góc 0
writePosition (s, 0);
rõ ràng s
prompt = 'Nhấn phím bất kỳ để tiếp tục'
questdlg ('AC đã bật lên', 'phản hồi', 'Ok', 'Ok')
kết thúc
kết thúc
tạm ngừng
nghỉ
kết thúc
kết thúc
* Lưu ý đặc biệt: một số mã cho servo được tích hợp với mã cho bộ dò quang / điện trở quang.