ESP32 - Sensor de Inclinação SW520D

O módulo sensor de inclinação SW520D consegue detectar inclinação ou mudanças de orientação no ambiente ao redor. Ele pode ser usado para criar projetos que respondem à inclinação, como um alarme que dispara quando um objeto é mexido ou um servo motor que reage a mudanças de orientação.

Neste tutorial, vamos aprender a usar o ESP32 e um sensor de inclinação SW520D para detectar inclinação. Vamos ver:

Sensor de inclinação SW520D do ESP32

Depois disso, você pode modificar o código para acionar um LED ou uma lâmpada (usando um relé) quando uma inclinação for detectada, ou até fazer um servo motor girar.

Sobre o Sensor de Inclinação SW520D

O módulo sensor de inclinação SW520D pode ser usado para detectar inclinação ou mudanças de orientação no ambiente ao redor. Dentro do módulo há uma pequena esfera de metal que rola entre dois contatos elétricos, dependendo do ângulo de inclinação. O módulo envia um sinal digital simples (ON/OFF), o que facilita a interface com o ESP32.

Pinagem do Sensor de Inclinação SW520D

O sensor de inclinação SW520D tem três pinos:

  • Pino VCC: deve ser conectado a VCC (3.3V a 5V)
  • Pino GND: deve ser conectado a GND (0V)
  • Pino DO: é um pino de saída: HIGH quando o sensor está na vertical e LOW quando o sensor está inclinado. Esse pino deve ser conectado a um pino de entrada do ESP32.
Pinagem do sensor de inclinação SW520D
image source: diyables.io

O módulo sensor de inclinação SW520D tem dois LEDs indicadores:

  • Um LED indicador mostra o estado da alimentação.
  • O outro LED indicador mostra o estado da inclinação: acende quando o sensor está na vertical e apaga quando ele está inclinado.

Como Funciona

Veja como o pino de saída do sensor se comporta:

  • Quando o sensor está na vertical, a esfera de metal lá dentro fecha o contato e o pino de saída vai para HIGH.
  • Quando o sensor está inclinado, a esfera de metal lá dentro abre o contato e o pino de saída vai para LOW.

Diagrama de Ligação

  • Como conectar o ESP32 e o sensor de inclinação SW520D usando uma protoboard
Diagrama de Ligação do ESP32 com Sensor de Inclinação SW520D

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 inclinação SW520D

Como Programar o Sensor de Inclinação SW520D

  • Inicialize o pino do ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino GPIO18
pinMode(18, INPUT);
  • Leia o estado do pino do ESP32 usando a função digitalRead().
int tiltState = digitalRead(18);

Código ESP32 - Detectando a inclinação

/* * 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-sw520d-tilt-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the DO pin of the SW520D tilt sensor int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP32's input pin currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The tilt has been detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The tilt has disappeared"); // save the the last state lastState = currentState; }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 no Arduino IDE.
  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o ESP32
  • Incline o sensor SW520D para frente e para trás
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
The tilt has been detected The tilt has disappeared The tilt has been detected The tilt has disappeared
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Agora temos a liberdade de personalizar o código e fazê-lo acionar um LED ou uma lâmpada quando uma inclinação for detectada. Podemos até fazer um servo motor girar de acordo com a inclinação. Para orientações mais detalhadas e passo a passo, consulte os tutoriais indicados no final deste tutorial.

Solução de Problemas

Se você tiver algum problema com o funcionamento do sensor de inclinação SW520D, considere os seguintes passos de solução de problemas:

  • Verifique a orientação: O SW520D é sensível à orientação da montagem. Garanta que ele esteja instalado na posição vertical correta para uma detecção confiável.
  • Reduza as vibrações: Vibrações mecânicas podem afetar o desempenho do sensor de inclinação. Para minimizar acionamentos falsos, tente montar o sensor em uma superfície estável.
  • Verifique a ligação: Confirme que os pinos VCC, GND e DO estão conectados corretamente.
  • Verifique a fonte de alimentação: Garanta que a fonte de alimentação seja limpa e estável para ter 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!