
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03


Visão geral
O objetivo deste projeto é criar um dispositivo compacto capaz de monitorar as condições de uma planta de casa. O dispositivo permite que o usuário verifique o nível de umidade do solo, nível de umidade, temperatura e a "sensação" de temperatura de um smartphone usando o aplicativo Blynk. Além disso, o usuário receberá um alerta por e-mail quando as condições se tornarem inadequadas para a planta. Por exemplo, o usuário receberá um lembrete para regar a planta quando os níveis de umidade do solo caírem abaixo de um nível adequado.
Etapa 1: Requisitos



Este projeto usa uma coisa Sparkfun ESP32, um sensor DHT22 e um Sensor Eletrônico de Umidade do Solo de Tijolo. Além disso, uma rede wi-fi e o aplicativo Blynk são necessários. De preferência, uma caixa à prova d'água deve ser criada para conter o ESP32. Embora este exemplo use uma tomada padrão como fonte de energia, a adição de uma bateria recarregável, painel solar e controlador de carga permitiria que o dispositivo fosse alimentado por energia renovável.
Etapa 2: Blynk



Para ser, baixe o aplicativo Blynk e crie um novo projeto. Anote o token de autenticação - ele será usado no código. Crie novos widgets de exibição no aplicativo Blynk e selecione os pinos virtuais correspondentes definidos no código. Defina o intervalo de atualização para push. Cada widget deve receber seu próprio pino virtual.
Etapa 3: IDE Arduino

Baixe o IDE do Arduino. Siga as instruções de download para o driver ESP32 e o demo para garantir a conectividade wi-fi. Baixe as bibliotecas Blynk e DHT incluídas no código. Preencha o token de autenticação, a senha do wifi, o nome de usuário do wifi e o e-mail no código final. Use o código de demonstração do sensor de umidade do solo para encontrar os valores mínimo e máximo para o tipo de solo. Registre e substitua esses valores no código final. Substitua os valores mínimos de temperatura, umidade do solo e umidade da planta no código final. Faça upload do código.
Etapa 4: Construa



Primeiro, conecte o sensor de umidade do solo a 3,3 V, aterramento e pino de entrada 34. Observe que é integral que a chave esteja definida como A porque a configuração analógica para este sensor será usada. Em seguida, conecte o sensor DHT a 3,3 V, aterramento e pino de entrada 27. O sensor DHT22 requer um resistor de 10K Ohm entre o VCC e o pino de saída de dados. Certifique-se de verificar o diagrama DHT para garantir que ele está conectado corretamente. Configure o ESP32 dentro de um invólucro à prova d'água com o sensor de umidade no solo e o sensor DHT acima da superfície. Conecte-se a uma fonte de alimentação e aproveite os dados do ambiente de sua planta.
Etapa 5: Código
// Bibliotecas incluídas
#define BLYNK_PRINT Serial
#include #include #include #include "DHT.h"
// Informação do sensor DHT
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Pino digital conectado ao sensor DHT DHT dht (DHTPIN, DHTTYPE); // Inicializa o sensor DHT.
// define pinos de entrada e saídas
int solo_sensor = 34; // define o número do pino de entrada analógica conectado ao sensor de umidade
int output_value; // definir como saída
int moisturelevel; // definir como saída
int notificado = 0; // define notifed como 0
retardo de tempo int = 60000L; // define o cronômetro para executar a obtenção de dados uma vez a cada minuto ou 60.000 milissegundos
// definir valores mínimos para a planta
int min_umidade = 20; int min_temperature = 75; int min_umidade = 60;
// Você deve obter o Auth Token no aplicativo Blynk.
char auth = "Auth_Token_Here";
// Suas credenciais de WiFi.
char ssid = "Wifi_Network_Here"; char pass = "Wifi_Password_Here";
Cronômetro BlynkTimer;
// Esta função envia o tempo de atividade do Arduino a cada segundo para o Virtual Pin (5).
// No aplicativo, a frequência de leitura do Widget deve ser definida como PUSH. Isso significa // que você define a frequência de envio de dados para o aplicativo Blynk.
void Sensors () // função principal para ler sensores e enviar para blynk
{output_value = analogRead (solo_sensor); // Lê o sinal analógico do solo_sensor e define como output_value // Mapeia os valores min, max para 100, 0 e restringe entre 0, 100 // Use o código de amostra e o monitor serial para encontrar min e valores máximos para sensor individual e tipo de solo para melhor nível de umidade de calibração = restrição (mapa (output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity (); // Leia a umidade float t = dht.readTemperature (); // Lê a temperatura como Celsius (o padrão) float f = dht.readTemperature (true); // Lê a temperatura como Fahrenheit (isFahrenheit = true) // Computa o índice de calor em Fahrenheit (o padrão) float hif = dht.computeHeatIndex (f, h); // Verifique se alguma leitura falhou e saia mais cedo (para tentar novamente). if (isnan (h) || isnan (t) || isnan (f)) {Serial.println (F ("Falha ao ler do sensor DHT!")); Retorna; } // Isso conecta os valores aos pinos virtuais definidos nos widgets no aplicativo Blynk Blynk.virtualWrite (V5, nível de umidade); // Envia o nível de umidade para o pino virtual 5 Blynk.virtualWrite (V6, f); // Envia a temperatura para o virtual pino 6 Blynk.virtualWrite (V7, h); // Enviar umidade para pino virtual 7 Blynk.virtualWrite (V8, hif); // Enviar índice de calor para pino virtual 8
se (notificado == 0)
{if (moisturelevel <= min_moisture) // Se o nível de umidade for igual ou inferior ao valor mínimo {Blynk.email ("Email_Here", "Plant Monitor", "Water Plant!"); // Enviar e-mail para a estação de tratamento de água} delay (15000); // Os emails Blynk devem ter 15 segundos de intervalo. Atraso 15000 milissegundos if (f <= min_temperature) // Se a temperatura for igual ou inferior ao valor mínimo {Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Enviar e-mail informando que a temperatura está baixa
}
atraso (15000); // Os emails Blynk devem ter 15 segundos de intervalo. Atraso 15000 milissegundos if (h <= min_humidity) // Se a umidade for igual ou inferior ao valor mínimo {Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Enviar e-mail informando que a umidade está baixa} notificada = 1; timer.setTimeout (timedelay * 5, resetNotified); // retardo de tempo múltiplo por número de minutos desejados entre a repetição de e-mails de aviso}}
void resetNotified () // função chamada para redefinir a frequência de e-mail
{notificado = 0; }
void setup ()
{Serial.begin (9600); // Console de depuração Blynk.begin (auth, ssid, pass); // conectar ao blynk timer.setInterval (timedelay, Sensors); // Configura uma função a ser chamada a cada minuto ou o intervalo de tempo definido como dht.begin (); // execute o sensor DHT}
// Loid loop deve conter apenas blynk.run e timer
loop vazio () {Blynk.run (); // Execute blynk timer.run (); // Inicia BlynkTimer}
Recomendado:
Como construir um monitor de planta com o Arduino: 7 etapas

Como construir um monitor de planta com Arduino: Neste tutorial, aprenderemos como detectar a umidade do solo usando um sensor de umidade e piscar um LED verde se tudo estiver ok e display OLED e Visuino. Assista ao vídeo
Monitor de planta Arduino com sensor capacitivo de solo - Tutorial: 6 etapas

Monitor de planta Arduino com sensor capacitivo de solo - Tutorial: Neste tutorial, aprenderemos como detectar a umidade do solo usando um sensor de umidade capacitivo com display OLED e Visuino. Assistir ao vídeo
Monitor inteligente de plantas internas - saiba quando sua planta precisa de rega: 8 etapas (com fotos)

Monitor inteligente de plantas internas - saiba quando sua planta precisa de rega: alguns meses atrás, eu fiz um bastão de monitoramento de umidade do solo que funciona com bateria e pode ser colocado no solo no vaso de sua planta interna para fornecer algumas informações úteis sobre o solo nível de umidade e LEDs intermitentes para avisar quando esperar
Regando sua planta usando um Arduino: 5 etapas (com imagens)

Regando sua planta usando um Arduino: você tem uma planta de casa de que gosta, mas se esquece de regá-la com muita frequência? Este Instructable explicará como fazer um sistema de irrigação de plantas com Arduino e como dar à sua planta um pouco mais de personalidade
Planta de autorregulação usando Arduino: 3 etapas

Planta de autorregulação usando Arduino: Bem-vindo ao meu projeto! É uma planta que tem a capacidade de se cuidar e regar-se sempre que detecta que precisa. Esta foto é uma vista frontal do meu projeto final. O copo contém sua planta na qual você cola o seu hidratante do solo