- Componentes necessários:
- Sensor Ultrassônico HC-SR04:
- Módulo ESP8266 Wi-Fi:
- Diagrama de circuito e explicação:
- Explicação do código:
- "; if (distance <5) {webpage + =" A lata de lixo está cheia ";} else {webpage + =" A lata de lixo está vazia ";} página da web + ="
- Teste e saída do projeto:
Neste DIY, vamos fazer um sistema de monitoramento de lixo / lixo baseado em IOT que nos dirá se a lata de lixo está vazia ou cheia através do servidor da web e você pode saber o status de sua 'lata de lixo' ou 'lixeiras' de em qualquer lugar do mundo pela Internet. Será muito útil e pode ser instalado nas lixeiras de locais públicos e também em casa.
Neste projeto IOT, um sensor ultrassônico é usado para detectar se a lata de lixo está cheia de lixo ou não. Aqui, o sensor ultrassônico é instalado na parte superior da lata de lixo e medirá a distância entre o lixo e o topo da lata de lixo e podemos definir um valor limite de acordo com o tamanho da lata de lixo. Se a distância for menor que este valor limite, significa que a lata de lixo está cheia de lixo e imprimiremos a mensagem “O cesto está cheio” na página da web e se a distância for maior que este valor limite, imprimiremos a mensagem “O cesto está vazio”. Aqui, definimos o valor de limite de 5 cm no código do programa. Usaremos o módulo ESP8266 Wi-Fipara conectar o Arduino ao servidor web. Aqui, usamos o servidor da Web local para demonstrar o funcionamento deste Sistema de monitoramento de lixo.
Componentes necessários:
- Arduino Uno (você pode usar qualquer outro)
- Módulo ESP8266 Wi-Fi
- Sensor ultrassônico HC-SR04
- Resistores 1K
- Tábua de pão
- Fios de conexão
Sensor Ultrassônico HC-SR04:
O Sensor Ultrassônico é usado para medir a distância com alta precisão e leituras estáveis. Ele pode medir distâncias de 2 cm a 400 cm ou de 1 polegada a 13 pés. Ele emite uma onda de ultrassom na frequência de 40 KHz no ar e se o objeto entrar em seu caminho, ele retornará ao sensor. Usando o tempo que leva para atingir o objeto e voltar, você pode calcular a distância.
O sensor ultrassônico possui quatro pinos. Dois são VCC e GND que serão conectados ao 5V e ao GND do Arduino, enquanto os outros dois pinos são Trig e Echo que serão conectados a quaisquer pinos digitais do Arduino. O pino trigonométrico enviará o sinal e o pino Eco será usado para receber o sinal. Para gerar um sinal de ultrassom, você terá que fazer o pino Trig alto por cerca de 10us que enviará uma explosão sônica de 8 ciclos na velocidade do som e após atingir o objeto, será recebido pelo pino Echo.
Além disso, verifique os projetos abaixo para entender adequadamente o funcionamento do sensor ultrassônico e para medir a distância de qualquer objeto que o usa:
- Medição de distância baseada em Arduino usando sensor ultrassônico
- Medição de distância usando HC-SR04 e microcontrolador AVR
Módulo ESP8266 Wi-Fi:
ESP8266 é um módulo Wi-Fi que dará aos seus projetos acesso a Wi-Fi ou internet. É um dispositivo muito barato, mas tornará seus projetos muito poderosos. Ele pode se comunicar com qualquer microcontrolador e tornar os projetos sem fio. Ele está na lista da maioria dos dispositivos líderes na plataforma IOT. Ele funciona com 3,3 V e se você lhe der 5 V ele sofrerá danos.
O ESP8266 possui 8 pinos; o VCC e o CH-PD serão conectados ao 3,3 V para habilitar o wi-fi. Os pinos TX e RX serão responsáveis pela comunicação do ESP8266 com o Arduino. O pino RX funciona com 3,3 V, então você terá que fazer um divisor de tensão para ele, como fizemos em nosso projeto.
Diagrama de circuito e explicação:
Em primeiro lugar, conectaremos o ESP8266 com o Arduino. O ESP8266 funciona com 3,3 V e se você fornecer 5 V do Arduino, ele não funcionará corretamente e poderá ser danificado. Conecte o VCC e o CH_PD ao pino de 3,3 V do Arduino. O pino RX do ESP8266 funciona em 3,3 V e não se comunicará com o Arduino quando o conectarmos diretamente ao Arduino. Portanto, teremos que fazer um divisor de tensão para ele. Três resistores de 1k conectados em série farão o trabalho para nós. Conecte o RX ao pino 11 do Arduino através dos resistores conforme mostrado na figura abaixo e também o TX do Arduino ao pino 10 do Arduino.
Agora é hora de conectar o sensor ultrassônico HC-SR04 ao Arduino. As conexões do sensor ultrassônico com o Arduino são muito simples. Conecte o VCC e o aterramento do sensor ultrassônico ao 5V e o aterramento do Arduino. Em seguida, conecte o pino TRIG e ECHO do sensor ultrassônico aos pinos 8 e 9 do Arduino, respectivamente.
Explicação do código:
Antes de enviar o código, certifique-se de que você está conectado ao Wi-Fi do seu dispositivo ESP8266. Você pode verificar o código completo na seção Código abaixo, o código foi bem explicado pelos comentários, além disso, também explicamos algumas funções importantes abaixo.
O Arduino primeiro lerá o sensor ultrassônico. Ele enviará um sinal ultrassônico na velocidade do som quando deixarmos o pino TRIG alto para 10us. O sinal retornará após atingir o objeto e iremos armazenar a duração do tempo de viagem na variável chamada duration . Em seguida, calcularemos a distância do objeto (lixo no nosso caso) aplicando uma fórmula e a armazenaremos na variável chamada distância .
digitalWrite (trigPin, LOW); atrasoMicrosegundos (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duração = pulseIn (echoPin, HIGH); distância = duração * 0,034 / 2;
Para imprimir a saída da página da web no navegador da web, teremos que usar a programação HTML. Portanto, criamos uma string chamada webpage e armazenamos a saída nela. Para saber se a lata de lixo está vazia ou não, aplicamos uma condição lá. Se a distância for menor que 5cm, então aparecerá “Basket is Full” na página da web e se a distância for maior que 5cm mostrará a mensagem “Basket is Empty” na página web.
if (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {delay (1000); int connectionId = esp8266.read () - 48; String webpage = "
Sistema de monitoramento de lixo IOT
"; página da web + =""; if (distance <5) {webpage + =" A lata de lixo está cheia ";} else {webpage + =" A lata de lixo está vazia ";} página da web + ="
";O código a seguir irá enviar e mostrar os dados na página da web. Os dados, que armazenamos em uma string chamada 'webpage', serão salvos na string chamada 'command' . O ESP8266 irá então ler o caractere um por um do 'comando' e irá imprimi-lo na página da web.
String sendData (comando String, tempo limite const int, depuração booleana) {String response = ""; esp8266.print (comando); tempo interno longo = milis (); while ((tempo + tempo limite)> millis ()) {while (esp8266.available ()) {char c = esp8266.read (); resposta + = c; }} se (depurar) {Serial.print (resposta); } resposta de retorno; }
Teste e saída do projeto:
Após fazer o upload do código, abra o Monitor Serial e ele mostrará um endereço IP conforme mostrado abaixo.
Digite este endereço IP em seu navegador, ele mostrará a saída conforme mostrado abaixo. Você terá que atualizar a página novamente se quiser ver novamente se a lixeira está vazia ou não.
Então é assim que funciona este Sistema de Monitoramento de Lixo, este projeto pode ser aprimorado adicionando mais alguns recursos nele, como podemos definir mais uma mensagem quando a lata de lixo estiver meio cheia ou podemos acionar um e-mail / SMS para alertar o usuário quando a lixeira A cesta está cheia.