Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Adrien Green, Huy Tran, Jody Walker
Použití počítače Raspberry Pi a Matlab je jednoduchý a účinný způsob, jak pomoci majitelům domů snížit spotřebu energie. Nejlepší na Energy Saver 3000 je, že se velmi snadno nastavuje a používá. Hlavním účelem Energy Saver 3000 je umožnit majitelům domů sledovat své účty za energii, aby zjistili, kolik utrácejí, a umožnit majitelům domů zhasnout světla v domech na dálku stisknutím tlačítka.
Krok 1: Použité díly
1: Počítač Raspberry Pi
2: Breadboard
3: Propojovací vodiče
4: Tlačítko
5: Mini LED světla
6: 330 ohmů, 10 kohmů a odpor 300 ohmů
7: Ethernetový kabel
8: Světelná fotobuňka
Krok 2: Prohlášení o problému
Naším projektem bylo navrhnout domácí šetřič energie pomocí počítače Raspberry Pi a MATLAB. Naším cílem bylo vybudovat systém, který uživatelům umožní sledovat jejich účty za energii, aby zjistili, zda mohou snížit svoji spotřebu energie. Také jsme chtěli, aby uživatelé mohli zhasnout světla, když byli pryč, stisknutím tlačítka. Za tímto účelem jsme zapojili fotobuňku, aby vnímala, kdy jsou světla zapnutá. Pokud jsou světla zapnutá, program MATLAB vypočítá, jak dlouho byly zapnuty a kolik energie a peněz bylo vynaloženo od jejich zapnutí.
Krok 3: Nastavení
Zapojte prkénko, jak je znázorněno na obrázku výše.
Krok 4: Kód MATLAB pro ovládání fotobuňky
funkce control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
čas = 0
součet = 0
Čas = 0
Cena = 0
žárovka = 100/1000;% kilowattů
pro i = 1: 2
tic
zatímco pravda
x = readDigitalPin (rpi, 13)
pokud x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
čas = čas + toc
kwh = toc * žárovka
dolary = 0,111
cena = kwh * dolarů
sumcost = sumcost + náklady
X = linspace (čas, čas, 10)
Y = linspace (cena, sumcost, 10)
Čas = čas
Cena = sumcost
disp (['Světlo svítilo', num2str (toc), 'hodin. Cena = $', num2str (cena)])
plot (X, Y, 'b') title ('Cost Over Time')
xlabel ('Time (Hours)')
ylabel ('Cena ($ dolary)')
vydrž
přestávka
konec
konec
pauza (5)
tic
zatímco pravda
x = readDigitalPin (rpi, 13)
pokud x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
čas = čas + toc
kwh = toc * žárovka
dolary = 0,111
cena = kwh * dolarů
sumcost = Cost + cost
X = linspace (čas, čas, 10)
Y = linspace (cena, sumcost, 10)
Čas = čas
Cena = sumcost
disp (['Světlo svítilo', num2str (toc), 'hodin. Cena = $', num2str (cena)])
děj (X, Y, 'g')
title ('Cost Over Time')
xlabel ('Time (Hours)')
ylabel ('Cena ($ dolary)')
vydrž
přestávka
konec
konec
pauza (5)
konec
Krok 5: Kód MATLAB pro vypínání světel
funkce button_controlv1 ()
rpi = raspi ();
condi = 1;
zatímco true % vytváří nekonečnou smyčku, aby byl kód spuštěn
tlačítko = readDigitalPin (rpi, 6); % Přečte hodnotu stisknutí tlačítka na pinu 6
pokud tlačítko == 0
condi = condi + 1
konec
if mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Zhasli jste světlo.:)') waitfor (h);
přestávka
konec
if mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
konec
konec
Krok 6: Kód MATLAB pro zapnutí světel
funkce button_controlv2 ()
rpi = raspi ();
condi = 2;
zatímco true % vytváří nekonečnou smyčku, aby byl kód spuštěn
tlačítko = readDigitalPin (rpi, 6); % Přečte hodnotu stisknutí tlačítka na pinu 6
pokud tlačítko == 0
condi = condi + 1
konec
if mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
konec
if mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Zapnul jsi světlo.:(')
čekat na (h);
pauza (10)
přestávka
konec
konec
Krok 7: MATLAB kód pro GUI
funkce EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Lightbulb.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Welcome to the Energy Saver 3000!', '', 'custom', imgdata);
čekat na (h);
jasné h;
zatímco pravda
iprogram = menu ('Který program chcete spustit?', 'Účtová kalkulačka', 'Ovládání světla');
pokud iprogram == 1
control_light () h = msgbox ('Hotovo !!!')
zavřít všechny
jinak
iprogram == 2
konec
jasné h;
ichoice = menu ('Ovládání světla', 'Zapnout', 'Vypnout', 'Nevermind');
pokud ichoice == 1
button_controlv2 ()
h = msgbox ('Hotovo !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Hotovo !!!')
elseif ichoice == 3
h = msgbox ('Nic jste neudělali:(') waitfor (h);
h = msgbox ('Hotovo !!!')
konec
čekat na (h);
konec
konec