ESP32 - Sensor de Vibração SW-420
O módulo sensor de vibração SW-420 consegue captar impactos, batidas e tremores ao seu redor, transformando uma simples perturbação mecânica em um sinal digital que o seu ESP32 pode usar.
Neste tutorial, vamos aprender como usar o ESP32 e um sensor de vibração SW-420 para detectar vibração. Vamos abordar o seguinte:
- Conectar o sensor de vibração SW-420 ao ESP32
- Programar o ESP32 para detectar vibração usando o sensor de vibração SW-420.

Depois que a detecção básica estiver funcionando, você pode ampliar o código para acionar um buzzer, piscar um LED ou enviar uma notificação sempre que uma vibração for captada.
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) |
Sobre o Sensor de Vibração SW-420
O módulo sensor de vibração SW-420 foi feito para perceber impactos e tremores no objeto em que está montado. Dentro do módulo, uma pequena chave de vibração com mola fica perto de um contato metálico; um comparador LM393 na placa monitora essa chave e gera um sinal digital limpo sempre que vibração ou impacto a perturba, enquanto um potenciômetro na placa permite ajustar o quanto de tremor é necessário para acionar a saída.
Pinagem do Sensor de Vibração SW-420
O sensor de vibração SW-420 tem três pinos:
- Pino VCC: deve ser conectado ao VCC (3,3V a 5V)
- Pino GND: deve ser conectado ao GND (0V)
- Pino DO: é um pino de saída: LOW quando o sensor está em repouso e HIGH quando vibração ou impacto é detectado. Este pino deve ser conectado a um pino de entrada do ESP32.

O módulo sensor de vibração SW-420 tem dois indicadores LED:
- Um indicador LED mostra o estado da alimentação.
- O outro indicador LED acende sempre que o pino DO vai para HIGH, sinalizando que uma vibração foi detectada.
Como Funciona
Veja como o pino de saída do sensor se comporta:
- Quando o módulo está parado, a chave interna fica aberta e o pino de saída fica em LOW.
- Quando vibração ou impacto perturba o módulo, a chave interna fecha por um instante e o pino de saída vai para HIGH.
Diagrama de Ligação
- Como conectar o ESP32 e o sensor de vibração SW-420 usando uma protoboard

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.
- Como conectar o ESP32 e o sensor de vibração SW-420 usando uma placa breakout com bornes de parafuso

Como Programar o Sensor de Vibração SW-420
- Inicializa o pino do ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino GPIO18
- Lê o estado do pino do ESP32 usando a função digitalRead().
Código ESP32 - Detectando a vibração
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 no Arduino IDE.
- Copie o código acima e abra no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no ESP32
- Toque ou balance o sensor SW-420
- Veja o resultado no Serial Monitor.
A partir daqui, você está livre para personalizar o código para acionar um buzzer, piscar um LED ou enviar um alerta sempre que uma vibração for detectada. Para orientações mais detalhadas e instruções passo a passo, você pode consultar os tutoriais indicados no final deste tutorial.
Solução de Problemas
Se você tiver algum problema com o funcionamento do sensor de vibração SW-420, considere os seguintes passos de solução de problemas:
- Ajuste a sensibilidade: Gire o potenciômetro da placa para deixar o sensor mais ou menos sensível se ele disparar com facilidade demais ou não disparar.
- Isole de vibrações do ambiente: Monte o sensor longe de motores, ventiladores ou superfícies que vibram constantemente, pois isso pode causar disparos falsos contínuos.
- Verifique a ligação: Certifique-se de que os pinos VCC, GND e DO estejam conectados corretamente.
- Verifique a fonte de alimentação: Garanta que a fonte de alimentação seja limpa e estável para leituras consistentes.