Table des matières:

Thermostat de maison intelligente : 4 étapes
Thermostat de maison intelligente : 4 étapes

Vidéo: Thermostat de maison intelligente : 4 étapes

Vidéo: Thermostat de maison intelligente : 4 étapes
Vidéo: Maison Connectée - Comment installer votre thermostat intelligent 2024, Novembre
Anonim
Thermostat de maison intelligente
Thermostat de maison intelligente

Notre thermostat pour maison intelligente est un programme qui permet à un ménage d'économiser automatiquement de l'argent sur les factures de services publics en fonction des préférences d'une personne.

Étape 1: Aperçu

Le thermostat Smart Home utilise un capteur de température pour obtenir la température de la maison. Cette lecture de température est insérée dans le programme où il décidera si le système de climatisation doit chauffer ou refroidir la maison en fonction de la température souhaitée par le propriétaire.

Il existe deux modes pour le thermostat: manuel et automatique. Le mode manuel qui ajustera la température de la maison à la température souhaitée est défini par l'utilisateur. Et le mode automatique du thermostat changera automatiquement la température de la maison aux températures préréglées par l'utilisateur. Il y aura deux réglages de température pour le mode automatique: température d'absence et température actuelle. La température d'absence est utilisée pour économiser de l'énergie en modifiant le thermostat sur une température d'économie d'énergie prédéfinie lorsque l'utilisateur n'est pas à la maison. La température actuelle sera utilisée lorsque l'utilisateur est à la maison et souhaite une température confortable. En mode automatique du thermostat, les détecteurs de mouvement recherchent activement le mouvement pour déterminer si quelqu'un est à la maison ou non. Sur la base de leur lecture, la température de la maison sera soit réglée sur la température de l'extérieur, soit sur la température actuelle.

Étape 2: Pièces et matériaux

(15) Fils de cavalier

(4) Résistances 220 Ohms

(1) résistance 10K Ohm

(1) capteur de température

(1) photorésistance

(1) Boîte de vitesses DAGU Mini DC

(1) Diode

(1) Transistor

(1) Photorésistance

(1) Planche à pain

(1) Arduino MKR

Étape 3: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Figure 1 = Grande image de gauche

Figure 2 = en haut à droite

Figure 3 = Milieu Droit

Figure 4 = En bas à droite

Figure 1

En utilisant le schéma ci-dessus, nous avons câblé chacune de nos trois LED. Nous avons espacé chaque LED puisque nous travaillions avec une grande planche à pain. Pour les planches à pain plus petites, il peut être nécessaire de rapprocher les LED. De plus, il n'est pas nécessaire d'alimenter la maquette car les LED consomment si peu d'énergie. Nous n'avons pas utilisé la connexion 5V sur la maquette pour les LED. Chaque connexion des LED à notre Arduino a été faite comme le fil vert est au-dessus. Nos LED rouges, bleues et vertes sont connectées respectivement aux broches numériques 8, 9 et 10, désignées par un fil rouge, bleu et vert sur notre image.

Figure 2

Le schéma ci-dessus a été utilisé pour câbler la photorésistance. Nous avons fait quelques corrections de notre côté; cependant les concepts sont toujours les mêmes. La photorésistance doit être connectée à une broche analogique que nous avons dans la broche A1. Assurez-vous d'utiliser une résistance de 10K ohms pour la résistance la plus proche de la photorésistance.

figure 3

C'est le schéma utilisé pour câbler la sonde de température. Assurez-vous de ne pas confondre le transistor utilisé ici avec le capteur de température. Ils ont l'air presque identiques. Le capteur de température aura probablement TMP ou un autre script écrit sur le côté plat du capteur. Le câblage ici est très simple, notre capteur de température est branché sur la broche analogique A0 avec un fil blanc.

Figure 4

L'image ci-dessus a été utilisée pour câbler la boîte de vitesses DAGU Mini DC. Le fil vert attaché à la boîte de vitesses est en fait le fil rouge qui lui est connecté sur notre photo. La Gearbox est connectée à la broche numérique 11 avec un fil orange dans notre modèle. Assurez-vous de ne pas confondre le transistor utilisé ici avec le capteur de température. Ils ont l'air presque identiques. Le capteur de température aura probablement TMP ou un autre script écrit sur le côté plat du capteur. Vous devez utiliser le transistor ici et non le capteur de température.

Étape 4: Code Arduino

Ici, les parties les plus importantes du code sont expliquées. Le code ne fonctionnera pas uniquement avec ce qui est donné ici. Pour obtenir le code fonctionnel complet, il y a un lien en bas de la page.

Lors de la création du code du thermostat programmable, l'une des premières choses que vous faites est de configurer les capteurs et de créer une boucle for qui obtiendra constamment les lectures de température du capteur de température.

Configuration du capteur de température et de la LED:

