Table des matières:

EF 230 : Système domestique 3000 Instructable : 4 étapes
EF 230 : Système domestique 3000 Instructable : 4 étapes

Vidéo: EF 230 : Système domestique 3000 Instructable : 4 étapes

Vidéo: EF 230 : Système domestique 3000 Instructable : 4 étapes
Vidéo: 220 В переменного тока от 12 В 90 А Автомобильный генератор переменного тока 1000 Вт DIY 2024, Juillet
Anonim
EF 230: Système domestique 3000 Instructable
EF 230: Système domestique 3000 Instructable

Le Home System 3000 est un appareil qui utilise un Arduino, un capteur de température, un buzzer piézo, un détecteur optique/phototransistor et un servo pour afficher les moyens d'améliorer l'efficacité énergétique de la maison.

Étape 1: Capteur de température

Capteur de température
Capteur de température

· Faites passer vos fils d'alimentation et de terre à partir de

le micro contrôleur sur le côté de la planche à pain

· Placez le capteur de température dans la planche à pain et acheminez les fils d'alimentation et de terre correspondants en conséquence

· Notez que le capteur de température a trois broches et que la broche du milieu a un fil qui part du port "A0".

· Code sonde de température:

réponse = questdlg('Veuillez exécuter le code de démarrage arduino et servo', 'réponse', 'Ok', 'Ok')

prompt = 'Appuyez sur n'importe quelle touche pour commencer'

pause

prompt1 = 'Régler la température minimale'

x = entrée (invite1)

prompt2 = 'Définir la température maximale'

y = entrée (invite2)

prompt3 = 'appuyez sur n'importe quelle touche pour commencer'

pause

chiffre

h = ligne animée;

hache = gca;

ax. YGrid = 'on';

ax. YLim = [65 85];

arrêt = faux;

startTime = datetime('maintenant');

tandis que ~ arrête

% Lire la valeur de tension actuelle

v = readTension(a, 'A0');

% Calculer la température à partir de la tension (basé sur la fiche technique)

TempC = (v - 0,5)*100;

TempF = 9/5*TempC + 32;

% Obtenir l'heure actuelle

t = datetime('maintenant') - startTime;

% Ajouter des points à l'animation

addpoints(h, datenum(t), TempF)

% Mettre à jour les axes

ax. XLim = datenum([t-secondes(15) t]);

datetick('x', 'garder les limites')

dessiner

% Vérifier la condition d'arrêt

stop = readDigitalPin(a, 'D12');

Étape 2: Sonnerie

Avertisseur sonore
Avertisseur sonore

· Fil dans le buzzer qui sera utilisé pour signaler une lecture de température extrêmement élevée ou extrêmement basse

· Aucun fil ne passe de la colonne positive au côté positif du buzzer

· Au lieu de cela, un fil passe du côté positif du buzzer à un port étiqueté "11"

Ceci sera utilisé plus tard pour appeler l'emplacement du buzzer dans le code écrit.

· Code pour buzzer:

si TempF >= y

disp('ferme la porte il fait chaud')

playTone(a, 'D11', 500, 1)

sinon si TempF <= x

disp('ferme la porte, il fait froid')

playTone(a, 'D11', 250, 1)

finir

finir

Étape 3: Détecteur optique/Phototransistor

Détecteur optique/Phototransistor
Détecteur optique/Phototransistor

· Ce capteur nécessite des résistances contrairement aux autres

· Assurez-vous que les quatre broches du capteur sont incluses dans la boucle après avoir branché les fils

· Le capteur détecte un changement de lumière, représentant un mouvement, et l'enregistre en tant qu'entrée

· Code pour détecteur optique/phototransistor:

effacer un

a = arduino('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Bibliothèques', 'Servo');

invite = 'Définir le seuil du niveau de luminosité'

z = entrée (invite)

lightLevel = 0

tandis que lightLevel ~= -1

lightLevel = readVoltage (a, 'A1')

si lightLevel >= z

answer = questdlg('voudriez-vous modifier AC ?', 'Oui', 'Non')

changer de réponse

cas 'Oui'

answer2 = questdlg('Monter ou baisser la climatisation ?', 'Réponse', 'Descente', 'Haut', 'Haut')

changer de réponse2

cas 'Bas'

s = servo(a, 'D10');

pour l'angle = 0:.1:.5

écriturePosition(s, angle);

current_position = readPosition(s);

position_actuelle = position_actuelle * 180;

% imprimer la position actuelle du servomoteur

fprintf('La position actuelle est %d\n', current_position);

% un petit retard est nécessaire pour que le servo puisse être positionné à la

% d'angle qui lui est dit.

pause(2);

finir

% ramener le moteur à la position d'angle 0

écriturePosition(s, 0);

effacer m

prompt = 'Appuyez sur n'importe quelle touche pour continuer'

questdlg('AC refusé', 'réponse', 'Ok', 'Ok')

cas 'Haut'

s = servo(a, 'D10');

pour l'angle =.5:1:1

écriturePosition(s, angle);

current_position = readPosition(s);

position_actuelle = position_actuelle * 180;

% imprimer la position actuelle du servomoteur

fprintf('La position actuelle est %d\n', current_position);

% un petit retard est nécessaire pour que le servo puisse être positionné à la

% d'angle qui lui est dit.

pause(2);

finir

Étape 4: Servomoteur

Servomoteur
Servomoteur

· Le servo représente

un climatiseur, et est une sortie de l'entrée de détection de mouvement

· Il nécessite un fil positif, un fil de terre et un fil du port "D9" au servo

· Code pour servo:

% ramener le moteur à la position d'angle 0

écriturePosition(s, 0);

effacer m

prompt = 'Appuyez sur n'importe quelle touche pour continuer'

questdlg('AC est arrivé', 'réponse', 'Ok', 'Ok')

finir

finir

pause

Pause

finir

finir

*Note spéciale: une partie du code du servomoteur est intégrée au code du détecteur optique/phototransistor.

Conseillé: