Índice:

IDC2018IOT Diga-me quando desligar o AC: 7 etapas
IDC2018IOT Diga-me quando desligar o AC: 7 etapas

Vídeo: IDC2018IOT Diga-me quando desligar o AC: 7 etapas

Vídeo: IDC2018IOT Diga-me quando desligar o AC: 7 etapas
Vídeo: TEMPLE RUN 2 SPRINTS PASSING WIND 2024, Julho
Anonim
Image
Image

Muitos de nós, principalmente no verão, usamos o ar-condicionado quase ininterruptamente, quando, na realidade, em determinados momentos do dia, podemos apenas abrir uma janela e desfrutar de uma brisa agradável. Além disso, percebemos pessoalmente que às vezes até nos esquecemos de desligar o ar-condicionado ao sair da sala, desperdiçando energia e dinheiro.

A solução que construiremos irá comparar a temperatura interna com a externa e, quando estiverem perto o suficiente, avisaremos via Facebook Messanger que é hora de abrir uma janela e dar um descanso ao ar-condicionado.

Além disso, faremos outro mecanismo para nos avisar quando esquecermos o AC ligado e sairmos da sala.

Etapa 1: um pouco mais de detalhes

Coletamos dados de 4 sensores diferentes:

  • Dois sensores DHT coletam a temperatura dentro e fora da casa.
  • Um sensor PIR detecta movimento na sala.
  • Um microfone de eletreto é usado para detectar o vento que sai da ventilação CA, uma maneira simples e confiável de determinar se o CA está ligado.

Os dados provenientes dos sensores serão processados e enviados para o Blynk onde serão exibidos em uma interface que iremos criar. Além disso, dispararemos eventos IFTTT para notificar o usuário quando ele puder abrir uma janela em vez do AC, e quando ele esquecer o AC ligado e sair da sala por um período de tempo predefinido.

A interface do Blynk também nos dará uma maneira de alterar as configurações relevantes de acordo com a preferência do usuário, como discutiremos em mais detalhes posteriormente.

Partes necessárias:

  1. Módulo WiFi - ESP8266
  2. Sensor PIR.
  3. Sensores de temperatura DHT11 / DHT22 x2.
  4. Resistores de 10k / 4,7k (DHT11 - 4,7k, DHT22 - 10k, PIR - 10k).
  5. Microfone de eletreto.
  6. Jumpers.
  7. Cabos longos (o fio de telefone fará um ótimo trabalho).

O código completo do projeto é anexado ao final com comentários em todo o código.

Logicamente, ele tem algumas camadas diferentes de funcionalidade:

  • Os dados dos sensores são lidos em intervalos de 3 segundos, pois se mostram mais precisos e não há necessidade de mais do que isso.
  • Uma parte do código é acompanhar o estado de CA pelos valores provenientes do microfone de eletreto que é colocado sobre a abertura do CA.
  • Outra parte é acompanhar a leitura proveniente dos sensores de temperatura e a diferença de uso definido como aceitável para desligar o AC e abrir uma janela. Procuramos o momento em que as temperaturas se aproximam o suficiente.
  • Uma terceira parte é monitorar o movimento na sala. Se não detectar nenhum movimento importante (a forma de verificar o principal será explicada em breve) por um período de tempo definido pelo usuário, e o estado AC for ON, uma notificação será enviada ao usuário.
  • As notificações são tratadas através do acionamento de IFTTT Webhooks que enviam mensagens predefinidas ao usuário através do Facebook Messenger
  • A última parte que vale a pena notar é a parte que lida com a interface Blynk, tanto obtendo as alterações que o usuário faz nas variáveis quanto, por outro lado - enviando dados para a interface Blynk para o usuário ver.

Etapa 2: Mais detalhes em lote - Sensores

Mais detalhes - Sensores
Mais detalhes - Sensores
Mais detalhes - Sensores
Mais detalhes - Sensores

Vamos começar.

Primeiro, precisamos ter certeza de que nossos dois sensores DHT leem a mesma temperatura quando colocados no mesmo lugar. Para isso, fizemos um esboço simples anexado no final desta seção (CompareSensors.ino). Conecte os dois sensores e certifique-se de alterar o tipo de sensores DHT no esboço de acordo com os que você tem (o padrão é um DHT11 e um DHT22, para que você possa ver como ambos são tratados no código). Abra o monitor serial e deixe-os trabalhar por um tempo, especialmente se você usar sensores DHT11, pois eles tendem a demorar mais para se ajustar às mudanças de temperatura.

