Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Adrien Green, Huy Trần, Jody Walker
Việc sử dụng máy tính Raspberry Pi và Matlab là một cách đơn giản và hiệu quả để giúp chủ nhà giảm tiêu thụ năng lượng. Phần tốt nhất về Energy Saver 3000 là nó rất đơn giản để thiết lập và sử dụng. Mục đích chính của Energy Saver 3000 là cho phép chủ nhà có thể theo dõi hóa đơn năng lượng của họ để xem họ đang chi tiêu bao nhiêu và cho phép chủ sở hữu nhà tắt đèn trong nhà từ xa chỉ bằng một nút bấm.
Bước 1: Các bộ phận được sử dụng
1: Máy tính Raspberry Pi
2: Bảng mạch
3: Dây nhảy
4: Nút nhấn
5: Đèn LED mini
6: 330 ohm, 10 Kohm và điện trở 300 ohm
7: Cáp Ethernet
8: Tế bào quang ánh sáng
Bước 2: Tuyên bố vấn đề
Dự án của chúng tôi là thiết kế một trình tiết kiệm năng lượng gia đình sử dụng máy tính Raspberry Pi và MATLAB. Mục tiêu của chúng tôi là xây dựng một hệ thống cho phép người dùng theo dõi hóa đơn năng lượng của họ để xem liệu họ có thể giảm mức tiêu thụ năng lượng hay không. Chúng tôi cũng muốn người dùng có thể tắt đèn khi họ rời đi chỉ bằng một lần nhấn nút. Để làm điều này, chúng tôi kết nối một tế bào quang điện để nhận biết khi nào đèn sáng. Nếu đèn sáng, chương trình MATLAB sẽ tính toán thời gian chúng đã bật và lượng năng lượng và tiền đã được sử dụng kể từ khi chúng bật.
Bước 3: Thiết lập
Đấu dây cho breadboard như trong Hình trên.
Bước 4: Mã MATLAB để điều khiển tế bào quang
function control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
thời gian = 0
sumcost = 0
Thời gian = 0
Chi phí = 0
bóng đèn = 100/1000;% kilowatt
cho i = 1: 2
tic
trong khi đúng
x = readDigitalPin (rpi, 13)
nếu x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
time = time + toc
kwh = toc * bóng đèn
đô la = 0,101
chi phí = kwh * đô la
sumcost = sumcost + chi phí
X = linspace (Thời gian, thời gian, 10)
Y = linspace (Chi phí, tổng tiền, 10)
Time = thời gian
Chi phí = tổng tiền
disp (['Đèn đã bật cho', num2str (toc), 'giờ. Cost = $', num2str (cost)])
plot (X, Y, 'b') title ('Cost Over Time')
xlabel ('Thời gian (Giờ)')
ylabel ('Chi phí ($ Đô la Mỹ)')
Giữ lấy
nghỉ
kết thúc
kết thúc
tạm dừng (5)
tic
trong khi đúng
x = readDigitalPin (rpi, 13)
nếu x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
time = Time + toc
kwh = toc * bóng đèn
đô la = 0,101
chi phí = kwh * đô la
sumcost = Cost + cost
X = linspace (Thời gian, thời gian, 10)
Y = linspace (Chi phí, tổng tiền, 10)
Time = thời gian
Chi phí = tổng tiền
disp (['Đèn đã bật cho', num2str (toc), 'giờ. Cost = $', num2str (cost)])
âm mưu (X, Y, 'g')
title ('Chi phí theo thời gian')
xlabel ('Thời gian (Giờ)')
ylabel ('Chi phí ($ Đô la Mỹ)')
Giữ lấy
nghỉ
kết thúc
kết thúc
tạm dừng (5)
kết thúc
Bước 5: Mã MATLAB để Tắt đèn
function button_controlv1 ()
rpi = raspi ();
condi = 1;
trong khi true% tạo một vòng lặp vô hạn để giữ cho mã chạy
button = readDigitalPin (rpi, 6); % Đọc giá trị nhấn nút trên pin 6
nút if == 0
condi = condi + 1
kết thúc
nếu mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Bạn đã tắt đèn.:)') waitfor (h);
nghỉ
kết thúc
nếu mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
kết thúc
kết thúc
Bước 6: Mã MATLAB để bật đèn
function button_controlv2 ()
rpi = raspi ();
condi = 2;
trong khi true% tạo một vòng lặp vô hạn để giữ cho mã chạy
button = readDigitalPin (rpi, 6); % Đọc giá trị nhấn nút trên pin 6
nút if == 0
condi = condi + 1
kết thúc
nếu mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
kết thúc
nếu mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Bạn đã bật đèn.:(')
chờ đợi (h);
tạm dừng (10)
nghỉ
kết thúc
kết thúc
Bước 7: Mã MATLAB cho GUI
function EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Lightbulb.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Chào mừng bạn đến với Energy Saver 3000!', '', 'custom', imgdata);
chờ đợi (h);
rõ ràng h;
trong khi đúng
iprogram = menu ('Bạn muốn chạy chương trình nào?', 'Máy tính hóa đơn', 'Điều khiển ánh sáng');
nếu iprogram == 1
control_light () h = msgbox ('Xong !!!')
đóng tất cả
elseif
iprogram == 2
kết thúc
rõ ràng h;
ichoice = menu ('Điều khiển ánh sáng', 'Bật', 'Tắt', 'Đừng bận tâm');
nếu ichoice == 1
button_controlv2 ()
h = msgbox ('Hoàn tất !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Hoàn tất !!!')
elseif ichoice == 3
h = msgbox ('Bạn không làm gì cả:(') waitfor (h);
h = msgbox ('Hoàn tất !!!')
kết thúc
chờ đợi (h);
kết thúc
kết thúc