Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Adrien Green, Huy Tran, Jody Walker
Použitie počítača Raspberry Pi a Matlab je jednoduchý a efektívny spôsob, ako pomôcť majiteľom domov znížiť spotrebu energie. Najlepšie na Energy Saver 3000 je, že je veľmi jednoduché nastaviť a používať. Hlavným účelom programu Energy Saver 3000 je umožniť majiteľom domov sledovať svoje účty za energie a zistiť, koľko míňajú, a umožniť majiteľom domov na diaľku vypnúť osvetlenie v týchto domoch stlačením tlačidla.
Krok 1: Použité diely
1: Počítač Raspberry Pi
2: Breadboard
3: prepojovacie vodiče
4: Tlačidlo
5: Mini LED svetlá
6: 330 ohmov, 10 kohmov a odpor 300 ohmov
7: Ethernetový kábel
8: Svetelná fotobunka
Krok 2: Vyhlásenie o probléme
Našim projektom bolo navrhnúť domácu úsporu energie pomocou počítača Raspberry Pi a MATLAB. Našim cieľom bolo vybudovať systém, ktorý používateľom umožní sledovať svoje účty za energie a zistiť, či môžu znížiť svoju spotrebu energie. Tiež sme chceli, aby používatelia mohli vypnúť svetlá, keď boli preč, stlačením tlačidla. Aby sme to urobili, zapojili sme fotobunku, aby vnímala, kedy svietia svetlá. Ak sú svetlá zapnuté, program MATLAB vypočíta, ako dlho boli zapnuté a koľko energie a peňazí bolo vynaložených od ich rozsvietenia.
Krok 3: Nastavenie
Drôtovú dosku zapojte tak, ako je to znázornené na obrázku vyššie.
Krok 4: Kód MATLAB na ovládanie fotobunky
funkcia control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
čas = 0
súčet = 0
Čas = 0
Cena = 0
žiarovka = 100/1000;% kilowattov
pre i = 1: 2
tic
kým je to pravda
x = readDigitalPin (rpi, 13)
ak x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
čas = čas + toc
kwh = toc * žiarovka
dolárov = 0,111
cena = kwh * dolárov
sumcost = sumcost + náklady
X = linspace (čas, čas, 10)
Y = linspace (cena, sumcost, 10)
Čas = čas
Cena = sumcost
disp (['Svetlo bolo zapnuté', num2str (toc), 'hodiny. Cena = $', num2str (cena)])
názov grafu (X, Y, 'b') ('Náklady v priebehu času')
xlabel ('Čas (hodiny)')
ylabel („Cena (doláre)“)
Počkaj
prestávka
koniec
koniec
pauza (5)
tic
kým je to pravda
x = readDigitalPin (rpi, 13)
ak x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
čas = čas + toc
kwh = toc * žiarovka
dolárov = 0,111
cena = kwh * dolárov
sumcost = náklady + náklady
X = linspace (čas, čas, 10)
Y = linspace (cena, sumcost, 10)
Čas = čas
Cena = sumcost
disp (['Svetlo bolo zapnuté', num2str (toc), 'hodiny. Cena = $', num2str (cena)])
sprisahanie (X, Y, 'g')
názov („Náklady v priebehu času“)
xlabel ('Čas (hodiny)')
ylabel („Cena (doláre)“)
Počkaj
prestávka
koniec
koniec
pauza (5)
koniec
Krok 5: Kód MATLAB na vypnutie svetiel
funkcia button_controlv1 ()
rpi = raspi ();
condi = 1;
zatiaľ čo true % vytvára nekonečnú slučku, aby bol kód spustený
tlačidlo = readDigitalPin (rpi, 6); % Načíta hodnotu stlačenia tlačidla na pine 6
ak tlačidlo == 0
condi = condi + 1
koniec
ak mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Zhasli ste svetlo.:)') waitfor (h);
prestávka
koniec
ak mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
koniec
koniec
Krok 6: Kód MATLAB na zapnutie svetiel
funkcia button_controlv2 ()
rpi = raspi ();
condi = 2;
zatiaľ čo true % vytvára nekonečnú slučku, aby bol kód spustený
tlačidlo = readDigitalPin (rpi, 6); % Načíta hodnotu stlačenia tlačidla na pine 6
ak tlačidlo == 0
condi = condi + 1
koniec
ak mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
koniec
ak mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Zapli ste svetlo.:(')
čakať na (h);
pauza (10)
prestávka
koniec
koniec
Krok 7: Kód MATLAB pre GUI
funkcia EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Lightbulb.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Vitajte v programe Energy Saver 3000!', '', 'custom', imgdata);
čakať na (h);
jasné h;
kým je to pravda
iprogram = ponuka ('Aký program chcete spustiť?', 'Účtovná kalkulačka', 'Ovládanie svetla');
ak iprogram == 1
control_light () h = msgbox ('Hotovo !!!')
zavrieť všetky
ináč Ak
iprogram == 2
koniec
jasné h;
ichoice = ponuka ('Ovládanie svetla', 'Zapnúť', 'Vypnúť', 'Nevermind');
ak ichoice == 1
button_controlv2 ()
h = msgbox („Hotovo !!!“)
elseif ichoice == 2
button_controlv1 ()
h = msgbox („Hotovo !!!“)
elseif ichoice == 3
h = msgbox ('Nič ste neurobili:(') waitfor (h);
h = msgbox („Hotovo !!!“)
koniec
čakať na (h);
koniec
koniec