Índice:

Termostato doméstico inteligente: 4 etapas
Termostato doméstico inteligente: 4 etapas

Vídeo: Termostato doméstico inteligente: 4 etapas

Vídeo: Termostato doméstico inteligente: 4 etapas
Vídeo: Instalación termostato Alpha - Wifi Frío/calor para suelo radiante 2024, Novembro
Anonim
Smart Home Thermostat
Smart Home Thermostat

Nosso termostato doméstico inteligente é um programa que pode economizar automaticamente o dinheiro de uma família em contas de serviços públicos com base nas preferências de uma pessoa.

Etapa 1: Visão geral

O Smart Home Thermostat usa um sensor de temperatura para medir a temperatura da casa. Esta leitura de temperatura é inserida no programa onde decidirá se o sistema de ar condicionado precisa aquecer ou resfriar a casa com base na temperatura desejada do proprietário.

Existem dois modos para o termostato: manual e automático. O modo manual que irá ajustar a temperatura da casa para qualquer temperatura desejada definida pelo usuário. E o modo automático do termostato mudará automaticamente a temperatura da casa para temperaturas predefinidas pelo usuário. Haverá duas configurações de temperatura para o modo automático: temperatura externa e temperatura atual. A temperatura externa é usada para economizar energia alterando o termostato para uma temperatura predefinida de economia de energia sempre que o usuário não estiver em casa. A temperatura atual será usada quando o usuário estiver em casa e desejar uma temperatura confortável. Quando no modo automático do termostato, os sensores de movimento procuram ativamente por movimento para determinar se alguém está em casa ou não. Com base em sua leitura, a temperatura doméstica será definida para a temperatura ambiente ou para a temperatura atual.

Etapa 2: peças e materiais

(15) Fios de ligação

(4) Resistores de 220 Ohms

(1) Resistor de 10K Ohm

(1) Sensor de temperatura

(1) Resistor de foto

(1) DAGU Mini DC Gearbox

(1) Diodo

(1) Transistor

(1) Fotorresistor

(1) Placa de ensaio

(1) Arduino MKR

Etapa 3: circuito

O circuito
O circuito
O circuito
O circuito
O circuito
O circuito
O circuito
O circuito

Figura 1 = imagem grande à esquerda

Figura 2 = Cima direita

Figura 3 = Meio Direito

Figura 4 = Inferior Direito

figura 1

Usando o diagrama acima, conectamos cada um de nossos três LEDs. Espaçamos cada LED, pois estávamos trabalhando com uma grande placa de pão. Para placas de pão menores, pode ser necessário colocar os LEDs mais próximos. Além disso, não é necessário alimentar a placa de ensaio, pois os LEDs consomem muito pouca energia. Não usamos a conexão de 5 V na placa de ensaio para os LEDs. Cada conexão dos LEDs ao nosso Arduino foi feita como o fio verde acima. Nossos LEDs vermelho, azul e verde são conectados aos pinos digitais 8, 9 e 10 respectivamente, designados com um fio vermelho, azul e verde em nossa imagem.

Figura 2

O diagrama acima foi usado para conectar o fotorresistor. Fizemos algumas correções por conta própria; no entanto, os conceitos ainda são os mesmos. O fotorresistor deve ser conectado a um pino analógico que temos no pino A1. Certifique-se de usar um resistor de 10K ohm para o resistor mais próximo do fotorresistor.

Figura 3

Este é o diagrama usado para conectar o sensor de temperatura. Certifique-se de não confundir o transistor usado aqui com o sensor de temperatura. Eles parecem quase idênticos. O sensor de temperatura provavelmente terá TMP ou algum outro script escrito no lado plano do sensor. A fiação aqui é muito simples, nosso sensor de temperatura é conectado ao pino analógico A0 com um fio branco.

Figura 4

A imagem acima foi usada para conectar a caixa de engrenagens DAGU Mini DC. O fio verde conectado à caixa de engrenagens é na verdade o fio vermelho conectado a ela em nossa foto. A caixa de engrenagens é conectada ao pino digital 11 com um fio laranja em nosso modelo. Certifique-se de não confundir o transistor usado aqui com o sensor de temperatura. Eles parecem quase idênticos. O sensor de temperatura provavelmente terá TMP ou algum outro script escrito no lado plano do sensor. Você deve usar o transistor aqui e não o sensor de temperatura.

Etapa 4: Código Arduino

Aqui, as partes mais importantes do código são explicadas. O código não funcionará apenas com o que é fornecido aqui. Para obter o código de funcionamento completo, há um link na parte inferior da página.

Ao criar o código do termostato programável, uma das primeiras coisas que você faz é configurar os sensores e criar um loop for que obterá constantemente leituras de temperatura do sensor de temperatura.

Configurando o sensor de temperatura e LED:

