Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Adrienas Greenas, Huy Tranas, Jody Walkeris
„Raspberry Pi“kompiuterio ir „Matlab“naudojimas yra paprastas ir veiksmingas būdas padėti namų savininkams sumažinti energijos suvartojimą. Geriausia „Energy Saver 3000“dalis yra tai, kad ją labai paprasta nustatyti ir naudoti. Pagrindinis „Energy Saver 3000“tikslas yra leisti namų savininkams stebėti savo sąskaitą už energiją, kad pamatytumėte, kiek jie išleidžia, ir leisti namų savininkams nuotoliniu būdu išjungti apšvietimą namuose paspaudus mygtuką.
1 žingsnis: Naudotos dalys
1: Raspberry Pi kompiuteris
2: Duonos lenta
3: jungiamieji laidai
4: Paspauskite mygtuką
5: Mini LED lemputės
6: 330 omų, 10 Kohm ir 300 omų rezistorius
7: Ethernet kabelis
8: Šviesos fotoelementas
2 žingsnis: problemos pareiškimas
Mūsų projektas buvo suprojektuoti energijos taupymą namuose naudojant „Raspberry Pi“kompiuterį ir MATLAB. Mūsų tikslas buvo sukurti sistemą, leidžiančią vartotojams sekti savo sąskaitą už energiją ir sužinoti, ar jie gali sumažinti energijos suvartojimą. Mes taip pat norėjome, kad vartotojai galėtų išjungti šviesą, kai jų nebėra, paspaudus mygtuką. Norėdami tai padaryti, mes prijungėme fotoelementą, kad suprastume, kada įjungtos šviesos. Jei lemputės dega, programa MATLAB apskaičiuos, kiek laiko jie dega ir kiek energijos ir pinigų buvo išleista nuo jų įjungimo.
3 žingsnis: sąranka
Prijunkite duonos lentą, kaip parodyta paveikslėlyje aukščiau.
4 žingsnis: fotoelementų valdymo MATLAB kodas
funkcija control_light () rpi = raspi ();
writeDigitalPin (rpi, 12, 1)
laikas = 0
suma = 0
Laikas = 0
Kaina = 0
lemputė = 100/1000;% kilovatų
i = 1: 2
tikas
kol tiesa
x = readDigitalPin (rpi, 13)
jei x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
laikas = laikas + toc
kwh = toc * lemputė
dolerių = 0,101
kaina = kwh * dolerių
suma = suma + kaina
X = linspace (laikas, laikas, 10)
Y = linspace (kaina, suma, 10)
Laikas = laikas
Kaina = suma
disp (['Šviesa įjungta', num2str (toc), 'hours. Cost = $', num2str (kaina)])
sklypo (X, Y, „b“) pavadinimas („Kaina per laiką“)
xlabel („Laikas (valandos)“)
ylabel („Kaina (USD)“)
palauk
pertrauka
galas
galas
pauzė (5)
tikas
kol tiesa
x = readDigitalPin (rpi, 13)
jei x == 1
writeDigitalPin (rpi, 19, 1)
elseif x == 0
writeDigitalPin (rpi, 19, 0)
toc;
laikas = laikas + toc
kwh = toc * lemputė
dolerių = 0,101
kaina = kwh * dolerių
suma = kaina + kaina
X = linspace (laikas, laikas, 10)
Y = linspace (kaina, suma, 10)
Laikas = laikas
Kaina = suma
disp (['Šviesa įjungta', num2str (toc), 'hours. Cost = $', num2str (kaina)])
grafikas (X, Y, „g“)
pavadinimas („Kaina per tam tikrą laiką“)
xlabel („Laikas (valandos)“)
ylabel („Kaina (USD)“)
palauk
pertrauka
galas
galas
pauzė (5)
galas
5 veiksmas: MATLAB kodas, skirtas šviesoms išjungti
funkcija button_controlv1 ()
rpi = raspi ();
condi = 1;
o true % sukuria begalinę kilpą, kad kodas veiktų
mygtukas = skaitytiDigitalPin (rpi, 6); % Skaito mygtuko paspaudimo reikšmę 6 kaištyje
jei mygtukas == 0
condi = condi + 1
galas
jei mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Jūs išjungėte šviesą.:)') waitfor (h);
pertrauka
galas
jei mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
galas
galas
6 žingsnis: MATLAB kodas įjungti šviesas
funkcija button_controlv2 ()
rpi = raspi ();
condi = 2;
o true % sukuria begalinę kilpą, kad kodas veiktų
mygtukas = skaitytiDigitalPin (rpi, 6); % Skaito mygtuko paspaudimo reikšmę 6 kaištyje
jei mygtukas == 0
condi = condi + 1
galas
jei mod (condi, 2) == 0
writeDigitalPin (rpi, 17, 0)
galas
jei mod (condi, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Įjungėte šviesą.:(')
laukti (h);
pauzė (10)
pertrauka
galas
galas
7 veiksmas: MATLAB GUI kodas
funkcija „EnergySaver3000“()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Lemputė.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Sveiki atvykę į „Energy Saver 3000“!', '', 'custom', imgdata);
laukti (h);
aiškus h;
kol tiesa
iprogram = menu ('Kurią programą norite paleisti?', 'Sąskaitų skaičiuoklė', 'Šviesos valdymas');
jei iprogram == 1
control_light () h = msgbox ('Atlikta !!!')
uždaryti visus
elseif
iprogram == 2
galas
aiškus h;
ichoice = meniu ('Light Control', 'Turn On', 'Turn Off', 'Nevermind');
jei ichoice == 1
button_controlv2 ()
h = msgbox ('Atlikta !!!')
elseif ichoice == 2
button_controlv1 ()
h = msgbox ('Atlikta !!!')
elseif ichoice == 3
h = msgbox ('Tu nieko nepadarei:(') laukti (h);
h = msgbox ('Atlikta !!!')
galas
laukti (h);
galas
galas