Índice:

Medidor de umidade do solo solar com ESP8266: 10 etapas (com fotos)
Medidor de umidade do solo solar com ESP8266: 10 etapas (com fotos)

Vídeo: Medidor de umidade do solo solar com ESP8266: 10 etapas (com fotos)

Vídeo: Medidor de umidade do solo solar com ESP8266: 10 etapas (com fotos)
Vídeo: Wireless Soil Moisture Monitor using Arduino & Lora, Soil Moisture Sensor Lora, Arduino LoRa 2024, Dezembro
Anonim

Neste Instructable, estamos fazendo um monitor de umidade do solo movido a energia solar. Ele usa um microcontrolador wi-fi ESP8266 executando código de baixa energia e tudo é à prova d'água para que possa ser deixado do lado de fora. Você pode seguir esta receita exatamente ou tirar dela as técnicas úteis para seus próprios projetos.

Se você é novo na programação de microcontroladores, verifique minha classe Arduino e minha classe Internet of Things para se atualizar sobre o básico de fiação, codificação e conexão com a Internet.

Este projeto faz parte da minha Classe Solar gratuita, onde você pode aprender mais maneiras de aproveitar a energia do sol por meio de gravuras e painéis solares.

Para acompanhar o que estou fazendo, siga-me no YouTube, Instagram, Twitter, Pinterest e inscreva-se no meu boletim informativo.

Etapa 1: O que você precisa

O que você precisará
O que você precisará

Você vai precisar de uma placa de carregamento de bateria solar e de breakout ESP8266, como o NodeMCU ESP8266 ou Huzzah, bem como um sensor de solo, bateria, botão liga / desliga, algum fio e um gabinete para colocar seu circuito dentro.

Aqui estão os componentes e materiais usados para o monitor de umidade do solo:

  • Microcontrolador ESP8266 NodeMCU (ou similar, Vin deve tolerar até 6V)
  • Placa de carregamento solar Adafruit com termistor opcional e resistor de 2.2K ohm
  • Bateria de íon-lítio de 2200mAh
  • Placa perma-proto
  • Sensor de umidade / temperatura do solo
  • 2 prensa-cabos
  • Invólucro impermeável
  • Par de cabos de alimentação DC à prova d'água
  • Tubulação termorretrátil
  • Painel solar de 3,5 W
  • Botão liga / desliga
  • Fita adesiva de espuma dupla

Aqui estão as ferramentas de que você precisa:

  • Ferro de solda e solda
  • Ferramenta de mãos que ajudam
  • Decapantes de arame
  • Recortes nivelados
  • Pinças (opcional)
  • Pistola de calor ou isqueiro
  • Multímetro (opcional, mas útil para solução de problemas)
  • Cabo USB A-microB
  • Tesoura
  • Broca escalonada

Você precisará de contas gratuitas nos sites de dados em nuvem io.adafruit.com e IFTTT.

Como um associado da Amazon, ganho com as compras qualificadas que você faz usando meus links de afiliados.

Etapa 2: Protótipo de placa de ensaio

Protótipo de placa de ensaio
Protótipo de placa de ensaio

É importante criar um protótipo de placa de ensaio sem solda para projetos como este, para que você possa ter certeza de que seu sensor e código estão funcionando antes de fazer qualquer conexão permanente.

Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem
Imagem

Neste caso, o sensor de solo tem fios trançados para que seja necessário anexar temporariamente cabeçotes sólidos às extremidades dos fios do sensor usando solda, mãos auxiliares e um pouco de tubo termorretrátil.

Imagem
Imagem

Siga o diagrama de circuito para conectar os pinos de energia, aterramento, relógio e dados do sensor (os dados também recebem um resistor pull-up de 10K que vem com o sensor de solo).

  • Fio verde do sensor para GND
  • Sensor fio vermelho para 3,3 V
  • Fio amarelo do sensor para o pino D5 do NodeMCU (GPIO 14)
  • Fio azul do sensor para o pino D6 do NodeMCU (GPIO 12)
  • Resistor pull-up de 10K entre o pino de dados azul e 3,3 V

