INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Adrien Green, Huy Tran, Jody Walker
Die gebruik van 'n Raspberry Pi -rekenaar en Matlab is 'n eenvoudige en effektiewe manier om huiseienaars te help om die energieverbruik daar te verminder. Die beste deel van die Energy Saver 3000 is dat dit baie eenvoudig is om op te stel en te gebruik. Die hoofdoel van die Energy Saver 3000 is om huiseienaars in staat te stel om hul energierekening te volg om te sien hoeveel hulle spandeer, en om huiseienaars in staat te stel om die ligte in huise op afstand met 'n druk van 'n knoppie af te skakel.
Stap 1: Onderdele gebruik
1: Raspberry Pi -rekenaar
2: Broodbord
3: Springdrade
4: drukknop
5: Mini LED -ligte
6: 330 ohm, 10 Kohm en 'n weerstand van 300 ohm
7: Ethernet -kabel
8: Lig fotosel
Stap 2: Probleemstelling
Ons projek was om 'n energiebesparing vir die huis te ontwerp met 'n Raspberry Pi -rekenaar en MATLAB. Ons doel was om 'n stelsel te bou waarmee gebruikers hul energierekening kan volg om te sien of hulle hul energieverbruik kan verminder. Ons wou ook hê dat gebruikers hul ligte kan afskakel terwyl hulle met 'n druk op die knoppie weg was. Om dit te doen, het ons 'n fotosel aangeskakel om te sien wanneer die ligte aan is. As die ligte aan is, sal die MATLAB -program bereken hoe lank hulle aan is en hoeveel energie en geld bestee is sedert hulle aangeskakel is.
Stap 3: Opstel
Draai die broodbord vas soos in die prent hierbo getoon.
Stap 4: MATLAB -kode vir die beheer van die fotosel
funksie control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
tyd = 0
somkoste = 0
Tyd = 0
Koste = 0
gloeilamp = 100/1000;% kilowatt
vir i = 1: 2
tiek
terwyl dit waar is
x = readDigitalPin (rpi, 13)
as x == 1
writeDigitalPin (rpi, 19, 1)
andersif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
tyd = tyd + toc
kwh = toc * gloeilamp
dollar = 0.101
koste = kwh * dollars
somkoste = somkoste + koste
X = linspace (Tyd, tyd, 10)
Y = linspace (koste, somprys, 10)
Tyd = tyd
Koste = somprys
disp (['Light is on for', num2str (toc), 'hours. Cost = $', num2str (cost)])
plot (X, Y, 'b') titel ('Koste oor tyd')
xlabel ('Tyd (ure)')
ylabel ('Koste ($ dollar)')
hou vas
breek
einde
einde
pouse (5)
tiek
terwyl dit waar is
x = readDigitalPin (rpi, 13)
as x == 1
writeDigitalPin (rpi, 19, 1)
andersif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
tyd = Tyd + toc
kwh = toc * gloeilamp
dollar = 0.101
koste = kwh * dollars
somkoste = Koste + koste
X = linspace (tyd, tyd, 10)
Y = linspace (koste, somprys, 10)
Tyd = tyd
Koste = somprys
disp (['Light is on for', num2str (toc), 'hours. Cost = $', num2str (cost)])
plot (X, Y, 'g')
titel ('Koste oor tyd')
xlabel ('Tyd (ure)')
ylabel ('Koste (dollar)')
hou vas
breek
einde
einde
pouse (5)
einde
Stap 5: MATLAB -kode om ligte uit te skakel
funksie button_controlv1 ()
rpi = raspi ();
kondisie = 1;
terwyl ware % 'n oneindige lus skep om die kode aan die gang te hou
knoppie = readDigitalPin (rpi, 6); % Lees die druk van die knoppie op pen 6
as knoppie == 0
condi = condi + 1
einde
as mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('U het die lig afgeskakel.:)') wag vir (h);
breek
einde
as mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
einde
einde
Stap 6: MATLAB -kode om ligte aan te skakel
funksie button_controlv2 ()
rpi = raspi ();
kondisie = 2;
terwyl ware % 'n oneindige lus skep om die kode aan die gang te hou
knoppie = readDigitalPin (rpi, 6); % Lees die druk van die knoppie op pen 6
as knoppie == 0
condi = condi + 1
einde
as mod (kondi, 2) == 0
writeDigitalPin (rpi, 17, 0)
einde
as mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('U het die lig aangeskakel.:(')
wag (h);
pouse (10)
breek
einde
einde
Stap 7: MATLAB -kode vir GUI
funksie EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Gloeilamp.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Welcome to the Energy Saver 3000!', '', 'custom', imgdata);
wag (h);
duidelik h;
terwyl dit waar is
iprogram = menu ('Watter program wil u uitvoer?', 'Bill Calculator', 'Light Control');
as iprogram == 1
control_light () h = msgbox ('Klaar !!!')
sluit almal
Anders as
iprogram == 2
einde
duidelik h;
ichoice = menu ('Light Control', 'Turn On', 'Turn Off', 'Nevermind');
as ichoice == 1
button_controlv2 ()
h = msgbox ('Klaar !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Klaar !!!')
elseif ichoice == 3
h = msgbox ('U het niks gedoen nie:(') wag vir (h);
h = msgbox ('Klaar !!!')
einde
wag (h);
einde
einde