ESP8266 - Sensor de Inclinação SW520D

O módulo sensor de inclinação SW520D é capaz de detectar inclinação ou mudanças de orientação ao seu 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 responde a mudanças de orientação.

Este tutorial ensina você a usar o ESP8266 e um sensor de inclinação SW520D para detectar inclinação. Vamos explorar:

ESP8266 NodeMCU NodeMCU sensor de inclinação SW520D

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

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×SW520D Tilt 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 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 seu redor. Dentro do módulo, há uma pequena bola de metal que rola entre dois contatos elétricos dependendo do ângulo de inclinação. O módulo fornece um sinal digital simples (ON/OFF), o que facilita a interface com o ESP8266.

Pinagem do Sensor de Inclinação SW520D

O sensor de inclinação SW520D 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: HIGH quando o sensor está na vertical e LOW quando o sensor está inclinado. Este pino precisa ser conectado a um pino de entrada do ESP8266.
Pinagem do Sensor de Inclinação SW520D
image source: diyables.io

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

  • Um LED indica o estado da alimentação.
  • Outro LED indica o estado da inclinação: ele acende quando o sensor está na vertical e apaga quando está inclinado.

Como Funciona

Veja como o sensor se comporta:

  • Quando o sensor está na vertical, a bola de metal dentro dele fecha o contato, e o pino de saída é colocado em HIGH.
  • Quando o sensor está inclinado, a bola de metal dentro dele abre o contato, e o pino de saída é colocado em LOW.

Diagrama de Ligação

  • O diagrama de ligação entre o ESP8266 e o sensor de inclinação SW520D quando alimentado pela porta USB
Diagrama de Ligação do Sensor de Inclinação SW520D 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.

  • O diagrama de ligação entre o ESP8266 e o sensor de inclinação SW520D quando alimentado pelo Vin
Diagrama de Ligação do Sensor de Inclinação SW520D com ESP8266 NodeMCU via Vin

This image is created using Fritzing. Click to enlarge image

Como Programar o Sensor de Inclinação SW520D

  • 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 tiltState = digitalRead(D7);

Código ESP8266 - Detectando a inclinaçã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-sw520d-tilt-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to the DO pin of the SW520D tilt sensor int prev_state = HIGH; // The previous state from the input pin int tilt_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 tilt_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && tilt_state == LOW) Serial.println("The tilt has been detected"); else if (prev_state == LOW && tilt_state == HIGH) Serial.println("The tilt has disappeared"); // save the the last state prev_state = tilt_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
  • Incline o sensor SW520D para frente e para trás
  • 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
The tilt has been detected The tilt has disappeared The tilt has been detected The tilt has disappeared
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Agora, com o código personalizado, podemos fazer com que ele acione um LED ou uma luz quando uma inclinação for detectada. Podemos até fazer um servo motor girar. 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 inclinação SW520D não funcionando corretamente, tente os seguintes passos de solução de problemas:

  • Verifique a orientação: O SW520D é sensível à orientação de montagem. Certifique-se de 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. Montá-lo em uma superfície estável pode ajudar a minimizar 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!