Ejemplo 9
En esta sección se mostratan varios ejemplos
Modulo switch
Descripción
Este ejemplo en construcción ... pagina 91 del tutorial de Elegoo
Shock switch (Sensor de impacto, vibracion)
Tild switch (Sensor de inclinación)
Componentes
La siguiente tabla muestra los componentes principales del circuito a montar:
ESP32
1
KY-021 MINI SWITCH
1
Disponible en el 37 sensor Kit. Para mas información sobre este puede consultar la pagina KY-021 MINI MAGNETIC REED SWITCH MODULE (link)
Conexión
La conexión entre el sensor de ultrasonido se muestra en la siguiente tabla:
GND
GND
5V
VCC
GPIO21
SDA
GPIO22
SCL
Esquematico
A continuación se muestra el esquematico del circuito:

Conexión
A continuación se muestra la conexión entre los componentes:

Archivo Fritzing
Pasos previos si se usa platformio
Configurar en Platformio la plataforma a emplear eligiendo como dispositivo el ESP32 tal y como se resume en la siguiente tabla:
Name
Nombre del proyecto (ESP32-DS1307)
Board
NodeMCU-32S (Board disponible en el laboratorio)
Framework
Arduino (Es el que hemos manejado)
Agregue las librerias necesarias: En este caso se instalo la libreria RTClib de adafruit

Al final el archivo platformio.ini quedo configurado de la siguiente manera:
[env:nodemcu-32s]
platform = espressif32
board = nodemcu-32s
framework = arduino
Programa (implementado en el IDE de Arduino)
A continuación se muestra el programa que se ejecuta en el ESP32. Si este se hubiese implementado en platformio adicionalmente el main.cpp tendria incluida la libreria al principio:
#include <Arduino.h>
En nuestro ejemplo como la implementación se hizo en el IDE de Arduino no se incluye esta libreria de modo que queda como se muestra a continuación.
#include <Arduino.h>
/* ---- Pines I/O ---- */
// Inputs
#define SHOCK_SW 22 // Shock switch module (Elegoo)
// Outputs
#define ALARM LED_BUILTIN // ESP32 Led
#define DEBUG 1
// Variables aplicacion
int sensor_status = 0;
/* ---- Inicialización ---- */
void setup() {
// Inicializacion serial
Serial.begin(19200);
// Inicializacion I/O
pinMode(ALARM,OUTPUT);
pinMode(SHOCK_SW, INPUT);
// Impresion en el monitor serial
#if DEBUG
Serial.println("Shock example -> OK");
#endif
}
/* ---- Loop infinito ---- */
void loop() {
sensor_status = digitalRead(SHOCK_SW);
if(sensor_status == HIGH) {
// Vibracion
digitalWrite(ALARM, HIGH);
#if DEBUG
Serial.println("Vibracion detectada: Pum...");
#endif
}
else {
digitalWrite(ALARM, LOW);
#if DEBUG
Serial.println("No se detecta vibracion: zzz...");
#endif
}
}
Prueba de funcionamiento
La siguiente figura muestra la salida en el monitor...

Componentes importados
Referencias
Last updated