Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Adrien Green, Huy Tran, Jody Walker
L’ús d’un ordinador Raspberry Pi i Matlab és una manera senzilla i eficaç d’ajudar els propietaris a reduir el consum d’energia. La millor part del Energy Saver 3000 és que és molt senzill de configurar i utilitzar. L’objectiu principal del Energy Saver 3000 és permetre als propietaris d’habitatges poder fer un seguiment de la factura d’energia per veure quant gasten i permetre als propietaris d’apagar els llums de les cases allà de forma remota amb només prémer un botó.
Pas 1: parts utilitzades
1: ordinador Raspberry Pi
2: Taula de pa
3: cables de pont
4: polsador
5: Mini llums LED
6: 330 ohm, 10 Kohm i una resistència de 300 ohm
7: Cable Ethernet
8: Fotocèl·lula lleugera
Pas 2: declaració de problema
El nostre projecte consistia a dissenyar un estalvi d’energia per a la llar mitjançant un ordinador Raspberry Pi i MATLAB. El nostre objectiu era construir un sistema que permetés als usuaris fer un seguiment de la factura d’energia per veure si poden reduir el seu consum d’energia. També volíem que els usuaris poguessin apagar els llums mentre marxaven sense haver de prémer un botó. Per fer-ho, hem connectat una fotocèl·lula per detectar quan s’encenen els llums. Si els llums estan encesos, el programa MATLAB calcularà el temps que porten encès i la quantitat d’energia i diners que s’han gastat des que estan encesos.
Pas 3: Configuració
Connecteu el taulell de configuració tal com es mostra a la imatge superior.
Pas 4: Codi MATLAB per controlar la fotocèl·lula
funció control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
temps = 0
cost sumari = 0
Temps = 0
Cost = 0
bombeta = 100/1000;% de quilowatts
per a i = 1: 2
tic
tot i que és cert
x = readDigitalPin (rpi, 13)
si x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
temps = temps + toc
kwh = toc * bulb
dòlars = 0,101
cost = kwh * dòlars
sumcost = sumcost + cost
X = espai interior (temps, temps, 10)
Y = linspace (cost, cost sumari, 10)
Temps = temps
Cost = cost total
disp (['La llum ha estat encesa durant', num2str (toc), 'hores. Cost = $', num2str (cost)])
trama (X, Y, 'b') títol ('Cost al llarg del temps')
xlabel ('Temps (hores)')
ylabel ('Cost ($ dòlars)')
espera
trencar
final
final
pausa (5)
tic
tot i que és cert
x = readDigitalPin (rpi, 13)
si x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
temps = Temps + toc
kwh = toc * bulb
dòlars = 0,101
cost = kwh * dòlars
sumcost = Cost + cost
X = espai espacial (temps, temps, 10)
Y = linspace (cost, cost sumari, 10)
Temps = temps
Cost = cost total
disp (['La llum ha estat encesa durant', num2str (toc), 'hores. Cost = $', num2str (cost)])
trama (X, Y, 'g')
title ("Cost al llarg del temps")
xlabel ('Temps (hores)')
ylabel ('Cost ($ dòlars)')
espera
trencar
final
final
pausa (5)
final
Pas 5: codi MATLAB per apagar els llums
funció button_controlv1 ()
rpi = raspi ();
cond = 1;
mentre que true% crea un bucle infinit per mantenir el codi en execució
button = readDigitalPin (rpi, 6); % Llegeix el valor de premut botó al pin 6
botó if == 0
cond = cond + 1
final
si mod (cond, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Heu apagat el llum.:)') waitfor (h);
trencar
final
si mod (cond, 2) == 1
writeDigitalPin (rpi, 17, 1)
final
final
Pas 6: Codi MATLAB per encendre els llums
funció button_controlv2 ()
rpi = raspi ();
cond = 2;
mentre que true% crea un bucle infinit per mantenir el codi en execució
button = readDigitalPin (rpi, 6); % Llegeix el valor de premut botó al pin 6
botó if == 0
cond = cond + 1
final
si mod (cond, 2) == 0
writeDigitalPin (rpi, 17, 0)
final
si mod (cond, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Heu encès el llum.:(')
waitfor (h);
pausa (10)
trencar
final
final
Pas 7: Codi MATLAB per a la GUI
funció EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Bombeta.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Benvingut al Energy Saver 3000!', '', 'custom', imgdata);
waitfor (h);
clar h;
tot i que és cert
iprogram = menu ("Quin programa voleu executar?", "Calculadora de factures", "Control de llum");
si iprogram == 1
control_light () h = msgbox ('Fet !!!')
tancar-ho tot
elseif
iprogram == 2
final
clar h;
ichoice = menú ('Control de la llum', 'Activa', 'Apaga', 'No importa');
si ichoice == 1
button_controlv2 ()
h = msgbox ('Fet !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Fet !!!')
elseif ichoice == 3
h = msgbox ('No heu fet res:(') waitfor (h);
h = msgbox ('Fet !!!')
final
waitfor (h);
final
final