Observe a diferença entre os sensores e insira-a posteriormente no código principal na variável "offset".

Colocação dos sensores:

Um sensor DHT deve ser colocado na parede externa da casa, então conecte-o a alguns cabos longos, longos o suficiente para alcançar seu ESP8266 dentro da sala, e coloque-o do lado de fora (pode ser feito facilmente através da janela). O outro sensor DHT deve ser colocado na placa de ensaio, dentro da sala em que usamos o AC.

O microfone de eletreto também deve ser conectado a cabos longos o suficiente e colocado em um local onde o vento que sai do CA o atingirá.

Finalmente, o sensor PIR deve ser colocado em um local voltado para o centro da sala para capturar todos os movimentos na sala. Observe que o sensor tem dois pequenos botões, um controlando o atraso (por quanto tempo o sinal HIGH de detecção de um movimento é mantido ALTO) e o outro controla a sensibilidade (veja a imagem).

Você pode precisar brincar com ele até obter uma leitura que o satisfaça. Para nós, o melhor resultado foi o atraso totalmente à esquerda (valor mais baixo) e a sensibilidade à direita no meio. O código fornece impressões seriais que incluem leituras de todos os sensores que tornarão a depuração de tais problemas muito mais fácil.

Conectando os sensores:

Os números dos pinos que usamos são os seguintes (e podem ser alterados no código principal):

Sensor DHT externo - D2.

Sensor DHT interno - D3.

Eletreto - A0 (pino analógico).

PIR - D5.

Os esquemas para conectar cada um deles podem ser facilmente encontrados usando a pesquisa de imagens do Google com algo parecido com "PIR resistor Arduino esquemático" (não queremos copiá-los aqui e cruzar as linhas de direitos autorais:)).

Também anexamos uma imagem de nossa placa de ensaio, provavelmente é difícil realmente seguir as conexões, mas pode dar uma boa ideia disso.

Como você provavelmente sabe, as coisas raramente ou nunca funcionam na primeira vez que os conectamos. É por isso que criamos uma função que imprime as leituras dos sensores de uma forma fácil de ler, para que você possa depurar do seu jeito para que funcionem. Se você não quiser que o código tente se conectar ao Blynk durante a depuração, apenas comente "Blynk.begin (auth, ssid, pass);" na parte de configuração do código, execute-o e abra o monitor serial para ver as impressões. Também anexamos uma foto das estampas.

Etapa 3: Mais detalhes em lote - Sequência IFTTT

Em muito mais detalhes - Sequência IFTTT
Em muito mais detalhes - Sequência IFTTT

Portanto, queremos ser notificados em dois cenários:

1. A temperatura externa é próxima o suficiente da que temos dentro com o AC funcionando.

2. Saímos da sala por um longo período de tempo e o AC ainda está funcionando.

O IFTTT nos permite conectar muitos serviços diferentes que normalmente não interagem, de uma forma muito simples. No nosso caso, permite-nos enviar notificações com muita facilidade através de vários serviços. Escolhemos o Facebook Messanger, mas depois de colocá-lo em funcionamento com o Facebook Messanger, você poderá mudá-lo facilmente para qualquer outro serviço de sua escolha.

O processo:

No site do IFTTT, clique em seu nome de usuário (canto superior direito) e depois em "Novo miniaplicativo", escolha "Webhooks" como acionador (o "este") e escolha "Receber uma solicitação da web". Defina um nome de evento (por exemplo, empty_room).

