Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Adrien Grin, Xuy Tran, Jodi Uoker
Raspberry Pi kompyuteri va Matlabdan foydalanish - bu uy egalariga energiya sarfini kamaytirishga yordam beradigan oddiy va samarali usul. Energy Saver 3000 -ning eng yaxshi tomoni shundaki, uni sozlash va ishlatish juda oddiy. Energy Saver 3000 -ning asosiy maqsadi - uy -joy mulkdorlariga qancha xarajat qilayotganlarini bilish uchun o'z hisoblarini kuzatib borish va uy egalariga tugmachani bosib masofadan turib uylarning chiroqlarini o'chirishga ruxsat berish.
1 -qadam: Ishlatilgan qismlar
1: Raspberry Pi kompyuter
2: non paneli
3: o'tish simlari
4: tugmani bosing
5: Mini LED chiroqlar
6: 330 ohm, 10 Kohm va 300 ohmli qarshilik
7: Ethernet kabeli
8: engil fotosel
2 -qadam: Muammo haqida bayonot
Bizning loyihamiz Raspberry Pi kompyuteri va MATLAB yordamida uy energiyasini tejashni loyihalash edi. Bizning maqsadimiz foydalanuvchilarga energiya sarfini kamaytira oladimi yoki yo'qligini bilish uchun energiya hisobini kuzatishga imkon beradigan tizim yaratish edi. Shuningdek, biz foydalanuvchilar tugmachani bosib, yo'q bo'lganda chiroqlarini o'chirib qo'yishini xohlardik. Buning uchun biz chiroqlar yoqilganda sezish uchun fotoselni uladik. Agar chiroqlar yonib tursa, MATLAB dasturi ular qancha vaqt yoqilganligini va qancha vaqtdan beri energiya va pul sarflanganligini hisoblab chiqadi.
3 -qadam: sozlash
Yuqoridagi rasmda ko'rsatilgandek, non panelini sim bilan ulang.
4 -qadam: Fotoselni boshqarish uchun MATLAB kodi
control_light () rpi = raspi () funktsiyasi;
writeDigitalPin (rpi, 12, 1)
vaqt = 0
sumkost = 0
Vaqt = 0
Narxi = 0
lampochka = 100/1000;% kilovatt
i = 1: 2 uchun
tik
rost bo'lsa ham
x = readDigitalPin (rpi, 13)
agar x == 1 bo'lsa
writeDigitalPin (rpi, 19, 1)
boshqa x == 0
writeDigitalPin (rpi, 19, 0)
tok;
vaqt = vaqt + tok
kwh = tok * lampochka
dollar = 0.101
narxi = kVt * dollar
sumkost = sumkost + xarajat
X = linspace (Vaqt, vaqt, 10)
Y = linspace (Narx, sumkost, 10)
Vaqt = vaqt
Narx = sumkost
disp (['Chiroq yondi', num2str (toc), 'soat. Narx = $', son2str (narx)])
syujet (X, Y, "b") sarlavhasi ("Vaqt o'tishi bilan xarajatlar")
xlabel ('Vaqt (soat)')
ylabel ('Narx ($ Dollar)')
to'xtab tur
tanaffus
oxiri
oxiri
pauza (5)
tik
rost bo'lsa ham
x = readDigitalPin (rpi, 13)
agar x == 1 bo'lsa
writeDigitalPin (rpi, 19, 1)
boshqa x == 0
writeDigitalPin (rpi, 19, 0)
tok;
vaqt = Vaqt + tok
kwh = toc * lampochkasi
dollar = 0.101
narxi = kVt * dollar
sumcost = Xarajat + xarajat
X = linspace (Vaqt, vaqt, 10)
Y = linspace (Narx, sumkost, 10)
Vaqt = vaqt
Narx = sumkost
disp (['Chiroq yondi', num2str (toc), 'soat. Narx = $', son2str (narx)])
uchastka (X, Y, 'g')
sarlavha ("Vaqt o'tishi bilan xarajatlar")
xlabel ('Vaqt (soat)')
ylabel ('Narx ($ Dollar)')
to'xtab tur
tanaffus
oxiri
oxiri
pauza (5)
oxiri
5 -qadam: Chiroqlarni o'chirish uchun MATLAB kodi
tugma_controlv1 funktsiyasi ()
rpi = raspi ();
shart = 1;
haqiqiy % esa kodning ishlashini ta'minlash uchun cheksiz pastadir hosil qiladi
tugma = readDigitalPin (rpi, 6); % 6 -tugmachadagi bosish qiymatini o'qiydi
agar tugma == 0 bo'lsa
condi = condi + 1
oxiri
agar mod (shartli, 2) == 0
writeDigitalPin (rpi, 17, 0)
h = msgbox ('Siz yorug'likni o'chirdingiz.:)') kuting (h);
tanaffus
oxiri
agar mod (shartli, 2) == 1
writeDigitalPin (rpi, 17, 1)
oxiri
oxiri
6 -qadam: Chiroqlarni yoqish uchun MATLAB kodi
tugma_controlv2 funktsiyasi ()
rpi = raspi ();
shart = 2;
haqiqiy % esa kodning ishlashini ta'minlash uchun cheksiz pastadir hosil qiladi
tugma = readDigitalPin (rpi, 6); % 6 -tugmachadagi bosish qiymatini o'qiydi
agar tugma == 0 bo'lsa
condi = condi + 1
oxiri
agar mod (shartli, 2) == 0
writeDigitalPin (rpi, 17, 0)
oxiri
agar mod (shartli, 2) == 1
writeDigitalPin (rpi, 17, 1)
h = msgbox ('Siz chiroqni yoqdingiz.:(')
kutish (h);
pauza (10)
tanaffus
oxiri
oxiri
7 -qadam: GUI uchun MATLAB kodi
EnergySaver3000 funktsiyasi ()
imgurl = 'https://clipart-library.com/images/pc585dj9i.jpg';
imgfile = 'Lampochka.jpg'; urlwrite (imgurl, imgfile);
imgdata = imread (imgfile);
h = msgbox ('Energy Saver 3000 ga xush kelibsiz!', ',' custom ', imgdata);
kutish (h);
aniq h;
rost bo'lsa ham
iprogram = menyu ('Qaysi dasturni ishga tushirishni xohlaysiz?', 'Hisob -kitob kalkulyatori', 'Yorug'likni boshqarish');
agar iprogram == 1 bo'lsa
control_light () h = msgbox ("Bajarildi !!!")
hammasini yoping
boshqa
iprogram == 2
oxiri
aniq h;
ichoice = menyu ("Yorug'likni boshqarish", "Yoqish", "O'chirish", "Hech qachon");
agar ichoice == 1
tugma_controlv2 ()
h = msgbox ("Bajarildi !!!")
elseif ichoice == 2
tugma_controlv1 ()
h = msgbox ("Bajarildi !!!")
elseif ichoice == 3
h = msgbox ('Siz hech narsa qilmadingiz:(') kuting (h);
h = msgbox ("Bajarildi !!!")
oxiri
kutish (h);
oxiri
oxiri