tempPin = 'A0';%définir une fonction anonyme qui convertit la tension en température tempCfromVolts = @(volts) (volts-0,5)*100; Durée d'échantillonnage = 5; % secondes. Combien de temps voulons-nous échantillonner pour samplingInterval = 1; %Combien de secondes entre les lectures de température %configurer le vecteur des temps d'échantillonnage samplingTimes = 0:samplingInterval:samplingDuration; %calculer le nombre d'échantillons en fonction de la durée et de l'intervalle numSamples = length(samplingTimes); % préallouer les variables temporaires et la variable pour le nombre de lectures qu'il stockera tempC = zeros(numSamples, 1); tempF = tempC; %Nous utiliserons une boucle for cette fois pour prendre un nombre prédéterminé de lectures de %température

La boucle for:

pour index = 1: numSamples % lire la tension à tempPin et stocker dans des volts variables volts = readVoltage (a, tempPin); tempC(index) = -1*tempCfromVolts(volts+0.3); tempF(indice) = tempC(indice)*(9/5)+32; %Affichage de la sortie formatée communiquant la lecture de la température actuelle fprintf('La température à %d secondes est %5.2f C ou %5.2f F.\n', … samplingTimes(index), tempC(index), tempF(index)); %notez que cette sortie d'affichage ne deviendra visible d'un seul coup qu'après l'exécution du code, sauf si vous copiez/collez le code dans un simple script mfile. pause(samplingInterval) %délai jusqu'à la fin du prochain échantillon

Ensuite, nous créons notre menu utilisateur pour que l'utilisateur décide de mettre le thermostat en mode manuel ou automatique. Nous créons également un code d'erreur si l'utilisateur ne sélectionne aucune des deux options.

Le menu du mode manuel exige que l'utilisateur définisse un nombre pour la température du thermostat, puis il chauffera la maison, refroidira la maison ou tournera au ralenti en fonction des lectures. Pour configurer cette partie du code, vous avez utilisé les lectures de température du capteur de température et créé un code qui refroidira la maison lorsque la lecture de la température est supérieure à la température définie et chauffera la maison lorsque la lecture de la température est inférieure à la température définie.

Une fois que vous avez les lectures de température, vous pouvez créer le code qui indiquera au thermostat de refroidir la maison lorsque la lecture de la température est supérieure à la température définie et de chauffer la maison lorsque la lecture de la température est inférieure à la température définie. Pour le prototype, le voyant bleu s'allume lorsque le thermostat doit refroidir et le voyant rouge s'allume lorsque le thermostat doit chauffer.

Configuration des menus:

choix = {'Automatique', 'Manuel'};imode = menu('Mode', choix) if imode>0 h=msgbox(['Vous avez choisi 'choix{imode}]); else h=warndlg('Vous avez fermé le menu sans faire de choix') end waitfor(h);

Le mode manuel demande à l'utilisateur d'entrer une température pour le thermostat, puis sur la base des lectures du capteur de température, il commencera soit à refroidir la maison, soit à chauffer la maison. Si la lecture du capteur de température est supérieure à la température définie, il commencera à refroidir la maison. Si la lecture du capteur de température est inférieure à la température réglée, il chauffera la maison.

Le mode manuel démarre:

if imode == 2 dlg_prompts = {'Quelle température préférez-vous ?'}; dlg_title = 'Température'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Vous avez annulé la commande inputdlg'); else temp_manual = str2double(dlg_ans{1}) %[Ajouter la diapositive de configuration de la régulation de la température ci-dessous] end

À l'intérieur de l'instruction if pour le mode manuel, vous devez écrire l'interface de menu pour que l'utilisateur choisisse la température domestique souhaitée, puis implémenter une instruction while qui régulera la température domestique.

Configuration de la régulation de la température:

while temp_manual < tempF writeDigitalPin(a, 'D9', 1) writeDigitalPin(a, 'D11', 1); end while temp_manual > tempF writeDigitalPin(a, 'D8', 1) writeDigitalPin(a, 'D11', 1); finir

Le mode automatique nécessite plus d'entrées que le mode manuel. Après être entré en mode automatique, l'utilisateur définira une température normale et une température d'absence pour son thermostat. Après les avoir sélectionnés, en fonction du mode dans lequel se trouve le thermostat, il reviendra en mode de régulation de la température.

Configurez le mode automatique:

elseif imode == 1 dlg_prompts = {'Normal', 'Absent'}; dlg_title = 'Paramètres de température'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Vous avez annulé la commande inputdlg'); else temp_normal = str2double(dlg_ans{1}) temp_away = str2double(dlg_ans{2}) end waitfor(h); %[Ajouter l'étape du détecteur de mouvement ci-dessous]

Nous devons également configurer le capteur de mouvement pour les paramètres du mode automatique. Lorsque le détecteur de mouvement détecte un mouvement, il maintient la température sur le réglage de température actuel, sinon il se règle sur le réglage de température d'absence.

Run_Motion_Detector(a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin(a, 'D6', 1) quelle que soit la lumière rouge de la broche également moteur pour le ventilateur writeDigitalPin(a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin(a, 'D6', 1) %change à n'importe quelle broche dans laquelle se trouve la lumière normale tandis que temp tempF writeDigitalPin(a, 'D6', 1) quelle que soit la broche la lumière rouge est également moteur pour ventilateur writeDigitalPin(a, 'D9', 1); fin fin

Le code complet peut être trouvé ici.

Conseillé: