Índice:
- Etapa 1: Reunir o material de que você precisa
- Etapa 2: Arquitetura do Sistema
- Etapa 3: Configurando Seu ESP
- Etapa 4: Conectando Seu Hardware: Sensor ao ESP
- Etapa 5: Conectando ESP8266 com Adafruit IO: Criando uma conta Adafruit IO
- Etapa 6: Conectando ESP8266 com Adafruit IO: Criando Feeds
- Etapa 7: Conectando ESP8266 com Adafruit IO: Criando Painel
- Etapa 8: Conectando ESP8266 com Adafruit IO: Criando código para sensores ultrassônicos
- Etapa 9: IFTTT, conecte o IFTTT ao Adafruit
- Etapa 10: Criar miniaplicativo no IFTTT
- Etapa 11: Criar gatilho de Adafruit
- Etapa 12: Crie uma ação para o Gmail, Google Calender e notificação para o aplicativo IFTTT
- Etapa 13: Teste
- Etapa 14: usando o serviço Zapier
- Etapa 15: desestabilizando o sistema a partir do nível IFTTT
- Etapa 16: Escopo Futuro: Industrilização do Produto
- Etapa 17: Possíveis problemas que você pode enfrentar
- Etapa 18: em direção ao fim …
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Oi
Este instrutível fornece uma introdução passo a passo sobre como construir um sistema de notificação de lavanderia baseado em IoT.
O dispositivo está preso em suas gavetas e na bolsa de roupa suja. Para fins de demonstração aqui, pegamos duas gavetas e um saco de roupa suja. Ele detecta o quão vazio / cheio as gavetas / saco de roupa suja estão e notifica o usuário dizendo que a roupa precisa ser lavada. Ele usa um sensor ultrassônico que mede basicamente o espaço vazio nas caixas. O sensor é conectado a um ESP que, por sua vez, está conectado a um serviço em nuvem. O serviço de nuvem está conectado ao IFTTT, que usa miniaplicativos para enviar notificações ao usuário por e-mail, sms, evento do Google Agenda. A nuvem vem com um dahboard no qual o status de todas as caixas pode ser visto. Quando a nuvem vê que você está ficando sem roupas limpas, ela instrui os miniaplicativos a notificá-lo. Além disso, o miniaplicativo instrui a nuvem a verificar os dados regularmente todos os dias. Pode ser uma vez por dia ou de hora em hora, dependendo de como o usuário deseja que seja. Instruções detalhadas para construir este sistema são descritas abaixo.
Etapa 1: Reunir o material de que você precisa
você vai precisar de:
1. 3 sensores ultrassônicos HC SR04 (5V)
2. 3 ESP8266 12 (5V)
3. 3 baterias de 9V
4. 3 potenciômetros de 5 V (para alimentar os ESPs e sensores)
5. Um monte de conectores fêmea para fêmea e macho para fêmea
6. Caixa de bateria
Você pode comprar essas coisas na Amazon facilmente. Os sensores e ESPs são realmente baratos se você comprar um pacote com 6 deles.
Etapa 2: Arquitetura do Sistema
A arquitetura do sistema pode ser entendida a partir da imagem. Os sensores são conectados a ESPs. O ESP envia os dados (a distância) para Adafruit, que são então processados para ver o quão cheios os contêineres estão. Dependendo de qual gaveta está vazia e quão cheia está o saco de roupa suja, o usuário receberá uma notificação dizendo que precisa lavar a roupa amanhã. O IFTTT é acionado a partir da Adafruit e toma a decisão de enviar um e-mail através do Gmai, criar um evento no calendário ou enviar uma notificação através do aplicativo IFTTT. Este dispositivo vem com um painel que pode ser aberto em qualquer navegador. O painel é conectado ao hardware usando o ambiente Adafruit, que mostra as leituras dos sensores. Além disso, é possível, a partir deste nível, ligar e desligar os ESPs no painel.
Etapa 3: Configurando Seu ESP
Você pode operar facilmente seu ESP conectando-o ao IDE do Arduino. Tudo que você precisa é baixar e configurar as bibliotecas para ele. Você pode seguir as etapas abaixo:
1. Baixe a versão mais recente do Arduino IDE.
2. Abra seu IDE, vá para arquivos <preferências e copie o link abaixo no Gerenciador de placas adicionais e clique em OK para fechar a guia de preferências.
arduino.esp8266.com/stable/package_esp8266…
3. Vá para Ferramentas <Board Manager <, procure ESP8266 e instale a versão 2.4.1. Você pode instalar outras versões dependendo do volume do seu IDE. Mas funciona melhor.
Depois de tudo isso, escolheu a placa NodeMCU 1.0. Agora você está pronto para usar seu ESP exatamente como um Arduino (ou ainda melhor).
4. Quando terminar de conectar e trabalhar seu ESP com o laptop como um Arduino, vá para o próximo nível e conecte-se com seu WiFi ou ponto de acesso móvel.
Etapa 4: Conectando Seu Hardware: Sensor ao ESP
Veja como você precisa conectar seu sensor e codificá-lo para que ele forneça o espaço vazio nas caixas.
1. O sensor Vcc está conectado ao NodeMCU VUpin. Se você conectá-lo a 3,3V, seu sensor não funcionará, pois sua tensão de operação é de 5V.
2. O sensor GND está conectado ao NodeMCU GND.
3. O pino de acionamento do sensor é conectado ao NodeMCU Digital I / O D4.
4. O pino de eco do sensor está conectado ao NodeMCU Digital I / O D3.
Depois disso, você pode escrever o código abaixo para ver se o seu ultrassom está funcionando. Depois de estabelecer que seus sensores, código e ESPs estão funcionando bem, você pode conectar seu ESP ao WiFi e verificar se está funcionando. Mas, fazendo isso, as conexões de hardware mudarão um pouco conforme detalhado abaixo. Mas antes disso, certifique-se de conectar suas baterias de 9V aos POTs e elas foram ajustadas para a tensão de saída de 5V. Você não quer queimar seus ESPs (eles cheiram mal).
1. O ESP Vin e o sensor Vcc estão conectados ao positivo da bateria.
2. O ESP GND e o sensor GND estão conectados ao negativo da bateria. Lembre-se de tornar o terreno comum ou então seu sensor fornecerá dados aleatórios.
3. O pino de disparo do sensor está conectado ao NodeMCU Digital I / O D4.
4. O pino de eco do sensor está conectado ao NodeMCU Digital I / O D3.
Ela fala um pouco sobre como funciona o sensor ultrassônico e como ele é codificado.
O sensor basicamente envia um pulso e o cronometra até que ele reflita e chegue de volta ao sensor. Com base no tempo e na velocidade do som, temos que formular a distância. Isso é essencialmente o que fizemos aqui. O próprio sensor simplesmente mantém seu pino "ECHO" HIGH por um período de tempo correspondente ao tempo que levou para receber a reflexão (eco) de uma onda que ele enviou. O módulo envia uma rajada de ondas sonoras, ao mesmo tempo em que aplica tensão ao pino de eco. O módulo recebe o reflexo das ondas sonoras e remove a tensão do pino de eco. Com base na distância, um pulso é gerado no sensor ultrassônico para enviar os dados para o ESP. O pulso inicial é de cerca de 10us e o sinal PWM será de 150 us-25us na base da distância. Se nenhum obstáculo estiver lá, um pulso de 38us é gerado para ESP para confirmar que não há objetos detectados.
D = 1/2 × T × C; D é a distância, T é o tempo entre a Emissão e a Recepção e C é a velocidade sônica, o valor é multiplicado por 1/2 porque T é o tempo para a distância de ida e volta.
Conecte-os como na figura acima e coloque-os no interior de seus escaninhos na parte superior.
Etapa 5: Conectando ESP8266 com Adafruit IO: Criando uma conta Adafruit IO
Para conectar o sensor ultrassônico e o ESP8266 ao serviço de nuvem Adafruit IO (usando o protocolo MQTT) foi escolhido.
MQTT é um protocolo simples e extremamente leve, que permite que os dispositivos publiquem dados (do dispositivo para o servidor) e assinem dados (coletem dados do servidor). A facilidade dessa solução é fornecida pelo corretor MQTT, que neste caso é Adafruit. IO. Por meio dele, os dispositivos podem enviar e receber mensagens.
Para se registrar, acesse o site: https://io.adafruit.com/ e clique em Get Started for Free. No próximo site o usuário deve colocar seus dados pessoais e clicar no botão Criar Conta. Após o registro, o usuário é movido para a seção inicial de uma conta. Para escrever mais um código para sensores ultrassônicos, é importante verificar a Chave AIO (botão Exibir Chave AIO) para: Nome de usuário e Chave ativa.
Agora estamos prontos para criar Feeds (que contém os valores dos dados dos sensores) e Dashboard, no qual será possível monitorar um sistema de lavanderia.
Etapa 6: Conectando ESP8266 com Adafruit IO: Criando Feeds
Para este projeto, 6 feeds diferentes foram usados:
- ON / OFF feeds - feeds que ativam / desativam ESP8266 para obter medições. Adicionado devido ao gerenciamento de energia. (Alimentação: Gaveta-1-liga-desliga, Gaveta-2-liga-desliga, saco de roupa suja-liga-desliga).
- Leitura de feeds que estão obtendo dados da loja de sensores ultrassônicos (Gaveta-1, Gaveta-2, Saco de roupa suja).
Criação de um feed
- Entrar na seção Feeds
- Clique em Ações e crie um novo feed
- Preencher: Nome do feed (aqui para a primeira Gaveta - Gaveta-1 e uma breve descrição)
Da mesma forma, crie mais cinco feeds. Lembre-se de que os nomes serão usados para posterior desenvolvimento de código do ESP8266.
Os Feeeds estão prontos, mas não há uma maneira fácil de tentar todas as leituras ao mesmo tempo. É por isso que os painéis são necessários.
Etapa 7: Conectando ESP8266 com Adafruit IO: Criando Painel
A criação do painel começa na seção Painéis. Clique no botão Ações (da mesma forma como na seção Feeds) -> Criar um Novo Painel-> preencha o nome (neste caso: Your_Laundry_System) e uma breve descrição-> Clique no botão Criar. Depois disso, você pode entrar no Dashboard.
No painel, clique em Criar um novo botão de bloqueio. Para esta aplicação, precisamos de três tipos de blocos:
- 3x Toggle (para ligar e desligar a detecção)
- Medidor 3x (mostrando o nível real em uma gaveta / saco de roupa suja)
- Gráfico de linha 3x (mostrando dados históricos)
Alternancia
- Clique no ícone Alternar.
- Escolha o primeiro feed ON / OFF, ou seja, Drawer-1-Onoff.
- Adicione o título do bloco, ou seja, Limpar camisetas - Gaveta 1. Clique em Criar bloco.
Coloque a chave no canto superior do painel. Da mesma forma, conecte o restante dos feeds ATIVAR / DESATIVAR ao Toogle.
Medidor
- Clique no ícone Gauge.
- Escolha o primeiro feed de coleta de dados: Gaveta-1.
- Preencha os dados de acordo: para o título do bloco, ou seja: Camisetas limpas - Gaveta 1, Valor máximo do medidor (dependendo da profundidade da gaveta - neste caso 10), Valor baixo / alto de aquecimento (mudança da cor do medidor).
Coloque o medidor no painel. Da mesma forma, conecte o restante dos feeds de armazenamento de dados ao Gauge.
Gráfico de linha
- Clique no ícone do gráfico de linha.
- Escolha o primeiro feed de coleta de dados: Gaveta-1.
- Altere o campo Mostrar histórico para 24 horas, altere as casas máximas e decimais do eixo Y, dependendo da profundidade da gaveta.
Coloque o gráfico de linha no painel. Da mesma forma, conecte o restante dos feeds de armazenamento de dados ao gráfico de linhas.
O painel final está incluído na seção de imagens. Lembre-se de que os painéis mostram quanto espaço vazio ainda está no saco / gavetas de roupa suja.
Etapa 8: Conectando ESP8266 com Adafruit IO: Criando código para sensores ultrassônicos
Em primeiro lugar, a biblioteca Adafruit MQTT é necessária. Para instalá-lo, abra o Arduino IDE-> Ferramentas-> Gerenciar bibliotecas e digite na pesquisa: Adafruit MQTT. A biblioteca deve ser instalada em seu computador.
Depois disso, faça o download de um exemplo do código em anexo (aqui está incluído um código para o sensor ultrassônico funcionando no saco de roupa suja).
Para torná-lo aplicável à sua configuração, você deve alterar os seguintes detalhes:
- WLAN_SSID- o nome da sua rede WiFi.
- WLAN_PASS- senha para sua rede sem fio.
- AIO_USERNAME- nome do seu usuário no Adafruit IO (da etapa 4).
- AIO_KEY- chave Adafruit IO (da etapa 4).
- Adafruit_MQTT_Publish…. "/ feeds / Laundry-bag" - aqui você deve colocar o nome do feed no qual os dados serão publicados.
- Adafruit_MQTT_Subscribe "/ feeds / Laundry-bag-On-off" - aqui você tem que colocar o nome do feed, que aciona o sensor.
Depois disso, o programa deve ser carregado no ESP8266. É necessário alterar os nomes dos feeds para a Gaveta 1 e Gaveta 2.
Aviso importante: devido ao if (mensagem == "ON"), o sistema medirá a distância apenas uma vez e quando o botão ON / OFF do painel estiver na posição ON. Para medir novamente, o usuário deve desligar e girar o sensor no painel novamente.
Depois de fazer o upload do programa para cada painel ESP8266 deve mostrar a leitura de cada sensor. Os sensores podem ser acionados a partir do painel. Também é possível alterar o sistema a partir do nível do miniaplicativo IFTTT (etapa 13).
Etapa 9: IFTTT, conecte o IFTTT ao Adafruit
Aviso: IFTTT não é a conexão mais confiável ao acionar o Google Calendar e e-mail usando três sensores conectados ao Adafruit IO. Vá para a Etapa 14 para saber mais sobre Zapier
O IFTTT é um serviço baseado na web que cria uma condição simples “Se Isto, Então Aquilo”. Ele funciona com outro serviço baseado na web como Gmail, Facebook, Instagram, etc. A condição simples consiste em “Este” que é na verdade o gatilho e “Aquilo” que é a ação necessária a ser executada. Os miniaplicativos precisam ser criados para que essa condição simples funcione na plataforma IFTTT. Este projeto utiliza Adafruit.io MQTT como uma nuvem para mostrar o nível das roupas no saco de roupa suja, e as gavetas, então o IFTTT receberá o gatilho do Adafruit.io para enviar o lembrete ao usuário por meio do Google Calendar ou Gmail.
Primeiro, crie uma conta IFTTT no site IFTTT. Faça login em sua conta. O IFTTT requer estar conectado à conta Adafruit onde o painel foi criado. Acesse o link a seguir para se conectar à Adafruit
Em seguida, clique em Conectar, você será direcionado para a página da Web da Adafruit e clique em Autorizar. Para este projeto, o IFTTT foi conectado à conta da Adafruit, conforme mostrado na imagem. Depois que o IFTTT for conectado à conta Adafruit, os miniaplicativos estarão prontos para serem criados.
Etapa 10: Criar miniaplicativo no IFTTT
Este projeto tentou se conectar ao aplicativo Gmail, Google Calender e IFTTT. As etapas a seguir são para criar um miniaplicativo na plataforma e criar o gatilho de Adafruit.
1. Vá para Meu miniaplicativo https://ifttt.com/my_applets e clique em Novo miniaplicativo
2. Você será direcionado para if + this, then that e clique em + this ou clique em build na plataforma.
Etapa 11: Criar gatilho de Adafruit
Agora, você pode começar a configurar seu próprio miniaplicativo.
1. Primeiro If Trigger, search Services type Adafruit e, em seguida, selecione Monitor a feed em Adafruit IO
2. Defina outros parâmetros Nome do rótulo do feed, Relação do rótulo do feed e Valor do rótulo do feed. Definido como personalizável pelo usuário para facilitar se houver alguma alteração necessária posteriormente, você não precisa alterá-la por meio da plataforma.
3. Para este projeto, a alimentação necessária para monitorar é a gaveta 1, a gaveta 2 e o saco de roupa suja. Para a Gaveta 1 e a Gaveta 2 tem uma relação maior do que 5, o que indica que a gaveta está quase vazia, enquanto o saco da roupa suja tem uma relação menor que 5, o que indica que está quase cheio.
Etapa 12: Crie uma ação para o Gmail, Google Calender e notificação para o aplicativo IFTTT
Finalmente as ações para IFTTT a serem configuradas, para este projeto criamos um Applet que envia um e-mail para o Gmail e um evento para o Google Calendar sempre que a Gaveta 1 ou Gaveta 2 estiverem vazias ou o Saco de Lavanderia estiver cheio. A seguir estão as etapas para criar a Ação:
1. Serviços de pesquisa de ação Gmail, Google Calender e Notificação
2. Depois disso, você pode selecionar no menu suspenso, um e-mail ou um evento de adição rápida ou enviar uma notificação do aplicativo IFTTT
3. Então os Apllets estão prontos, qualquer texto adicional pode ser adicionado de acordo com seu projeto para o e-mail, evento ou notificação do aplicativo IFTTT
Etapa 13: Teste
Agora testamos nosso sistema de lavanderia. Conforme explicado, o e-mail, o evento no calendário e a notificação serão recebidos pelo usuário sempre que uma das gavetas estiver quase vazia ou o saco da roupa estiver quase cheio.
No entanto, encontramos o problema de atraso no recebimento do e-mail ou do Google Calender e o IFTTT enviam apenas um e-mail ou mesmo quando as gavetas 1 e 2 e o saco de roupa suja estão acionados. Além disso, não há atraso significativo no IFTTT App em dar a notificação. Conforme mostrado na imagem, todas as três notificações foram recebidas ao mesmo tempo. Portanto, recomendamos o uso do aplicativo IFTTT para ser usado neste tipo de sistema para mitigar o atraso.
Etapa 14: usando o serviço Zapier
Já que enfrentamos o problema no IFTTT onde temos um atraso significativo e recebemos apenas uma notificação (seja Gmail ou Google calendar) onde todas as gavetas e saco de roupa suja são realmente acionados. O problema foi consultado para Adafruit e eles sugeriram o uso de Zapier. Para usar o Zapier, você deve ser convidado, pois a conexão com Adafruit IO ainda está em fase de testes (no momento, há menos de 10 usuários ativos). Ao implementar, podemos receber e-mail e calendário do Google em 5 minutos (a cada 5 minutos, o Zapier verifica se um novo valor em um feed monitorado apareceu, se sim, o miniaplicativo é executado). Além disso, há um histórico de tarefas onde podemos monitorar a ativação do Adafruit para o Gmail e o calendário do Google.
Basicamente, é o mesmo princípio com IFTTT, onde você precisa definir o gatilho de Adafruit, em seguida, defina o feed de seu painel, neste caso, se gaveta1, gaveta2 ou saco de roupa suja. A relação é definida na configuração e condição do filtro, em que definimos como maior que 6 para a gaveta e menor que 5 para a parte traseira da roupa. Por fim, defina se deseja enviar um e-mail pelo Gmail ou adicionar um evento rápido.
Etapa 15: desestabilizando o sistema a partir do nível IFTTT
O sistema também pode ser acionado a partir do IFTTT, o que fornece ao usuário um nível de automação. Para fazer isso, estamos criando dois miniaplicativos adicionais para cada sensor - um que liga o sensor e o outro que o desliga.
Ativando o miniaplicativo
Gatilho (If)
- Na janela do serviço de pesquisa, digite: Data & Time.
- Escolha a opção: Todos os dias às.
- Defina o valor para a hora necessária (neste exemplo, 21:00).
Ação (então)
- Na janela de serviços de pesquisa, digite Adafruit IO.
- Rótulo do campo - nome do feed ON / OFF.
- Valor: On
Preencha o campo de título do miniaplicativo com o nome do miniaplicativo e adicione uma breve descrição do miniaplicativo. Clique em Salvar e ative o miniaplicativo.
Desligando o miniaplicativo
Clone seu miniaplicativo e altere:
- Seção de acionamento: valor de tempo em 15 minutos depois (ou seja, 21:15).
- Seção de ação: Valor: OFF.
Clique em Salvar e ative o miniaplicativo.
Da mesma forma, crie miniaplicativos para o resto dos sensores. Lembre-se: para obter notificação de todos os sensores, não apenas da leitura do painel, dois sensores não devem ser acionados ao mesmo tempo (significando que a Gaveta 1 foi acionada - 9h00-9h15, Gaveta 2-9h15-9h30, Lavanderia - 21h30 - 21h45).
Etapa 16: Escopo Futuro: Industrilização do Produto
O dispositivo IoT construído aqui pode ser facilmente produzido a granel e vendido para empresas que vendem casas inteligentes. É uma ferramenta útil para pessoas com agendas lotadas ou em casas grandes com muitas pessoas e quartos. Nesse caso, o painel pode incluir dados de todas as salas de todas as pessoas e, assim, facilitar suas vidas. Como isso é totalmente sem fio e, portanto, pode ser facilmente dimensionado para qualquer número de gavetas necessárias.
Etapa 17: Possíveis problemas que você pode enfrentar
1. você pode ver seu ultra-som fornecendo valores aleatórios. É porque sua alimentação pode não ser 5V. O mais seguro é usar baterias de 9V e usar potenciômetros.
2. Certifique-se de que o aterramento seja o mesmo para o sensor e ESP, caso contrário, todo o sistema não funcionará.
Etapa 18: em direção ao fim …
Este sistema de lavanderia é uma ideia nova. Ainda não existe um produto como este no mercado. Portanto, se você quiser em sua casa, terá que construí-lo sozinho. Esperamos que você entenda as instruções. Era apenas uma essência de IoT e eletrônica.
Este sistema é muito fácil de usar. No entanto, ele tem diretrizes de uso. As roupas nas lixeiras devem ser mantidas dobradas, caso contrário, o sensor apenas detecta a distância errada. Não é aconselhável usar para roupas de inverno em gavetas pequenas, pois os jakets são volumosos e a retirada de uma ou duas jaquetas deixaria a gaveta vazia. O que pode não ser muito útil.
Durante nosso trabalho, usamos as seguintes fontes, que podem ser úteis para uma compreensão mais profunda do projeto:
learn.adafruit.com/mqtt-adafruit-io-and-yo…
www.instructables.com/id/Distance-Measurem…