Para o serviço acionado, a ação (o "aquele"), escolha Facebook Messenger> Enviar mensagem e digite a mensagem que deseja receber quando este evento acontecer (por exemplo, "Olá, parece que você esqueceu o AC em:).

Enquanto estamos aqui, você também deve encontrar sua chave secreta, que deverá ser inserida no local apropriado do código.

Para encontrar sua chave secreta, vá para https://ifttt.com/services/maker_webhooks/settings. Lá você encontrará um URL com sua chave no seguinte formato:

Etapa 4: Mais detalhes em lote - Blynk

Image
Image
Em muito mais detalhes - Blynk
Em muito mais detalhes - Blynk
Em muito mais detalhes - Blynk
Em muito mais detalhes - Blynk

Também queremos uma interface que tenha os seguintes recursos:

1. Capacidade de definir por quanto tempo a sala deve ficar vazia com o AC funcionando antes de sermos notificados

2. Capacidade de escolher o quão próxima a temperatura externa deve estar da interna.

3. Um display para as leituras dos sensores de temperatura

4. Um led informando o estado do AC (ligado / desligado).

5. E o mais importante, um display para mostrar quanto $$$ e energia economizamos.

Como criar a interface Blynk:

Se você ainda não tem o aplicativo Blynk, baixe-o para o seu telefone. Ao abrir o aplicativo e criar um novo projeto, certifique-se de escolher o dispositivo apropriado (por exemplo, ESP8266).

Você receberá um e-mail com um token de autenticação, que irá inserir no código no local apropriado (você também pode reenviá-lo a partir das configurações mais tarde, se perdê-lo).

Para colocar novos widgets na tela, clique no sinal + na parte superior. Escolha os widgets e clique em um widget para inserir suas configurações. Adicionamos fotos das configurações de todos os widgets que usamos, para sua referência.

Depois de terminar com o aplicativo, e quando quiser usá-lo, basta clicar no ícone "reproduzir" no canto superior direito para executar o aplicativo Blynk. Você também poderá ver quando o ESP8266 se conecta.

Observação - o botão "atualizar" é usado para buscar a temperatura e o estado do AC para que possamos ver no aplicativo. Não é necessário ao alterar as configurações (como a diferença de temperatura), pois são pressionadas automaticamente.

Etapa 5: O Código

Fizemos muito esforço para documentar cada parte do código de uma forma que tornasse seu entendimento o mais fácil possível.

As partes do código que você deve alterar antes de usá-lo (como a chave de autenticação do Blynk, seu SSID de wi-fi e senha, etc …) são seguidas pelo comentário // * alterar * para que você possa procurá-las facilmente.

Você precisará ter as bibliotecas usadas no código, você pode instalá-las por meio do IDE do Arduino clicando em Sketch> Incluir Bibliotecas> Gerenciar Bibliotecas. Lá você pode pesquisar o nome da biblioteca e instalá-lo. Além disso, certifique-se de colocar o arquivo generic8266_ifttt.h no mesmo local que o ACsaver.ino.

Uma parte do código que explicaremos aqui, já que não queríamos bagunçar o código, é como decidimos quando alterar o estado do AC de ligado para desligado e o estado da sala de vazio para não vazio.

Lemos dos sensores a cada 3 segundos, mas como os sensores não são 100% precisos, não queremos que uma única leitura mude o estado que acreditamos estar na sala agora. Para resolver isso, o que o código faz, é que temos um contador que ++ quando obtemos uma leitura a favor de "AC está ligado", e - caso contrário. Então, quando chegamos ao valor definido em SWITCHAFTER (padrão para 4), mudamos o estado para "AC está ligado", quando chegamos a -SWITCHAFTER (negativo com o mesmo valor), mudamos o estado para "AC está desligado"

O impacto sobre o tempo que leva para alternar é insignificante e consideramos que é muito confiável para detectar apenas as alterações corretas.

Etapa 6: juntando tudo

Ok, então todos os sensores estão no lugar e funcionando corretamente. A interface Blynk está configurada (com os pinos virtuais corretos!). E os eventos IFTTT estão esperando por nosso gatilho.

Você inseriu a chave secreta IFTTT no código, a chave de autenticação de Blynk, o SSID de seu WiFi e a senha e até verificou se os sensores DHT estão calibrados e, caso não estejam, alterou o deslocamento de acordo (por exemplo, nosso fora do DHT leu temperaturas mais altas em 1 grau Celsius do que o que ele deveria ter, então usamos deslocamento = -1).

Certifique-se de que seu WiFi esteja ligado, inicie seu aplicativo Blynk e carregue o código em seu ESP8266.

É isso. Se tudo foi feito corretamente, você pode brincar agora e ver em ação.

E se você apenas quiser vê-lo em ação sem se preocupar em colocar tudo junto … Bem … Role para cima e assista ao vídeo. (Assistir com legendas! Sem narração)

Etapa 7: pensamentos

Tínhamos dois desafios principais aqui.

Em primeiro lugar, como sabemos que o AC está ligado? Tentamos usar um receptor IR que "ouvirá" a comunicação entre o AC e o controle remoto. Parecia ser muito complicado, pois os dados eram muito confusos e não eram consistentes o suficiente para entender "ok, este é um sinal LIGADO". Então, procuramos outras maneiras. Uma ideia era usar uma pequena hélice que geraria pouca corrente quando se movesse do vento do CA, outra ideia que tentamos foi ter um acelerômetro medindo o ângulo das asas giratórias nas aberturas e detectando seu movimento a partir da posição OFF.

Eventualmente, percebemos que a maneira mais simples de fazer isso é com o microfone de eletreto, que detecta de forma muito confiável o vento que sai do AC

Fazer os sensores DHT funcionarem foi muito fácil;), mas só mais tarde percebemos que um deles estava um pouco fora da temperatura real. O sensor PIR também exigiu alguns ajustes, conforme descrito anteriormente.

