Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
Adrien Green, Huy Tran, Jody Walker
L'uso di un computer Raspberry Pi e Matlab è un modo semplice ed efficace per aiutare i proprietari di case a ridurre il consumo di energia. La parte migliore di Energy Saver 3000 è che è molto semplice da configurare e utilizzare. Lo scopo principale dell'Energy Saver 3000 è quello di consentire ai proprietari di casa di tenere traccia della bolletta energetica per vedere quanto stanno spendendo e di consentire ai proprietari di casa di spegnere le luci nelle loro case a distanza con la semplice pressione di un pulsante.
Passaggio 1: parti utilizzate
1: computer Raspberry Pi
2: tagliere
3: fili del ponticello
4: pulsante
5: Mini luci a LED
6: 330 ohm, 10 Kohm e un resistore da 300 ohm
7: Cavo Ethernet
8: fotocellula luce
Passaggio 2: dichiarazione del problema
Il nostro progetto era progettare un risparmio energetico domestico utilizzando un computer Raspberry Pi e MATLAB. Il nostro obiettivo era creare un sistema che consentisse agli utenti di tenere traccia della bolletta energetica per vedere se potevano ridurre il consumo energetico. Volevamo anche che gli utenti fossero in grado di spegnere le luci mentre erano via premendo un pulsante. Per fare ciò, abbiamo collegato una fotocellula per rilevare quando le luci sono accese. Se le luci sono accese, il programma MATLAB calcolerà da quanto tempo sono accese e quanta energia e denaro sono stati spesi da quando sono state accese.
Passaggio 3: configurazione
Collegare la breadboard come mostrato nell'immagine sopra.
Passaggio 4: codice MATLAB per il controllo della fotocellula
funzione control_light()rpi = raspi();
writeDigitalPin(rpi, 12, 1)
tempo = 0
sommacosto = 0
Tempo = 0
Costo = 0
lampadina = 100/1000;% kilowatt
per i = 1:2
tic
mentre vero
x = readDigitalPin(rpi, 13)
se x == 1
writeDigitalPin(rpi, 19, 1)
altrimenti se x == 0
writeDigitalPin(rpi, 19, 0)
toc;
tempo = tempo + toc
kwh = toc * bulbo
dollari = 0.101
costo = kwh * dollari
sommacosto = sommacosto + costo
X = linspace(Tempo, tempo, 10)
Y = linspace(Costo, sommacosto, 10)
Tempo = tempo
Costo = sommacosto
disp(['La luce è stata accesa per ', num2str(toc), ' ore. Costo = $', num2str(costo)])
plot(X, Y, 'b') title('Costo nel tempo')
xlabel('Tempo (Ore)')
ylabel('Costo ($Dollari)')
aspettare
rottura
fine
fine
pausa(5)
tic
mentre vero
x = readDigitalPin(rpi, 13)
se x == 1
writeDigitalPin(rpi, 19, 1)
altrimenti se x == 0
writeDigitalPin(rpi, 19, 0)
toc;
tempo = Tempo + toc
kwh = toc * bulbo
dollari = 0.101
costo = kwh * dollari
sumcost = Costo + costo
X = linspace(Tempo, tempo, 10)
Y = linspace(Costo, sommacosto, 10)
Tempo = tempo
Costo = sommacosto
disp(['La luce è stata accesa per ', num2str(toc), ' ore. Costo = $', num2str(costo)])
plot(X, Y, 'g')
title('Costo nel tempo')
xlabel('Tempo (Ore)')
ylabel('Costo ($Dollari)')
aspettare
rottura
fine
fine
pausa(5)
fine
Passaggio 5: codice MATLAB per spegnere le luci
funzione button_controlv1()
rpi = raspi();
condi = 1;
mentre true % crea un ciclo infinito per mantenere il codice in esecuzione
button = readDigitalPin(rpi, 6); % Legge il valore della pressione del pulsante sul pin 6
se pulsante == 0
condi = condi + 1
fine
se mod(condi, 2) == 0
writeDigitalPin(rpi, 17, 0)
h = msgbox('Hai spento la luce.:)') waitfor(h);
rottura
fine
se mod(condi, 2) == 1
writeDigitalPin(rpi, 17, 1)
fine
fine
Passaggio 6: codice MATLAB per accendere le luci
funzione button_controlv2()
rpi = raspi();
condi = 2;
mentre true % crea un ciclo infinito per mantenere il codice in esecuzione
button = readDigitalPin(rpi, 6); % Legge il valore della pressione del pulsante sul pin 6
se pulsante == 0
condi = condi + 1
fine
se mod(condi, 2) == 0
writeDigitalPin(rpi, 17, 0)
fine
se mod(condi, 2) == 1
writeDigitalPin(rpi, 17, 1)
h = msgbox('Hai acceso la luce.:(')
aspetta(h);
pausa(10)
rottura
fine
fine
Passaggio 7: codice MATLAB per GUI
funzione EnergySaver3000()
imgurl='https://clipart-library.com/images/pc585dj9i.jpg';
imgfile='Lampadina.jpg'; urlwrite(imgurl, imgfile);
imgdata= imread(imgfile);
h=msgbox('Benvenuto in Energy Saver 3000!', '', 'custom', imgdata);
aspetta(h);
chiara h;
mentre vero
iprogram=menu('Quale programma vuoi eseguire?', 'Calcolatrice', 'Controllo luci');
se iprogramma==1
control_light() h=msgbox('Fatto!!!')
chiudi tutto
altrimenti
iprogramma==2
fine
chiara h;
ichoice=menu('Controllo luci', 'Accendi', 'Spegni', 'Non importa');
se ichoice == 1
button_controlv2()
h=msgbox('Fatto!!!')
altrimenti se scelta ==2
button_controlv1()
h=msgbox('Fatto!!!')
altrimenti se ichoice==3
h=msgbox('Non hai fatto niente:(') waitfor(h);
h=msgbox('Fatto!!!')
fine
aspetta(h);
fine
fine