Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Adrien Green, Huy Tran, Jody Walker
L'utilisation d'un ordinateur Raspberry Pi et de Matlab est un moyen simple et efficace d'aider les propriétaires à réduire leur consommation d'énergie. La meilleure partie de l'Energy Saver 3000 est qu'il est très simple à configurer et à utiliser. L'objectif principal de l'Energy Saver 3000 est de permettre aux propriétaires de suivre leur facture d'énergie pour voir combien ils dépensent, et de permettre aux propriétaires d'éteindre les lumières de leur maison à distance en appuyant sur un bouton.
Étape 1: Pièces utilisées
1: ordinateur Raspberry Pi
2: Planche à pain
3: Fils de cavalier
4: bouton poussoir
5: Mini lumières LED
6: 330 ohm, 10 Kohm et une résistance de 300 ohm
7: Câble Ethernet
8: Cellule photoélectrique lumineuse
Étape 2: Énoncé du problème
Notre projet consistait à concevoir un économiseur d'énergie domestique à l'aide d'un ordinateur Raspberry Pi et de MATLAB. Notre objectif était de créer un système permettant aux utilisateurs de suivre leur facture d'énergie pour voir s'ils peuvent réduire leur consommation d'énergie. Nous voulions également que les utilisateurs puissent éteindre leurs lumières pendant leur absence en appuyant sur un bouton. Pour ce faire, nous avons câblé une cellule photoélectrique pour détecter quand les lumières sont allumées. Si les lumières sont allumées, le programme MATLAB calculera depuis combien de temps elles sont allumées et combien d'énergie et d'argent ont été dépensées depuis qu'elles sont allumées.
Étape 3: configuration
Câblez la planche à pain comme indiqué sur l'image ci-dessus.
Étape 4: Code MATLAB pour contrôler la cellule photoélectrique
fonction control_light()rpi = raspi();
écrireDigitalPin(rpi, 12, 1)
temps = 0
coût total = 0
Temps = 0
Coût = 0
ampoule = 100/1000;% kilowatts
pour i = 1:2
tic
bien que vrai
x = readDigitalPin(rpi, 13)
si x == 1
écrireDigitalPin(rpi, 19, 1)
sinon si x == 0
écrireDigitalPin(rpi, 19, 0)
toc;
temps = temps + toc
kwh = toc * ampoule
dollars = 0,101
coût = kwh * dollars
sumcost = sumcost + coût
X = linspace(Temps, temps, 10)
Y = linspace(Coût, sumcost, 10)
Temps = temps
Coût = coût total
disp(['La lumière a été allumée pendant ', num2str(toc), ' heures. Coût = $', num2str(cost)])
plot(X, Y, 'b') title('Coût au fil du temps')
xlabel('Temps (Heures)')
ylabel('Coût ($Dollars)')
attendez
Pause
finir
finir
pause(5)
tic
bien que vrai
x = readDigitalPin(rpi, 13)
si x == 1
écrireDigitalPin(rpi, 19, 1)
sinon si x == 0
écrireDigitalPin(rpi, 19, 0)
toc;
temps = temps + toc
kwh = toc * ampoule
dollars = 0,101
coût = kwh * dollars
sumcost = coût + coût
X = linspace(Temps, temps, 10)
Y = linspace(Coût, sumcost, 10)
Temps = temps
Coût = coût total
disp(['La lumière a été allumée pendant ', num2str(toc), ' heures. Coût = $', num2str(cost)])
tracer (X, Y, 'g')
title('Coût au fil du temps')
xlabel('Temps (Heures)')
ylabel('Coût ($Dollars)')
attendez
Pause
finir
finir
pause(5)
finir
Étape 5: Code MATLAB pour éteindre les lumières
fonction button_controlv1()
rpi = raspi();
condition = 1;
tandis que true % crée une boucle infinie pour maintenir le code en cours d'exécution
bouton = readDigitalPin(rpi, 6); % Lit la valeur d'appui sur le bouton sur la broche 6
si bouton == 0
conditions = conditions + 1
finir
si mod(condition, 2) == 0
écrireDigitalPin(rpi, 17, 0)
h = msgbox('Vous avez éteint la lumière.:)') waitfor(h);
Pause
finir
si mod(condition, 2) == 1
écrireDigitalPin(rpi, 17, 1)
finir
finir
Étape 6: Code MATLAB pour allumer les lumières
fonction button_controlv2()
rpi = raspi();
conditions = 2;
tandis que true % crée une boucle infinie pour maintenir le code en cours d'exécution
bouton = readDigitalPin(rpi, 6); % Lit la valeur d'appui sur le bouton sur la broche 6
si bouton == 0
conditions = conditions + 1
finir
si mod(condition, 2) == 0
écrireDigitalPin(rpi, 17, 0)
finir
si mod(condition, 2) == 1
écrireDigitalPin(rpi, 17, 1)
h = msgbox('Vous avez allumé la lumière.:(')
attendre(h);
pause(10)
Pause
finir
finir
Étape 7: Code MATLAB pour l'interface graphique
fonction EnergySaver3000()
imgurl='https://clipart-library.com/images/pc585dj9i.jpg';
imgfile='Ampoule.jpg'; urlwrite(imgurl, imgfile);
imgdata=imread(imgfile);
h=msgbox('Bienvenue dans Energy Saver 3000 !', '', 'custom', imgdata);
attendre(h);
effacer h;
bien que vrai
iprogram=menu('Quel programme voulez-vous exécuter ?', 'Calculateur de facture', 'Contrôle de la lumière');
si iprogramme==1
control_light() h=msgbox('Terminé !!!')
ferme tout
sinon
iprogramme==2
finir
effacer h;
ichoice=menu('Contrôle de la lumière', 'Activer', 'Désactiver', 'Peu importe');
si ichoix == 1
button_controlv2()
h=msgbox('Terminé !!!')
sinon si je choisis ==2
button_controlv1()
h=msgbox('Terminé !!!')
sinon si ichoix==3
h=msgbox('Vous n'avez rien fait:(') waitfor(h);
h=msgbox('Terminé !!!')
finir
attendre(h);
finir
finir