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:

Componentes
Cantidad
Observaciones

ESP32

1

KY-021 MINI SWITCH

1

Conexión

La conexión entre el sensor de ultrasonido se muestra en la siguiente tabla:

ESP32
DS1307

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

  1. Configurar en Platformio la plataforma a emplear eligiendo como dispositivo el ESP32 tal y como se resume en la siguiente tabla:

Parametro
Valor

Name

Nombre del proyecto (ESP32-DS1307)

Board

NodeMCU-32S (Board disponible en el laboratorio)

Framework

Arduino (Es el que hemos manejado)

  1. 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