Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Adrien Green, Huy Tran, Jody Walker
Uporaba računalnika Raspberry Pi in Matlab je preprost in učinkovit način, da lastnikom stanovanj pomagate zmanjšati porabo energije. Najboljši del Energy Saver 3000 je, da je zelo enostaven za nastavitev in uporabo. Glavni namen Energy Saver 3000 je omogočiti lastnikom stanovanj, da lahko spremljajo svoje račune za energijo, da vidijo, koliko porabijo, in lastnikom stanovanj omogočijo, da s pritiskom na gumb na daljavo ugasnejo luči v domovih.
Korak: Uporabljeni deli
1: računalnik Raspberry Pi
2: Ogledna plošča
3: Mostične žice
4: Pritisnite gumb
5: Mini LED luči
6: 330 ohm, 10 Kohm in upor 300 ohmov
7: Ethernetni kabel
8: Svetlobna fotocelica
2. korak: Izjava o težavi
Naš projekt je bil načrtovati varčevanje z energijo doma z računalnikom Raspberry Pi in MATLAB. Naš cilj je bil zgraditi sistem, ki bo uporabnikom omogočil, da spremljajo svoje račune za energijo in ugotovijo, ali lahko zmanjšajo porabo energije. Želeli smo tudi, da bi uporabniki lahko s pritiskom na gumb ugasnili luči. V ta namen smo priključili fotocelico, da zazna, kdaj svetijo luči. Če luči svetijo, program MATLAB izračuna, koliko časa so prižgane in koliko energije in denarja je bilo porabljenih, odkar so prižgane.
3. korak: Nastavitev
Ožičite ploščo, kot je prikazano na zgornji sliki.
4. korak: Koda MATLAB za nadzor fotocelice
funkcija control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
čas = 0
skupni strošek = 0
Čas = 0
Cena = 0
žarnica = 100/1000;% kilovatov
za i = 1: 2
tic
medtem ko je res
x = readDigitalPin (rpi, 13)
če je x == 1
writeDigitalPin (rpi, 19, 1)
sicer x == 0
writeDigitalPin (rpi, 19, 0)
toc;
čas = čas + toc
kwh = toc * žarnica
dolarjev = 0,101
stroški = kwh * dolarjev
sumcost = skupni strošek + stroški
X = linspace (čas, čas, 10)
Y = linspace (stroški, skupni stroški, 10)
Čas = čas
Cena = skupni strošek
disp (['Luč je bila prižgana za', num2str (toc), 'ure. Stroški = $', num2str (stroški)])
zaplet (X, Y, 'b') naslov ('Stroški s časom')
xlabel ('Čas (ure)')
ylabel ('Cena (dolarjev)')
počakaj
prekiniti
konec
konec
premor (5)
tic
medtem ko je res
x = readDigitalPin (rpi, 13)
če je x == 1
writeDigitalPin (rpi, 19, 1)
sicer x == 0
writeDigitalPin (rpi, 19, 0)
toc;
čas = čas + toc
kwh = toc * žarnica
dolarjev = 0,101
stroški = kwh * dolarjev
sumcost = stroški + stroški
X = linspace (čas, čas, 10)
Y = linspace (stroški, skupni stroški, 10)
Čas = čas
Cena = skupni strošek
disp (['Luč je bila prižgana za', num2str (toc), 'ure. Stroški = $', num2str (stroški)])
ploskev (X, Y, 'g')
title ('Stroški sčasoma')
xlabel ('Čas (ure)')
ylabel ('Cena (dolarji)')
počakaj
prekiniti
konec
konec
premor (5)
konec
5. korak: Koda MATLAB za izklop luči
funkcijski gumb_kontrolv1 ()
rpi = raspi ();
condi = 1;
medtem ko true % ustvari neskončno zanko, da bo koda delovala
button = readDigitalPin (rpi, 6); % Prebere vrednost pritiska gumba na zatiču 6
če je gumb == 0
condi = condi + 1
konec
če je mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Ugasnil si luč.:)') waitfor (h);
prekiniti
konec
če je mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
konec
konec
6. korak: Koda MATLAB za vklop luči
funkcijski gumb_kontrolv2 ()
rpi = raspi ();
condi = 2;
medtem ko true % ustvari neskončno zanko, da bo koda delovala
button = readDigitalPin (rpi, 6); % Prebere vrednost pritiska gumba na zatiču 6
če je gumb == 0
condi = condi + 1
konec
če je mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
konec
če je mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Prižgal si luč.:(')
počakajte (h);
premor (10)
prekiniti
konec
konec
Korak 7: Koda MATLAB za grafični vmesnik
funkcija EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Žarnica.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Dobrodošli v programu Energy Saver 3000!', '', 'custom', imgdata);
počakajte (h);
jasno h;
medtem ko je res
iprogram = menu ('Kateri program želite izvajati?', 'Kalkulator računa', 'Nadzor svetlobe');
če je iprogram == 1
control_light () h = msgbox ('Končano !!!')
zaprite vse
drugače
iprogram == 2
konec
jasno h;
ichoice = meni ('Nadzor svetlobe', 'Vklop', 'Izklop', 'Ni važno');
če je ichoice == 1
button_controlv2 ()
h = msgbox ('Končano !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Končano !!!')
elseif ichoice == 3
h = msgbox ('Niste naredili nič:(') waitfor (h);
h = msgbox ('Končano !!!')
konec
počakajte (h);
konec
konec