Mục lục:

EF 230: Hệ thống tại nhà 3000 Có thể giảng dạy: 4 bước
EF 230: Hệ thống tại nhà 3000 Có thể giảng dạy: 4 bước

Video: EF 230: Hệ thống tại nhà 3000 Có thể giảng dạy: 4 bước

Video: EF 230: Hệ thống tại nhà 3000 Có thể giảng dạy: 4 bước
Video: Tập Full | Ta Luyện Khí Ba Ngàn Năm : Đừng Khinh Thường Luyện khí Kỳ | Review Truyện Tranh Hay 2024, Tháng bảy
Anonim
EF 230: Hệ thống gia đình 3000 có thể giảng dạy
EF 230: Hệ thống gia đình 3000 có thể giảng dạy

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 độ

Cảm biến nhiệt độ
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

Buzzer
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

Máy dò quang học / Điện trở quang
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
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.

Đề xuất: