Índice:

Monitoramento da planta com alerta SMS: 5 etapas
Monitoramento da planta com alerta SMS: 5 etapas

Vídeo: Monitoramento da planta com alerta SMS: 5 etapas

Vídeo: Monitoramento da planta com alerta SMS: 5 etapas
Vídeo: Sistema de Alertas e Notificações Automáticas com Python 2024, Julho
Anonim
Monitoramento de planta com alerta SMS
Monitoramento de planta com alerta SMS

Aqui eu crio monitoramento de planta com alerta SMS. O servidor não é necessário para este sistema de alerta. É um projeto muito barato e confiável.

Etapa 1: Diagrama de blocos do sistema

Diagrama de Bloco do Sistema
Diagrama de Bloco do Sistema

Nas estufas de hoje, muitas medições de parâmetros são necessárias

monitorar e controlar a boa qualidade e produtividade das plantas. Mas para obter os resultados desejados existem alguns fatores muito importantes que entram em jogo como Temperatura, Umidade, Luz e Solo Bom, necessários para um melhor crescimento da planta. Mantendo esses parâmetros em mente, construí um Sistema de Monitoramento Automático de Plantas sobre o módulo GSM usando o Arduino. Este sistema é muito eficiente para o cultivo de plantas de boa qualidade. A outra parte importante deste projeto é que ele é totalmente automático e funciona em baixa tensão como; Fonte de 5-12 V DC.

Hoje em dia, o Módulo GSM é amplamente utilizado para enviar status de SMS de qualquer tipo de dados. Aqui neste projeto, usando o Módulo GSM SIM900A, podemos manter informações sobre os efeitos do clima nas plantas. O sistema também deve demonstrar mudanças climáticas que afetam a planta em sua produtividade e qualidade etc. O objetivo principal de se chegar a este projeto é construir um Monitoramento Automático de Planta no qual o módulo GSM envia as informações sobre Temperatura, Umidade, Intensidade de Luz, Solo umidade.

Como sou cidadão indiano, usei o módulo SIM900A (A significa rede asiática), mas você pode usar diferentes tipos de módulo SIM de acordo com o seu país. Os códigos AT podem ser diferentes.

Etapa 2: Detalhe do Componente

Detalhe do Componente
Detalhe do Componente
Detalhe do Componente
Detalhe do Componente
Detalhe do Componente
Detalhe do Componente

------------------ Eu meço quatro tipos de parâmetros, que vão

para discutir abaixo: ------------------

Temperatura e Umidade

O sensor DHT11 é usado para detectar temperatura e umidade. Quando a temperatura e a umidade são altas, a raiz das plantas é danificada e o crescimento da planta não está bem.

Intensidade da luz

A intensidade da luz é um fator importante para o crescimento da planta. Para detectar a intensidade da luz, o LDR (resistor dependente de luz) é usado. A intensidade da luz é medida em LUX e, portanto, para demonstração, a luz 100 LUX é usada como definido ou nível de limiar.

Umidade do solo

A umidade do solo é muito importante para o bom crescimento das plantas. Aqui, o sensor de solo é usado para medir o teor de umidade no solo. Usando com este sensor, podemos medir os dados do solo em ambos os sentidos, analógico e digital também.

Notificação de SMS:

Quando o valor de qualquer um dos parâmetros acima é excedido de um nível definido ou nível crítico, o sistema automaticamente envia SMS para o proprietário ou o operador com informações de parâmetros relacionados e quando o valor chega na faixa normal ou abaixo do nível definido novamente, o sistema automaticamente enviar SMS para o proprietário ou para a operadora com informações de dados relacionados.

A notificação é enviada apenas uma vez até que a condição não mude para que o proprietário ou operadora não receba SMS frequentes. Portanto, é necessário um pacote SMS inferior.

Etapa 3: Diagrama de Circuito

Diagrama de circuito
Diagrama de circuito

Todas essas peças estão facilmente disponíveis em qualquer site de compras online

ou com um conhecido distribuidor de peças de reposição para eletrônicos. Todas as fichas técnicas dos componentes estão disponíveis na web. Se houver alguma dificuldade sinta-se à vontade para entrar em contato pelo meu e-mail.

Etapa 4: Vídeo de trabalho e arquivo de código

Vídeo de trabalho final do projeto

Etapa 5: Código do programa

#incluir

#incluir

LiquidCrystal lcd (2, 3, 4, 5, 6, 7);

dht DHT; #define dht_dpin A1 #define LUX A0 #define solo A3

float volt, lux, value; int output_value; temperatura interna, umidade; sinalizador de luz int = 0; int humflag = 0; int sinalizador do solo = 0; int tempflag = 0; int check; teste interno, teste1; grau de byte [8] = {0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};

void setup ()

