Índice:
- Etapa 1: O que você precisa
- Etapa 2: Protótipo de placa de ensaio
- Etapa 3: configuração do software
- Etapa 4: Prepare a placa de carregamento solar
- Etapa 5: construir o circuito do microcontrolador
- Etapa 6: instalar prensa-cabos
- Etapa 7: montagem completa do circuito
- Etapa 8: preparar o painel solar
- Etapa 9: Teste
- Etapa 10: Use fora
Vídeo: Medidor de umidade do solo solar com ESP8266: 10 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
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
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
É 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.
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.
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
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.
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 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
Solde a placa do microcontrolador e a chave liga / desliga em uma placa perma-proto.
Conecte a saída de energia do carregador solar à entrada do seu switch, que deve ser classificada para pelo menos 1 amp.
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
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.
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.
Etapa 7: montagem completa do circuito
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 -).
Insira o sensor de solo através da outra glândula e conecte-o ao perma-proto conforme o diagrama do circuito.
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.
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.
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
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
Conecte sua bateria e ligue o circuito pressionando o botão liga / desliga.
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.
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
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:
Stick de monitoramento de umidade do solo Arduino - Nunca se esqueça de regar suas plantas: 4 etapas (com fotos)
Stick de monitoramento de umidade do solo Arduino - nunca se esqueça de regar suas plantas: Você costuma se esquecer de regar suas plantas de interior? Ou talvez você lhes dê atenção demais e os regue demais? Se você fizer isso, você deve fazer para si um bastão de monitoramento da umidade do solo alimentado por bateria. Este monitor usa umidade capacitiva do solo
Automatizando uma estufa com LoRa! (Parte 1) -- Sensores (temperatura, umidade, umidade do solo): 5 etapas
Automatizando uma estufa com LoRa! (Parte 1) || Sensores (Temperatura, Umidade, Umidade do Solo): Neste projeto irei mostrar como automatizei uma estufa. Isso significa que vou mostrar como construí a estufa e como conectei a eletrônica de energia e automação. Além disso, mostrarei como programar uma placa Arduino que usa L
Detector de umidade do solo Thirsty Flamingo: 5 etapas (com fotos)
Detector de umidade do solo Thirsty Flamingo: sensores de umidade são usados em uma variedade de projetos diferentes. Você pode usá-los para testar os níveis de umidade de diferentes materiais e até mesmo testar os níveis de umidade nas paredes de sua casa se suspeitar que estão úmidas. No projeto do flamingo sedento
Monitor de umidade do solo faça você mesmo com Arduino e um visor Nokia 5110: 6 etapas (com fotos)
DIY Soil Moisture Monitor com Arduino e um display Nokia 5110: Neste Instructable, vamos ver como construir um Soil Moisture Monitor muito útil com um grande display Nokia 5110 LCD usando Arduino. Meça facilmente os níveis de umidade do solo da sua planta a partir do seu Arduino e construa dispositivos interessantes
Plano de teste do sensor de umidade do solo: 6 etapas (com fotos)
Plano de Teste do Sensor de Umidade do Solo: Desafio: Projete e execute um plano que acenderá um LED VERMELHO quando o solo estiver molhado e um LED VERDE quando o solo estiver seco. Isso envolverá o uso de um Sensor de Umidade do Solo. Objetivo: O objetivo deste instrutível é ver se choveu e se a planta