Como construir um Sensor de Umidade do Solo Capacitivo (HW-390) para ESP8266, ESP32, Raspberry Pi Pico W para Alexa

Nesta parte, vamos orientá-lo na construção de um Sensor de Umidade do Solo Capacitivo que pode ser conectado a um ESP32, ESP8266 ou Raspberry Pi Pico W. Uma vez configurado, você poderá verificar o nível de umidade do solo usando Amazon Alexa, perguntar à Alexa sobre informações dele, e também monitorá-lo através do aplicativo Sinric Pro e enviar uma notificação push quando a umidade do solo estiver seca ou úmida.

Sinric Pro HW-390 capacitive soil moisture sensor

Pré-requisitos:

  1. ESP32, ESP8266 ou Raspberry Pi Pico W x 1.
  2. Sensor de Umidade do Solo Capacitivo (HW-390) x 1.
  3. Planta com vaso x 1.
  4. Cabos Jumper.

Nota: no ESP32, ADC2 (GPIO04, GPIO02, GPIO15) é instável quando Wi-Fi está sendo usado.

Introdução rápida ao Sensor de Umidade do Solo Capacitivo

Sensores de umidade do solo capacitivos medem a resistência elétrica entre duas sondas. A resistência muda dependendo da quantidade de água no solo. O sensor é conectado a um microcontrolador (MCU), que mede a capacitância entre as sondas. O circuito HW-390 converte a medição de capacitância para um sinal de tensão (ADC), que é então enviado para o MCU. O MCU pode usar este sinal para exibir o nível de umidade do solo ou para controlar outros dispositivos.

Nota: Fertilizantes e corrosão podem reduzir a precisão do sensor ao longo do tempo.

Fiação do Sensor de Umidade do Solo Capacitivo

Sinric Pro HW-390 esp8266 capacitive soil moisture sensor wiring

MCU Pino GPIO
ESP32 34 (Analog ADC1_CH6)
ESP8266 A0
Pico W GP26 (ADC0)

Vamos verificar se o sensor está conectado corretamente e funcionando.

#if defined(ESP8266)
  const int adcPin = A0;  
#elif defined(ESP32) 
  const int adcPin = 34;  
#elif defined(ARDUINO_ARCH_RP2040)
  const int adcPin = 26;  
#endif

void setup() {
  Serial.begin(9600);
  pinMode(adcPin, INPUT);
}

void loop() {
 Serial.println(analogRead(adcPin)); 
 delay(1000);
}

HW-390 capacitive soil moisture sensor arduino readings

Vamos converter a entrada analógica para um valor de porcentagem.

#if defined(ESP8266)
  const int adcPin = A0;  
#elif defined(ESP32) 
  const int adcPin = 34;  
#elif defined(ARDUINO_ARCH_RP2040)
  const int adcPin = 26;  
#endif

const int DRY = 720; // TODO: Este é o valor quando o solo está seco. Ajuste de acordo com seu caso de uso
const int WET = 560; // TODO: Este é o valor quando o solo está úmido. Ajuste de acordo com seu caso de uso

void setup() {
  Serial.begin(9600);
  pinMode(adcPin, INPUT);
}

void loop() {
 int sensorVal = analogRead(adcPin);
 int percentage = map(sensorVal, WET, DRY, 100, 0); 
 Serial.printf("Valor do sensor: %d porcentagem: %d%%\r\n", sensorVal, percentage); 
 
 delay(1000);
}

Sinric Pro moisture sensor esp8266 readings

Passo 1: Conectar ao Sinric Pro

Passo 1.1: Criando um tipo de dispositivo personalizado para Sensor de Umidade do Solo Capacitivo.

Sinric Pro não tem um tipo de dispositivo integrado para Sensor de Umidade do Solo Capacitivo, então vamos criar um tipo de dispositivo personalizado para Sensor de Umidade do Solo Capacitivo usando o recurso Device Template para ver.

  1. Solo está Úmido ou Seco

  2. Nível de umidade.

Nota: Você pode usar o recurso de importação de template de dispositivo mencionado abaixo para pular a criação do template completo.

Sinric Pro capacitive soil moisture sensor device template

Aqui devemos selecionar as características do nosso Sensor de Umidade do Solo. Queremos saber se o Solo está Úmido ou Seco e o Nível de umidade. Então vamos arrastar uma capacidade Range, Mode e Push Notification.

Sinric Pro custom device type for capacitive soil moisture sensor

Clique no botão Configure e configure as duas capacidades como abaixo.

Sinric Pro moisture sensor template mode and range settings

Clique em Save para salvar.

Sinric Pro moisture sensor template mode and range settings

Clique em Save para salvar o template.

Sinric Pro moisture saved template

Agora você pode ver o template que acabamos de criar.

Importar um template existente?

Se você está com preguiça de configurar todos os valores dos Modos e Range, você pode usar o recurso de importação.

Sinric Pro capacitive soil moisture sensor import template

Cole este Template:

Sinric Pro create device alexa

Sinric Pro copy device id

Sinric Pro copy device id

Passo 2: Conectar ao Sinric Pro

Passo 2.1 Instalar a Biblioteca Sinric Pro

Sinric Pro install SinricPro library

2.2 Código Completo

Agora você deve conseguir ver a umidade do solo via Alexa, App Sinric Pro

Alexa, Qual é a umidade (nome do modo) no jardim(nome do dispositivo)

Alexa, Qual é o nível de umidade(nome do range) no jardim(nome do dispositivo)

Sinric Pro Alexa water sensor

Sinric Pro portal

Solução de Problemas

  1. Google Home ou SmartThings não são suportados.

  2. Consulte nossa página de Solução de Problemas para mais detalhes.

Este documento é código aberto. Viu um erro de digitação? Por favor, crie uma issue