{Serial.begin (9600); // Inicializa a serial para se comunicar com o Modem GSM lcd.begin (16, 2); pinMode (solo, INPUT); lcd.createChar (1, grau); lcd.setCursor (0, 0); lcd.print ("Fitossanidade"); lcd.setCursor (0, 1); lcd.print ("Monitoramento"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("PROJETO AGRI"); lcd.setCursor (0, 1); lcd.print ("Por S K CHHAYA"); atraso (1000); lcd.clear (); } void loop () {output_value = analogRead (solo); output_value = map (output_value, 550, 0, 0, 100); valor = analogRead (LUX); volt = (valor / 1023,0) * 5; lux = ((2500 / volt) - 500) / 3,3; atraso (10000); // Dê tempo suficiente para o GSM se registrar na rede DHT.read11 (dht_dpin); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temp"); lcd.setCursor (0, 1); lcd.print (temperatura = temperatura DHT); // Dados de temperatura no LCD lcd.write (1); lcd.print ("C"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umidade"); lcd.setCursor (0, 1); lcd.print (umidade = DHT.umidade); // Dados de umidade no LCD lcd.print ("%"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Light"); lcd.setCursor (0, 1); lcd.print (lux); // Luz de dados no LCD lcd.print ("LUM"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umidade"); lcd.setCursor (0, 1); lcd.print (output_value); // Dados do solo no LCD lcd.print ("%"); atraso (1000); lcd.clear ();

if (temperatura 40) {SendSMS (); // SMS para alta temperatura} if (umidade 40) {SendSMS2 (); // SMS para umidade alta} if (lux 100) {SendSMS4 (); // SMS para luz alta} if (output_value == 950) {SendSMS7 (); // SMS para Solo Seco} else if (output_value! = 950) {SendSMS6 (); // SMS para solo úmido}} void SendSMS () {if (tempflag == 0) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("Temp alta"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("grau C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temp alta"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); tempflag = 1; verificar = 0; teste = 0; atraso (10); }} void SendSMS1 () {if (tempflag == 1) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("Temperatura baixa"); Serial.print ("Temp"); Serial.print (temperatura); Serial.println ("grau C"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Temperatura baixa"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.setCursor (0, 1); lcd.print (temperatura); lcd.write (1); lcd.print ("C"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); tempflag = 0; verificar = 0; teste = 0; atraso (10); }} void SendSMS2 () {if (humflag == 0) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("Umidade alta"); Serial.print (umidade); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Umidade elevada"); atraso (1000); lcd.setCursor (0, 1); lcd.print ("Umidade"); lcd.print (umidade); lcd.print ("%"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); humflag = 1; verificar = 0; teste = 0; atraso (10); }}

void SendSMS3 () {if (humflag == 1) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("Baixa Umidade"); Serial.print ("Umidade"); Serial.print (umidade); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Baixa Umidade"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umidade"); lcd.setCursor (0, 1); lcd.print (umidade); lcd.print ("%"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); humflag = 0; verificar = 0; teste = 0; atraso (10); }} void SendSMS4 () {if (lightflag == 0) {Serial.println ("AT + CMGF = 1"); // Para enviar SMS em Modo Texto delay (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); // Alterar para o número de telefone de destino delay (500); Serial.print ("Good LIGHT,"); Serial.print ("Intensidade"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); // o caractere de parada Ctrl + Z lcd.setCursor (0, 0); lcd.print ("Boa luz"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensidade"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); sinalizador luminoso = 1; verificar = 0; teste = 0; atraso (10); }} void SendSMS5 () {if (lightflag == 1) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("LOW LIGHT,"); Serial.print ("Intensidade"); Serial.print (lux); Serial.println ("LUX"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Pouca luz"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Intensidade"); lcd.setCursor (0, 1); lcd.print (lux); lcd.print ("LUX"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); sinalizador luminoso = 0; verificar = 0; teste = 0; atraso (10); }} void SendSMS6 () {if (soloflag == 0) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("Solo Seco"); Serial.print ("Umidade"); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.setCursor (0, 0); lcd.print ("Solo Seco"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umidade"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); sinalizador de solo = 1; verificar = 0; teste = 0; atraso (10); }} void SendSMS7 () {if (soloflag == 1) {Serial.println ("AT + CMGF = 1"); atraso (500); Serial.println ("AT + CMGS = \" + 919979897404 / "\ r"); atraso (500); Serial.print ("Solo úmido"); Serial.print ("Umidade"); Serial.print (output_value); Serial.println ("%"); Serial.println ((char) 26); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Solo úmido"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Umidade"); lcd.setCursor (0, 1); lcd.print (output_value); lcd.print ("%"); atraso (1000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Enviando SMS"); atraso (1000); lcd.clear (); sinalizador de solo = 0; verificar = 0; teste = 0; atraso (10); }}

Recomendado: