Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Adrien Green, Huy Tran, Jody Walker
Korzystanie z komputera Raspberry Pi i Matlaba to prosty i skuteczny sposób na pomoc właścicielom domów w zmniejszeniu zużycia energii. Najlepszą częścią Energy Saver 3000 jest to, że jest bardzo prosty w konfiguracji i obsłudze. Głównym celem Energy Saver 3000 jest umożliwienie właścicielom domów śledzenie ich rachunków za energię, aby zobaczyć, ile wydają, oraz umożliwienie właścicielom domów zdalne wyłączanie światła w tych domach za naciśnięciem przycisku.
Krok 1: Używane części
1: komputer Raspberry Pi
2: Deska do krojenia chleba
3: przewody połączeniowe
4: przycisk
5: Mini światła LED
6: 330 omów, 10 Kohm i rezystor 300 omów
7: kabel Ethernet
8: fotokomórka świetlna
Krok 2: Stwierdzenie problemu
Nasz projekt polegał na zaprojektowaniu domowego oszczędzacza energii z wykorzystaniem komputera Raspberry Pi i MATLAB. Naszym celem było zbudowanie systemu, który umożliwi użytkownikom śledzenie rachunków za energię, aby sprawdzić, czy mogą zmniejszyć zużycie energii. Chcieliśmy również, aby użytkownicy mogli wyłączać światła, gdy ich nie ma, za naciśnięciem jednego przycisku. Aby to zrobić, podłączyliśmy fotokomórkę do wykrywania, kiedy światła są włączone. Jeśli światła są włączone, program MATLAB obliczy, jak długo są włączone i ile energii i pieniędzy wydano od czasu ich włączenia.
Krok 3: Konfiguracja
Podłącz płytkę stykową, jak pokazano na powyższym obrazku.
Krok 4: Kod MATLAB do sterowania fotokomórką
funkcja control_light()rpi = raspi();
writeDigitalPin(rpi, 12, 1)
czas = 0
koszt sumaryczny = 0
Czas = 0
Koszt = 0
żarówka = 100/1000;% kilowatów
dla i = 1:2
tik
podczas gdy prawda
x = odczytajPinCyfrowy(rpi, 13)
jeśli x == 1
writeDigitalPin(rpi, 19, 1)
elseif x == 0
writeDigitalPin(rpi, 19, 0)
toc;
czas = czas + toc
kwh = toc * żarówka
dolarów = 0,101
koszt = kwh * dolary
koszt sumy = koszt sumy + koszt
X = linspace (czas, czas, 10)
Y = linspace(Koszt, koszt sumy, 10)
Czas = czas
Koszt = koszt sumy
disp(['Światło było włączone przez ', num2str(toc), ' godzin. Koszt = $', num2str(koszt)])
plot(X, Y, 'b') title('Koszt w czasie')
xlabel('Czas (godziny)')
ylabel('Koszt ($Dolary)')
trzymać się
przerwa
kończyć się
kończyć się
pauza(5)
tik
podczas gdy prawda
x = odczytajPinCyfrowy(rpi, 13)
jeśli x == 1
writeDigitalPin(rpi, 19, 1)
elseif x == 0
writeDigitalPin(rpi, 19, 0)
toc;
czas = czas + toc
kwh = toc * żarówka
dolarów = 0,101
koszt = kwh * dolary
sumcost = Koszt + koszt
X = linspace (czas, czas, 10)
Y = linspace(Koszt, koszt sumy, 10)
Czas = czas
Koszt = koszt sumy
disp(['Światło było włączone przez ', num2str(toc), ' godzin. Koszt = $', num2str(koszt)])
działka(X, Y, 'g')
title('Koszt w czasie')
xlabel('Czas (godziny)')
ylabel('Koszt ($Dolary)')
trzymać się
przerwa
kończyć się
kończyć się
pauza(5)
kończyć się
Krok 5: Kod MATLAB do wyłączania świateł
funkcja button_controlv1()
rpi = raspi();
warunek = 1;
podczas gdy true % tworzy nieskończoną pętlę, aby utrzymać działanie kodu
przycisk = odczytajPinCyfrowy(rpi, 6); % Odczytuje wartość naciśnięcia przycisku na pinie 6
jeśli przycisk == 0
warunek = warunek + 1
kończyć się
jeśli mod(warunki, 2) == 0
writeDigitalPin(rpi, 17, 0)
h = msgbox('Wyłączyłeś światło.:)') waitfor(h);
przerwa
kończyć się
jeśli mod(warunek, 2) == 1
writeDigitalPin(rpi, 17, 1)
kończyć się
kończyć się
Krok 6: Kod MATLAB do włączania świateł
funkcja button_controlv2()
rpi = raspi();
warunki = 2;
podczas gdy true % tworzy nieskończoną pętlę, aby utrzymać działanie kodu
przycisk = przeczytajPinCyfrowy(rpi, 6); % Odczytuje wartość naciśnięcia przycisku na pinie 6
jeśli przycisk == 0
warunek = warunek + 1
kończyć się
jeśli mod(warunki, 2) == 0
writeDigitalPin(rpi, 17, 0)
kończyć się
jeśli mod(warunki, 2) == 1
writeDigitalPin(rpi, 17, 1)
h = msgbox('Włączyłeś światło.:(')
czekaj na(h);
pauza(10)
przerwa
kończyć się
kończyć się
Krok 7: Kod MATLAB dla GUI
funkcja EnergySaver3000()
imgurl='https://clipart-library.com/images/pc585dj9i.jpg';
imgfile='Żarówka.jpg'; urlwrite(imgurl, plik img);
imgdata= odczyt(plik img);
h=msgbox('Witamy w Energy Saver 3000!', '', 'custom', imgdata);
czekaj na(h);
jasne godz.;
podczas gdy prawda
iprogram=menu('Który program chcesz uruchomić?', 'Kalkulator rachunków', 'Sterowanie oświetleniem');
jeśli iprogram==1
control_light() h=msgbox('Gotowe!!!')
zamknij wszystko
elseif
iprogram==2
kończyć się
jasne godz.;
ichoice=menu('Sterowanie światłem', 'Włącz', 'Wyłącz', 'Nieważne');
jeśli ichoice == 1
button_controlv2()
h=msgbox('Gotowe!!!')
elseif ichoice ==2
button_controlv1()
h=msgbox('Gotowe!!!')
elseif ichoice==3
h=msgbox('Nic nie zrobiłeś:(') waitfor(h);
h=msgbox('Gotowe!!!')
kończyć się
czekaj na(h);
kończyć się
kończyć się