Você pode traduzir isso para o seu microcontrolador preferido. Se você estiver usando um Arduino Uno ou similar, sua placa já é compatível com o software Arduino. Se você estiver usando o ESP8266, verifique minha Internet of Things Class para obter ajuda passo a passo para configurar o ESP8266 no Arduino (adicionando URLs suplementares ao campo URLs adicionais do gerenciador de placas nas preferências do Arduino e, em seguida, procurando e selecionar novas placas do gerenciador de placas). Eu tendo a usar o tipo de placa Adafruit ESP8266 Huzzah para programar a placa NodeMCU ESP8266, mas você também pode instalar e usar o suporte para placa ESP8266 genérica. Você também precisará do driver de chip de comunicação USB SiLabs (disponível para Mac / Windows / Linux).

Para colocar o sensor em funcionamento com minha placa compatível com o Arduino, baixei a SHT1x Arduino Library da página github do Practical Arduino, descompactei o arquivo e movi a pasta da biblioteca para a pasta Arduino / bibliotecas e a renomeei para SHT1x. Abra o esboço de exemplo ReadSHT1xValues e altere os números dos pinos para 12 (dataPin) e 14 (clockPin), ou copie o esboço modificado aqui:

#incluir

# define dataPin 12 // NodeMCU pino D6 # define clockPin 14 // NodeMCU pino D5 SHT1x sht1x (dataPin, clockPin); // instanciar o objeto SHT1x void setup () {Serial.begin (38400); // Abra a conexão serial para relatar valores ao host Serial.println ("Iniciando"); } void loop () {float temp_c; float temp_f; umidade do flutuador; temp_c = sht1x.readTemperatureC (); // Lê os valores do sensor temp_f = sht1x.readTemperatureF (); umidade = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprime os valores na porta serial Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Umidade:"); Serial.print (umidade); Serial.println ("%"); atraso (2000); }

Carregue este código em sua placa e abra o monitor serial para ver o fluxo de dados do sensor.

Se o seu código não compilar e reclamar que SHT1x.h não foi encontrado, você não instalou a biblioteca de sensores necessária corretamente. Verifique sua pasta Arduino / bibliotecas para um chamado SHT1x, e se estiver em outro lugar, como sua pasta de downloads, mova-o para a pasta de bibliotecas do Arduino e renomeie se necessário.

Se o seu código compila, mas não carrega na placa, verifique as configurações da placa, certifique-se de que a placa esteja conectada e selecione a porta correta no menu Ferramentas.

Se o seu código for carregado, mas a entrada do monitor serial estiver irreconhecível, verifique se a taxa de transmissão corresponde à especificada em seu esboço (38400 neste caso).

Se a entrada do seu monitor serial não parece correta, verifique a fiação contra o diagrama de circuito. O seu resistor pull-up de 10K está colocado entre o pino de dados e 3,3 V? Os dados e o relógio estão conectados aos pinos corretos? A alimentação e o aterramento estão conectados como deveriam estar em todo o circuito? Não prossiga até que este esboço simples esteja funcionando!

A próxima etapa é específica para o ESP8266 e configura a parte de relatório do sensor sem fio opcional do projeto de amostra. Se você estiver usando um microcontrolador compatível com o Arduino padrão (sem fio), continue a desenvolver seu esboço final do Arduino e pule para Preparar a placa de carregamento solar.

Etapa 3: configuração do software

Configuração de software
Configuração de software

Para compilar o código para este projeto com o ESP8266, você precisará instalar mais algumas bibliotecas Arduino (disponíveis através do gerenciador de bibliotecas):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Baixe o código anexado a esta etapa, descompacte o arquivo e abra Solar_Powered_Soil_Moisture_Monitor_Tutorial em seu software Arduino.

#incluir

#include #include #include #include // Especifique as conexões de dados e relógio e instancie o objeto SHT1x #define dataPin 12 // NodeMCU pino D6 #define clockPin 14 // NodeMCU pino D5 SHT1x sht1x (dataPin, clockPin); // configura o feed AdafruitIO_Feed * umidade = io.feed ("umidade"); AdafruitIO_Feed * temperatura = io.feed ("temperatura"); const int sleepTime = 15; // 15 minutos

void setup ()

{Serial.begin (115200); // Abra a conexão serial para relatar valores ao host Serial.println ("Iniciando"); // conecte-se a io.adafruit.com Serial.print ("Conectando-se a Adafruit IO"); io.connect (); // espera por uma conexão enquanto (io.status () <AIO_CONNECTED) {Serial.print ("."); atraso (500); } // estamos conectados Serial.println (); Serial.println (io.statusText ()); }

void loop ()

{io.run (); // io.run (); mantém o cliente conectado e é necessário para todos os esboços. float temp_c; float temp_f; flutuar umidade; temp_c = sht1x.readTemperatureC (); // Lê os valores do sensor temp_f = sht1x.readTemperatureF (); umidade = sht1x.readHumidity (); Serial.print ("Temperatura:"); // Imprime os valores para a porta serial Serial.print (temp_c, DEC); Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Umidade:"); Serial.print (umidade); Serial.println ("%"); umidade-> salvar (umidade); temperatura-> salvar (temp_f); Serial.println ("ESP8266 está dormindo…"); ESP.deepSleep (sleepTime * 1000000 * 60); // Dormir }

Este código é um mashup do código do sensor anterior neste tutorial e um exemplo básico do serviço de dados em nuvem Adafruit IO. O programa entra no modo de baixo consumo de energia e dorme na maior parte do tempo, mas acorda a cada 15 minutos para ler a temperatura e a umidade do solo, e reporta seus dados ao Adafruit IO. Navegue até a guia config.h e preencha seu nome de usuário e chave Adafruit IO, bem como seu nome de rede wi-fi local e senha, em seguida, carregue o código para o seu microcontrolador ESP8266.

Imagem
Imagem

Você terá que fazer um pouco de preparação em io.adafruit.com. Depois de criar feeds de temperatura e umidade, você pode criar um painel para o seu monitor apresentando um gráfico dos valores do sensor e os dados dos feeds de entrada. Se você precisar se atualizar sobre os primeiros passos com Adafruit IO, verifique esta lição em minha aula de Internet das coisas.

Etapa 4: Prepare a placa de carregamento solar

Prepare a placa de carregamento solar
Prepare a placa de carregamento solar

Prepare a placa de carregamento solar soldando seu capacitor e alguns fios nas almofadas de saída de carga. Estou personalizando o meu para carregar a uma taxa mais rápida com um resistor adicional opcional (2.2K soldado através de PROG) e tornando mais seguro deixar sem supervisão substituindo o resistor de montagem em superfície por um termistor de 10K conectado à própria bateria. Isso limitará o carregamento a uma faixa de temperatura segura. Abordei essas modificações com mais detalhes em meu projeto Solar USB Charger.

Etapa 5: construir o circuito do microcontrolador

Construir Circuito de Microcontrolador
Construir Circuito de Microcontrolador
Imagem
Imagem
Imagem
Imagem

Solde a placa do microcontrolador e a chave liga / desliga em uma placa perma-proto.

Imagem
Imagem

Conecte a saída de energia do carregador solar à entrada do seu switch, que deve ser classificada para pelo menos 1 amp.

Imagem
Imagem

Crie e solde as conexões de fio da placa de ensaio descritas no diagrama de circuito acima (ou de acordo com as especificações de sua versão pessoal), incluindo o resistor pull-up de 10K na linha de dados do sensor.

Os pinos de carga do carregador solar fornecerão energia da bateria de 3,7 V quando não houver energia solar, mas serão alimentados diretamente pelo painel solar se ele estiver conectado e ensolarado. Portanto, o microcontrolador deve ser capaz de tolerar uma variedade de tensões, tão baixas quanto 3,7 V e até 6 V CC. Para aqueles que requerem 5 V, um PowerBoost (500 ou 1000, dependendo da corrente necessária) pode ser usado para modular a tensão de carga para 5 V (conforme mostrado no projeto Carregador Solar USB). Aqui estão algumas placas comuns e suas faixas de tensão de entrada:

  • NodeMCU ESP8266 (usado aqui): 5V USB ou 3,7V-10V Vin
  • Arduino Uno: 5V USB ou 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB ou 3,4-6V VBat

A fim de alcançar a vida útil mais longa possível da bateria, você deve levar algum tempo para considerar e otimizar a corrente total que sua corrente consome. O ESP8266 tem um recurso de suspensão profunda que usamos no esboço do Arduino para reduzir drasticamente o consumo de energia. Ele acorda para ler o sensor e consome mais corrente enquanto se conecta à rede para relatar o valor do sensor e, em seguida, volta a dormir por um período de tempo especificado. Se o seu microcontrolador consome muita energia e não pode ser colocado para hibernar facilmente, considere transferir seu projeto para uma placa compatível que consuma menos energia. Deixe uma pergunta nos comentários abaixo se precisar de ajuda para identificar qual placa pode ser a certa para o seu projeto.

Etapa 6: instalar prensa-cabos

Imagem
Imagem

Para fazer pontos de entrada à prova de intempéries para o cabo do painel solar e o cabo do sensor, instalaremos dois prensa-cabos na lateral do invólucro à prova de intempéries.

Imagem
Imagem
Imagem
Imagem

Teste o ajuste de seus componentes para identificar o posicionamento ideal e, em seguida, marque e faça furos em um invólucro à prova d'água usando uma broca escalonada. Instale os dois prensa-cabos.

Imagem
Imagem

Etapa 7: montagem completa do circuito

Montagem de Circuito Completo
Montagem de Circuito Completo

Insira o lado da porta de um cabo de alimentação à prova d'água em um e solde-o na entrada DC do carregador solar (vermelho para + e preto para -).

Imagem
Imagem

Insira o sensor de solo através da outra glândula e conecte-o ao perma-proto conforme o diagrama do circuito.

Imagem
Imagem

Prenda a ponta de prova do termistor na bateria. Isso limitará o carregamento a uma faixa de temperatura segura enquanto o projeto é deixado do lado de fora.

Imagem
Imagem

Carregar enquanto muito quente ou muito frio pode danificar a bateria ou iniciar um incêndio. A exposição a temperaturas extremas pode causar danos e encurtar a vida útil da bateria, portanto, traga-a para dentro se estiver abaixo de zero ou acima de 45 ℃ / 113F.

Imagem
Imagem

Aperte os prensa-cabos para fazer uma vedação à prova de intempéries ao redor de seus respectivos cabos.

Etapa 8: preparar o painel solar

Prepare o painel solar
Prepare o painel solar

Siga minhas instruções para emendar o cabo do painel solar com o lado do plugue do conjunto de cabos de alimentação CC à prova d'água.

Etapa 9: Teste

Teste-o
Teste-o

Conecte sua bateria e ligue o circuito pressionando o botão liga / desliga.

Imagem
Imagem

Teste-o e verifique se ele está reportando à Internet antes de fechar o gabinete e instalar o sensor em seu jardim de ervas, vasos de plantas preciosas ou outro solo dentro do alcance do sinal de sua rede wi-fi.

Imagem
Imagem

Uma vez que os dados do sensor estão sendo registrados online, é fácil configurar uma receita para alertas de e-mail ou texto no site de gateway de API If This Then That. Eu configurei o meu para me enviar um e-mail se o nível de umidade do solo cair abaixo de 50.

Para testá-lo sem esperar que minha planta seque, eu inseri manualmente um ponto de dados para minha alimentação de umidade no Adafruit IO que caiu abaixo do limite. Alguns momentos depois, chega o e-mail! Se os níveis do solo caírem abaixo do meu nível especificado, receberei um e-mail sempre que o feed for atualizado até que eu regue o solo. Para minha sanidade, atualizei meu código para amostrar o solo com muito menos frequência do que a cada 15 minutos.

Etapa 10: Use fora

Use-o fora!
Use-o fora!
Use-o fora!
Use-o fora!

Este é um projeto divertido para personalizar com base nas necessidades de hidratação da sua planta e é fácil trocar ou adicionar sensores ou integrar os recursos de energia solar em seus outros projetos do Arduino.

Obrigado por acompanhar! Adoraria ouvir o que você pensa; por favor poste nos comentários. Este projeto faz parte da minha Classe Solar gratuita, onde você pode encontrar projetos fáceis de quintal e mais aulas sobre como trabalhar com painéis solares. Confira e inscreva-se!

Se você gosta deste projeto, pode estar interessado em alguns dos meus outros:

  • Aula de Internet das Coisas grátis
  • Contador de assinantes do YouTube com ESP8266
  • Tela do rastreador de estatísticas sociais com ESP8266
  • Visor de clima WiFi com ESP8266
  • Valentim da Internet

Para acompanhar o que estou fazendo, siga-me no YouTube, Instagram, Twitter, Pinterest e Snapchat.

Recomendado: