ESP8266 - Sensor de Vibração SW-420

O módulo sensor de vibração SW-420 reage a tremores, batidas ou impactos no objeto em que ele está montado. Ele serve para projetos como um alarme simples contra roubo ou violação, uma encomenda que avisa sobre manuseio brusco, ou uma máquina que precisa de um aviso quando começa a tremer de forma anormal.

Este tutorial ensina você a usar o ESP8266 e um sensor de vibração SW-420 para detectar vibração. Vamos explorar:

ESP8266 NodeMCU NodeMCU sensor de vibração SW-420

A partir daí, o código pode ser facilmente estendido para tocar um buzzer, piscar um LED ou enviar uma notificação sempre que uma vibração for detectada.

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×SW-420 Vibration Sensor Module
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

Or you can buy the following kits:

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 Sensor de Vibração SW-420

O módulo sensor de vibração SW-420 foi feito para detectar tremores, batidas ou impactos no objeto em que ele está montado. Dentro da sua carcaça metálica há uma pequena chave baseada em mola posicionada perto de um contato metálico; um comparador LM393 na placa monitora essa chave e transforma qualquer perturbação em um sinal digital limpo, enquanto um pequeno potenciômetro na placa permite ajustar quanto tremor é necessário para disparar.

Pinagem do Sensor de Vibração SW-420

O sensor de vibração SW-420 possui três pinos:

  • Pino VCC: precisa ser conectado ao VCC (3,3V a 5V)
  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino DO: é um pino de saída: LOW enquanto tudo está parado e HIGH no momento em que uma vibração ou impacto é detectado. Este pino precisa ser conectado a um pino de entrada do ESP8266.
Pinagem do Sensor de Vibração SW-420
image source: diyables.io

O módulo sensor de vibração SW-420 vem com dois LEDs indicadores:

  • Um LED indica o estado da alimentação.
  • Outro LED acende sempre que o pino DO vai para HIGH, ou seja, sempre que uma vibração é detectada.

Como Funciona

Veja como o sensor se comporta:

  • Enquanto o módulo fica parado, a chave de mola interna permanece aberta e o pino DO permanece em LOW.
  • No instante em que o módulo é sacudido, batido ou golpeado, a chave de mola toca o contato e o comparador LM393 coloca o pino DO em HIGH.
  • Girar o potenciômetro da placa no sentido horário ou anti-horário aumenta ou diminui a força que um impacto precisa ter para a saída mudar.

Diagrama de Ligação

  • O diagrama de ligação entre o ESP8266 e o sensor de vibração SW-420
Diagrama de Ligação do Sensor de Vibração SW-420 com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Como Programar o Sensor de Vibração SW-420

  • Inicializa o pino do ESP8266 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D7
pinMode(D7, INPUT);
  • Lê o estado do pino do ESP8266 usando a função digitalRead().
int vibrationState = digitalRead(D7);

Código ESP8266 - Detectando a vibração

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-sw-420-vibration-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to the DO pin of the SW-420 vibration sensor int last_state = LOW; // The last reading from the input pin, LOW means idle (no vibration) int cur_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP8266's input pin cur_state = digitalRead(SENSOR_PIN); if (last_state == LOW && cur_state == HIGH) Serial.println("vibration detected"); else if (last_state == HIGH && cur_state == LOW) Serial.println("vibration stopped"); // save the current state for the next comparison last_state = cur_state; }

Passos Rápidos

Para começar com o ESP8266 na Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for sua primeira vez usando o ESP8266.
  • Conecte os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Copie o código acima e abra com a Arduino IDE
  • Clique no botão Upload na Arduino IDE para fazer upload do código para o ESP8266
  • Toque ou sacuda o sensor SW-420
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
vibration detected vibration stopped vibration detected vibration stopped
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

A partir daqui, o sketch pode ser estendido para que o ESP8266 toque um buzzer, acenda um LED ou envie uma notificação sempre que uma vibração for detectada. Para instruções detalhadas e mais informações, consulte os tutoriais indicados no final deste guia.

Solução de Problemas

Se você tiver problemas com o sensor de vibração SW-420 não funcionando corretamente, tente 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 muita facilidade ou não disparar.
  • Isole-o da vibração ambiente: Monte o módulo longe de motores, ventiladores ou outras fontes de vibração constante de fundo que possam causar falsos acionamentos.
  • 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 esteja limpa e estável para leituras consistentes.

Vídeo

Referências de Funções

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!