ESP32 - Sensor de Chuva - Buzzer
Neste tutorial, vamos explorar como usar o ESP32 para detectar chuva e criar um sistema de alarme com um buzzer.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Buzzer de 12V e o Sensor de Chuva
Não conhece o buzzer de 12V e o sensor de chuva, incluindo pinagem, funcionamento e programação? Veja abaixo tutoriais completos sobre esses temas:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Código ESP32
/*
* Este código de ESP32 foi desenvolvido por pt.newbiely.com
* Este código de ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/esp32/esp32-rain-sensor-buzzer
*/
#define RAIN_SENSOR_PIN 25 // The ESP32 pin GPIO25 connected to the sound sensor
#define BUZZER_PIN 26 // The ESP32 pin GPIO26 connected to the relay
int rain_state = LOW; // current state of rain sensor's pin
int prev_rain_state = LOW; // previous state of rain sensor's pin
void setup() {
Serial.begin(9600); // initialize serial
pinMode(RAIN_SENSOR_PIN, INPUT); // set ESP32 pin to input mode
pinMode(BUZZER_PIN, OUTPUT); // set ESP32 pin to output mode
}
void loop() {
prev_rain_state = rain_state; // store old state
rain_state = digitalRead(RAIN_SENSOR_PIN); // read new state
if (prev_rain_state == LOW && rain_state == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Rain detected!");
digitalWrite(BUZZER_PIN, HIGH); // turn on buzzer
}
else
if (prev_rain_state == HIGH && rain_state == LOW) { // pin state change: HIGH -> LOW
Serial.println("Rain stopped!");
digitalWrite(BUZZER_PIN, LOW); // turn off buzzer
}
}
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 na Arduino IDE.
- Faça a ligação como na imagem acima.
- Conecte a placa ESP32 ao seu PC por um cabo micro USB
- Abra a Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Conecte o ESP32 ao PC por um cabo USB
- Abra a Arduino IDE e selecione a placa e a porta corretas
- Copie o código acima e abra na Arduino IDE
- Clique no botão Upload da Arduino IDE para fazer o upload do código para o ESP32
- Pingue um pouco de água no sensor de chuva
- Ouça o som do buzzer de 12V
Explicação do Código
Leia a explicação linha por linha nos comentários do código-fonte!