Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Adrien Green, Huy Tran, Jody Walker
Ang paggamit ng isang Raspberry Pi computer at Matlab ay isang simple at mabisang paraan upang matulungan ang mga may-ari ng bahay na mabawasan doon ang pagkonsumo ng enerhiya. Ang pinakamagandang bahagi tungkol sa Energy Saver 3000 ay napaka-simpleng i-set up at gamitin. Ang pangunahing layunin ng Energy Saver 3000 ay upang payagan ang mga may-ari ng bahay na subaybayan ang kanilang singil sa enerhiya upang makita kung magkano ang kanilang ginagastos, at payagan ang mga may-ari ng bahay na patayin ang mga ilaw sa mga bahay doon nang malayuan sa isang pagpindot ng isang pindutan.
Hakbang 1: Mga Ginamit na Bahagi
1: Raspberry Pi computer
2: Breadboard
3: Mga wire ng lumulukso
4: Push button
5: Mini LED lights
6: 330 ohm, 10 Kohm, at isang resistor na 300 ohm
7: Ethernet Cable
8: Magaan na photocell
Hakbang 2: Paglalahad ng Suliranin
Ang aming proyekto ay upang magdisenyo ng isang enerhiya saver sa bahay gamit ang isang Raspberry Pi computer at MATLAB. Ang aming layunin ay upang bumuo ng isang sistema na pinapayagan ang mga gumagamit na subaybayan ang kanilang singil sa enerhiya upang makita kung maaari nilang mabawasan ang kanilang pagkonsumo ng enerhiya. Nais din namin na ma-patay ng mga gumagamit ang kanilang mga ilaw habang nawala sila gamit ang isang pagpindot sa isang pindutan. Upang magawa ito, nag-wire kami ng isang photocell upang maunawaan kapag nakabukas ang mga ilaw. Kung ang mga ilaw ay nakabukas, ang programa ng MATLAB ay makakalkula kung gaano katagal sila naging at kung magkano ang enerhiya at pera na ginugol mula noong sila ay nagsara.
Hakbang 3: Pag-setup
Wire up ang breadboard tulad ng ipinakita sa Larawan sa itaas.
Hakbang 4: MATLAB Code para sa Pagkontrol sa Photocell
control control_light () rpi = raspi ();
isulatDigitalPin (rpi, 12, 1)
oras = 0
sumcost = 0
Oras = 0
Gastos = 0
bombilya = 100/1000;% kilowatt
para sa i = 1: 2
tic
habang totoo
x = readDigitalPin (rpi, 13)
kung x == 1
isulatDigitalPin (rpi, 19, 1)
kung hindi man x == 0
isulatDigitalPin (rpi, 19, 0)
toc;
oras = oras + toc
kwh = toc * bombilya
dolyar = 0.101
gastos = kwh * dolyar
sumcost = sumcost + gastos
X = linspace (Oras, oras, 10)
Y = linspace (Gastos, sumcost, 10)
Oras = oras
Gastos = sumcost
disp (['Ang ilaw ay nakabukas para sa', num2str (toc), 'mga oras. Gastos = $', num2str (gastos)])
plot (X, Y, 'b') pamagat ('Cost Over Time')
xlabel ('Oras (Oras)')
ylabel ('Gastos ($ Dollars)')
hawakan mo
pahinga
magtapos
magtapos
i-pause (5)
tic
habang totoo
x = readDigitalPin (rpi, 13)
kung x == 1
isulatDigitalPin (rpi, 19, 1)
kung hindi man x == 0
isulatDigitalPin (rpi, 19, 0)
toc;
oras = Oras + toc
kwh = toc * bombilya
dolyar = 0.101
gastos = kwh * dolyar
sumcost = Gastos + gastos
X = linspace (Oras, oras, 10)
Y = linspace (Gastos, sumcost, 10)
Oras = oras
Gastos = sumcost
disp (['Ang ilaw ay nakabukas para sa', num2str (toc), 'mga oras. Gastos = $', num2str (gastos)])
balangkas (X, Y, 'g')
pamagat ('Cost Over Time')
xlabel ('Oras (Oras)')
ylabel ('Gastos ($ Dollars)')
hawakan mo
pahinga
magtapos
magtapos
i-pause (5)
magtapos
Hakbang 5: MATLAB Code para sa Pag-patay ng Mga Ilaw
function button_controlv1 ()
rpi = raspi ();
condi = 1;
habang ang totoong% ay lumilikha ng isang walang katapusang loop upang mapanatili ang pagpapatakbo ng code
pindutan = readDigitalPin (rpi, 6); % Basahin ang pindutan ng pindutin ang halaga sa pin 6
kung pindutan == 0
condi = condi + 1
magtapos
kung mod (condi, 2) == 0
isulatDigitalPin (rpi, 17, 0)
h = msgbox ('Pinatay mo ang ilaw.:)') waitfor (h);
pahinga
magtapos
kung mod (condi, 2) == 1
isulatDigitalPin (rpi, 17, 1)
magtapos
magtapos
Hakbang 6: MATLAB Code para sa Pag-on ng Mga ilaw
function button_controlv2 ()
rpi = raspi ();
condi = 2;
habang ang totoong% ay lumilikha ng isang walang katapusang loop upang mapanatili ang pagpapatakbo ng code
pindutan = readDigitalPin (rpi, 6); % Binabasa ang pindutan ng pindutin ang halaga sa pin 6
kung pindutan == 0
condi = condi + 1
magtapos
kung mod (condi, 2) == 0
isulatDigitalPin (rpi, 17, 0)
magtapos
kung mod (condi, 2) == 1
isulatDigitalPin (rpi, 17, 1)
h = msgbox ('Binuksan mo ang ilaw.:(')
waitfor (h);
i-pause (10)
pahinga
magtapos
magtapos
Hakbang 7: MATLAB Code para sa GUI
pag-andar EnergySaver3000 ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Lightbulb.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Maligayang pagdating sa Energy Saver 3000!', '', 'pasadyang', imgdata);
waitfor (h);
malinaw h;
habang totoo
iprogram = menu ('Aling Programang Gusto Mong Patakbuhin?', 'Bill Calculator', 'Light Control');
kung iprogram == 1
control_light () h = msgbox ('Tapos na !!!')
isara lahat
kung hindi man
iprogram == 2
magtapos
malinaw h;
ichoice = menu ('Light Control', 'Turn On', 'Turn Off', 'Nevermind');
kung ichoice == 1
button_controlv2 ()
h = msgbox ('Tapos na !!!')
kung hindi man magaling == 2
button_controlv1 ()
h = msgbox ('Tapos na !!!')
kung hindi man magaling == 3
h = msgbox ('Wala kang ginawa:(') waitfor (h);
h = msgbox ('Tapos na !!!')
magtapos
waitfor (h);
magtapos
magtapos