tempPin = 'A0';% define a função anônima que converte a tensão em temperatura tempCfromVolts = @ (volts) (volts-0,5) * 100; amostragemDuração = 5; % segundos. Por quanto tempo queremos amostrar para samplingInterval = 1; % Quantos segundos entre as leituras de temperatura% vetor definido de tempos de amostragem samplingTimes = 0: samplingInterval: samplingDuration; % calcula o número de amostras com base na duração e no intervalo numSamples = length (samplingTimes); % pré-alocar variáveis temporárias e variáveis para o número de leituras que armazenará tempC = zeros (numSamples, 1); tempF = tempC; % Usaremos um loop for desta vez para fazer um número pré-determinado de% leituras de temperatura

O loop for:

para índice = 1: numSamples% lê a tensão em tempPin e armazena volts volts = readVoltage (a, tempPin); tempC (índice) = -1 * tempCdeVolts (volts + 0,3); tempF (índice) = tempC (índice) * (9/5) +32; % Display formatado de saída comunicando a leitura de temperatura atual fprintf ('Temperatura em% d segundos é% 5,2f C ou% 5,2f F. / n',… samplingTimes (índice), tempC (índice), tempF (índice)); % note que esta saída de exibição só se tornará visível de uma vez depois que a execução do código estiver%% concluída, a menos que você copie / cole o código em um arquivo mfile de script simples. pause (samplingInterval)% atraso até o próximo final de amostra

A seguir, criamos nosso menu de usuário para que o usuário decida se deseja colocar o termostato no modo manual ou automático. Também criamos um código de erro se o usuário não selecionar nenhuma das duas opções.

O menu do modo Manual requer que o usuário defina um número para a temperatura do termostato e, em seguida, ele aquecerá, resfriará ou ficará ocioso com base nas leituras. Para configurar esta parte do código, você usou leituras de temperatura do sensor de temperatura e criou um código que resfriará a casa quando a leitura de temperatura for superior à temperatura definida e aquecerá a casa quando a leitura de temperatura for inferior à temperatura definida.

Depois de obter as leituras de temperatura, você pode criar o código que dirá ao termostato para resfriar a casa quando a leitura de temperatura for superior à temperatura definida e aquecer a casa quando a leitura de temperatura for inferior à temperatura definida. Para o protótipo, a luz azul acende quando o termostato deve esfriar e a luz vermelha acende quando o termostato deve aquecer.

Configuração do menu:

escolhas = {'Automático', 'Manual'}; imode = menu ('Modo', escolhas) se imode> 0 h = msgbox (['Você escolheu' escolhas {imode}]); else h = warndlg ('Você fechou o menu sem fazer uma escolha') end waitfor (h);

O modo Manual requer que o usuário insira uma temperatura para o termostato e, em seguida, com base nas leituras do sensor de temperatura, ele começará a resfriar ou aquecer a casa. Se a leitura do sensor de temperatura for superior à temperatura definida, ele começará a resfriar a casa. Se a leitura do sensor de temperatura for inferior à temperatura definida, ele aquecerá a casa.

O modo manual irá iniciar:

if imode == 2 dlg_prompts = {'Qual temperatura você prefere?'}; dlg_title = 'Temperatura'; dlg_defaults = {'68'}; opts. Resize = 'ligado'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Você cancelou o comando inputdlg'); else temp_manual = str2double (dlg_ans {1})% [Adicionar slide de configuração de regulação de temperatura abaixo] end

Dentro da instrução if para o modo manual, você precisa escrever a interface do menu para o usuário escolher a temperatura doméstica desejada e, em seguida, implementar uma instrução while que regulará a temperatura doméstica.

Configuração do regulamento de temperatura:

enquanto temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); terminar enquanto temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); fim

O modo automático requer mais entradas do que o modo manual. Depois de entrar no modo Automático, o usuário irá definir uma temperatura Normal e Ausente para seu termostato. Depois de selecioná-los, com base no modo em que o termostato está, ele voltará para o modo de regulação de temperatura

Configure o modo automático:

elseif imode == 1 dlg_prompts = {'Normal', 'Ausente'}; dlg_title = 'Configurações de temperatura'; dlg_defaults = {'68', '64'}; opts. Resize = 'ligado'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Você cancelou o comando inputdlg'); senão temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) end waitfor (h); % [Adicionar etapa do detector de movimento abaixo]

Também precisamos configurar o sensor de movimento para as configurações do modo Automático. Quando o detector de movimento detecta movimento, ele manterá a temperatura na configuração de temperatura atual, caso contrário, ele será definido como a configuração de temperatura externa.

Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) qualquer pino de luz vermelha está em também motor para fan writeDigitalPin (a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1)% muda para qualquer pino em que a luz normal está enquanto temp tempF writeDigitalPin (a, 'D6', 1) qualquer pino de luz vermelha também motor para ventilador writeDigitalPin (a, 'D9', 1); fim fim

O código completo pode ser encontrado aqui.

Recomendado: