Como construir um monitor fitossanitário usando ESP8266 e o MIT App Inventor

A maioria das plantas domésticas requer monitoramento de temperatura, umidade e umidade para um cuidado ideal. As temperaturas que excedem a faixa ideal podem causar estresse, murchamento, crescimento atrofiado e até morte, enquanto as temperaturas frias podem retardar o desenvolvimento das plantas, levando a um crescimento fraco e suscetibilidade a danos causados ​​pela geada. A umidade excessiva estimula doenças fúngicas e impede a transpiração adequada, enquanto o ar mais seco normalmente faz com que as folhas sequem e caiam, afetando a fotossíntese e a saúde geral das plantas.

A rega excessiva também pode causar apodrecimento das raízes e outras doenças. É um delicado equilíbrio de cuidados ideais, dependendo da planta. Embora plantas diferentes tenham necessidades diferentes, as preferências gerais de temperatura ficam entre 18° e 23° C, com níveis de umidade em torno de 40% a 60%. Os níveis de umidade podem variar mais amplamente com base nas espécies de plantas.

Neste projeto, construiremos um monitor fitossanitário online usando ESP8266, um sensor de umidade e o sensor de temperatura e umidade DHT11. Os dados relacionados de temperatura, umidade e umidade serão publicados em um site local hospedado em um servidor web baseado em ESP8266. Também projetaremos um aplicativo móvel usando o MIT App Inventor, onde poderemos acessar esses dados com o clique de um botão.

Componentes necessários

  1. ESP8266x1
  2. DHT11 x1
  3. Sensor de umidade x1
  4. Conectando fios/fios de jumper

Conexões de circuito
Aqui estão as etapas para construir este projeto para suas plantas:

  • Interface DHT11 e sensor de umidade com ESP8266.
  • Conecte os pinos VCC e GND do DHT11 com os pinos 3Vout e terra do ESP8266, respectivamente.
  • Conecte o pino de saída do DHT11 ao pino GPIO5 do ESP8266.
  • Conecte o resistor de 4,7K entre GPIO5 e 3Vout do ESP8266.
  • Conecte os pinos VCC e GND do sensor de umidade com 3Vout e aterramento do ESP8266, respectivamente.
  • Conecte a saída analógica do sensor de umidade ao A0 do ESP8266.

Esboço do Arduino

Como funciona
O ESP8266 opera como um servidor web, lendo a temperatura e a umidade do sensor DHT11 e a umidade do sensor de umidade. O ESP8266 então publica os dados do sensor em uma página da web: /root/read. O URL raiz é o URL da rede WIFI ou roteador. Os dados do sensor sobre os parâmetros fitossanitários podem ser acessados ​​navegando na página /root/read, onde a raiz é o endereço IP da rede WIFI.

Qualquer navegador que acesse a página web atua como um cliente web. Os dados do sensor são sempre obtidos em tempo real sempre que há uma solicitação do cliente web.

O aplicativo móvel também atua como um cliente web, construído usando o MIT App Inventor. Ele também pode acessar os valores em tempo real das condições da planta através de um smartphone, fazendo solicitações HTTP ao servidor web baseado em ESP8266. Sempre que uma solicitação HTTP é feita através de um navegador web ou aplicativo, o ESP8266 coleta as condições da planta em tempo real e as publica na URL web. Isso é acessado pelo navegador ou aplicativo móvel.

O aplicativo do MIT
O MIT App Inventor é usado para construir um aplicativo móvel que pode acessar as condições atuais da planta. O aplicativo possui o seguinte design de front-end.

O aplicativo possui apenas uma tela, renomeada como “Monitor de Saúde Vegetal”. A interface de usuário do aplicativo possui três componentes: um rótulo, um botão e um cliente web. O rótulo possui as seguintes propriedades.

O botão tem estas propriedades:

O aplicativo é programado com base neste diagrama de blocos:

O código

O esboço começa importando as bibliotecas DHT.h e ESP8266WiFi.h. A biblioteca DHT.h funciona com o sensor DHT11, e a biblioteca ESP8266WiFi.h executa funcionalidades WIFI no ESP8266. Isto é seguido pelas atribuições de pinos do sensor DHT e pela instanciação de um objeto DHT. Variáveis ​​são declaradas para armazenar as credenciais WiFi e um objeto do servidor WiFi é instanciado. As variáveis ​​para armazenar o valor analógico do sensor de umidade, porcentagem de umidade, umidade e temperatura são declaradas.

Na função setup , a taxa de transmissão para comunicação serial é definida como 9600 BPS e um tempo limite de dois segundos é fornecido para o sensor DHT. ESP8266 está conectado ao WiFi e o servidor web é iniciado. O sensor DHT é inicializado e uma mensagem é impressa no console serial informando que o sensor está operando.

Na função loop , o ESP8266 lê os valores dos sensores de umidade e DHT11, armazenando-os como variáveis ​​globais. O servidor ESP8266 “procura” qualquer cliente web em potencial (um navegador de computador ou um aplicativo de smartphone). Se uma solicitação HTTP de um navegador ou aplicativo fitossanitário for recebida, o endereço IP desse cliente web será impresso no console serial. Quando o cliente web está disponível, uma página contendo os valores de umidade, temperatura e umidade em tempo real é enviada para ele.

Quando o aplicativo de monitoramento fitossanitário acessa os dados do sensor do servidor web ESP8266, ele exibe o conteúdo da página web no rótulo da interface de usuário do aplicativo.

Solução de problemas
O servidor web baseado em ESP8266 se conecta ao endereço IP de um roteador WiFi. Este endereço é impresso no console serial quando o ESP8266 se conecta ao WiFi. No entanto, o status do seu endereço IP pode fazer diferença para o aplicativo:

  • Se o seu roteador tiver IP estático, esse endereço permanecerá constante, o que é o ideal.
  • Se o seu roteador tiver um endereço IP dinâmico (DHCP), ele muda frequentemente sempre que o roteador é reinicializado. Isso significa que o servidor web baseado em ESP8266 hospedará a página da web em um endereço IP totalmente novo.

Se isso ocorrer, talvez seja necessário alterar a URL do componente da web no aplicativo móvel para acessar os dados do sensor.

Resultados
Esta é a aparência do projeto:

Quando o ESP8266 está ligado, ele se conecta ao WiFi, inicializando o sensor DHT. Quando um cliente web, como um navegador ou o aplicativo Plant Health Monitor, acessa a URL, o '/root/read' envia uma solicitação HTTP. Os dados do sensor também são impressos no console serial.

As mensagens do console serial são exibidas abaixo.

Os dados fitossanitários são acessados ​​através da URL '/root/read' em um navegador da web. Sua raiz é o endereço IP da rede WiFi, conforme mostrado abaixo.

Os dados de saúde das plantas acessados ​​no aplicativo Plant Health Monitor são mostrados abaixo.

Notas Adicionais

É possível que sua conexão WiFi esteja lenta ou que o servidor baseado em ESP8266 demore para responder. Seja paciente e fique atento às mensagens impressas no console serial. Quando um navegador ou aplicativo solicita dados do servidor baseado em ESP, ele imprime o endereço IP do cliente remoto conectado e os dados do sensor no console.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.