O segundo desafio foi tornar toda a solução simples e confiável. De certa forma, deve ser chato de usar, deve estar lá e cutucar quando você precisar. Caso contrário, provavelmente pararíamos de usá-lo.

Então, pensamos sobre o que deveria haver na interface do Blynk e tentamos tornar o código o mais confiável possível, cuidando de cada caso extremo que pudéssemos apresentar.

Outro desafio, que não conseguimos resolver no momento de escrever este instrutível, foi adicionar um blaster IR que nos permitirá desligar o AC da interface Blynk. Qual é o ponto em saber que você esqueceu o AC ligado sem a possibilidade de desligá-lo? (bem … você poderia perguntar a alguém se eles estão em casa).

Infelizmente, tivemos algumas dificuldades para reproduzir os sinais que gravamos do controle remoto, de volta para o AC com o ESP8266. Conseguimos controlar o AC por um Arduino Uno, seguindo este instrutivo:

www.instructables.com/id/How-to-control-th…

Tentaremos novamente em breve e atualizaremos o instrutível com nossas descobertas e, esperançosamente, instruções sobre como adicionar esse recurso.

Outra limitação que vemos é o fato de que precisamos conectar um sensor fora da janela, o que pode não ser possível em certas situações, e também significa que um cabo longo precisa ir para fora. Uma solução pode ser buscar dados meteorológicos de sua localização na Internet. Além disso, o sensor de eletreto que funciona a partir do CA pode ser substituído pelo receptor IR que descrevemos acima, para modelos de CA com códigos IR mais conhecidos ou fáceis de decodificar.

O projeto pode ser estendido de várias maneiras. Como dito acima, tentaremos encontrar uma maneira de incluir o controle de IR sobre o AC, o que abre um novo mundo de oportunidades para ligar e desligar o AC de qualquer lugar do mundo, ou definir horários de ligar e desligar através do Blynk app, como outro exemplo. Depois de descobrir as dificuldades técnicas de IR, adicionar o código é bastante simples e direto e não deve demorar muito.

Se realmente queremos sonhar grande… O projeto pode ser transformado em um módulo completo que torna qualquer AC um AC inteligente. E não precisa de muito mais do que nós. Apenas mais código, mais utilização do IR e, se quisermos que seja produzido em massa, talvez certifique-se de buscar dados meteorológicos por localização, então podemos colocar tudo em uma caixinha minúscula.

Na verdade, tudo o que precisamos é de um sensor de temperatura para a temperatura interna, um sensor PIR para detectar movimento e um LED IR como um blaster e um receptor IR para "ouvir" a comunicação entre o AC e o controle remoto que usamos.

Blynk fornece todos os recursos de que precisamos para controlar a caixa mágica, de uma forma muito simples e confiável.

Fazer um projeto tão completo levará algum tempo, especialmente do ponto de vista de torná-lo versátil o suficiente para se configurar e detectar e compreender automaticamente a maioria dos ACs.

Mas fazer você mesmo, bem, se você fizer isso no seu tempo livre, não deve levar mais de uma ou duas semanas. Depende de quanto tempo livre você tem … O principal desafio aqui seria salvar todos os diferentes sinais que o controle remoto AC pode enviar e entendê-los. (Embora apenas reproduzi-los deva ser ainda mais fácil).

Recomendado: