Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Adrien Green, Huy Tran, Jody Walker
Utilizarea unui computer Raspberry Pi și a Matlab este o modalitate simplă și eficientă de a ajuta proprietarii de case să reducă consumul de energie. Cea mai bună parte a Energy Saver 3000 este că este foarte simplu de configurat și utilizat. Scopul principal al Energy Saver 3000 este de a permite proprietarilor de case să își poată urmări factura de energie pentru a vedea cât cheltuiesc și de a permite proprietarilor de case să oprească luminile de acolo de la distanță cu o apăsare de buton.
Pasul 1: Piese utilizate
1: computer Raspberry Pi
2: Pană de pâine
3: fire jumper
4: Apăsați butonul
5: Mini lumini LED
6: 330 ohm, 10 Kohm și un rezistor de 300 ohm
7: Cablu Ethernet
8: fotocelula ușoară
Pasul 2: Declarație de problemă
Proiectul nostru a fost de a proiecta un economizor de energie pentru locuințe folosind un computer Raspberry Pi și MATLAB. Scopul nostru a fost să construim un sistem care să le permită utilizatorilor să-și urmărească factura de energie pentru a vedea dacă își pot reduce consumul de energie. De asemenea, am dorit ca utilizatorii să poată opri luminile în timp ce plecau, apăsând un buton. Pentru a face acest lucru, am conectat o fotocelula pentru a detecta când luminile sunt aprinse. Dacă luminile sunt aprinse, programul MATLAB va calcula cât timp au fost aprinse și cât de multă energie și bani au fost cheltuiți de când sunt aprinși.
Pasul 3: Configurare
Conectați panoul de afișare așa cum se arată în imaginea de mai sus.
Pasul 4: Cod MATLAB pentru controlul fotocelulei
function control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
timp = 0
sumcost = 0
Timp = 0
Cost = 0
bec = 100/1000;% kilowați
pentru i = 1: 2
tic
în timp ce este adevărat
x = readDigitalPin (rpi, 13)
dacă x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
timp = timp + toc
kwh = toc * bulb
dolari = 0,101
cost = kwh * dolari
sumcost = sumcost + cost
X = linspace (Timp, timp, 10)
Y = linspace (Cost, sumcost, 10)
Timp = timp
Cost = sumcost
disp (['Lumina a fost aprinsă de', num2str (toc), 'ore. Cost = $', num2str (cost)])
complot (X, Y, 'b') titlu ('Cost Over Time')
xlabel („Timp (ore)”)
ylabel („Cost (dolari dolari)”)
stai asa
pauză
Sfârșit
Sfârșit
pauză (5)
tic
în timp ce este adevărat
x = readDigitalPin (rpi, 13)
dacă x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
timp = Timp + toc
kwh = toc * bulb
dolari = 0,101
cost = kwh * dolari
sumcost = Cost + cost
X = linspace (Timp, timp, 10)
Y = linspace (Cost, sumcost, 10)
Timp = timp
Cost = sumcost
disp (['Lumina a fost aprinsă de', num2str (toc), 'ore. Cost = $', num2str (cost)])
complot (X, Y, 'g')
title („Costul în timp”)
xlabel („Timp (ore)”)
ylabel („Cost (dolari dolari)”)
stai asa
pauză
Sfârșit
Sfârșit
pauză (5)
Sfârșit
Pasul 5: Cod MATLAB pentru stingerea luminilor
funcție button_controlv1 ()
rpi = raspi ();
condi = 1;
în timp ce true% creează o buclă infinită pentru a menține codul în funcțiune
button = readDigitalPin (rpi, 6); % Citește valoarea apăsării butonului la pinul 6
dacă butonul == 0
condi = condi + 1
Sfârșit
dacă mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Ai stins lumina.:)') waitfor (h);
pauză
Sfârșit
dacă mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
Sfârșit
Sfârșit
Pasul 6: Cod MATLAB pentru aprinderea luminilor
funcție button_controlv2 ()
rpi = raspi ();
condi = 2;
în timp ce true% creează o buclă infinită pentru a menține codul în funcțiune
button = readDigitalPin (rpi, 6); % Citește valoarea apăsării butonului la pinul 6
dacă butonul == 0
condi = condi + 1
Sfârșit
dacă mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
Sfârșit
dacă mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Ai aprins lumina.:(')
waitfor (h);
pauză (10)
pauză
Sfârșit
Sfârșit
Pasul 7: Cod MATLAB pentru GUI
funcția EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Becul.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Bine ați venit la Energy Saver 3000!', '', 'custom', imgdata);
waitfor (h);
clar h;
în timp ce este adevărat
iprogram = menu („Care program doriți să rulați?”, „Calculator facturi”, „Control lumină”);
dacă iprogram == 1
control_light () h = msgbox ('Gata !!!')
inchide tot
elseif
iprogram == 2
Sfârșit
clar h;
ichoice = meniu („Control lumină”, „Activare”, „Dezactivare”, „Nevermind”);
dacă ichoice == 1
button_controlv2 ()
h = msgbox ('Gata !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Gata !!!')
elseif ichoice == 3
h = msgbox ('Nu ai făcut nimic:(') waitfor (h);
h = msgbox ('Gata !!!')
Sfârșit
waitfor (h);
Sfârșit
Sfârșit