Práctica 5

Sensores Digitales, Analógicos e Inteligentes.

Regresar a Laboratorio

Descripción

En esta práctica se explora el funcionamiento de diferentes tipos de sensores—digitales, analógicos e inteligentes—usando el módulo NodeMCU ESP32. Conocer e identificar las características y aplicaciones específicas de cada sensor, además de aprender a integrarlos con el módulo ESP32 para leer y procesar datos sensoriales. La práctica incluye la configuración de cada tipo de sensor, la programación del módulo para recibir y analizar la información de los sensores.

Instrucciones PDF
...

Código Parte 1


r
Botón

Se detecta el status del botón y se enciende un led.

Ver armado
//BOTON
int boton = 32;
int led = 33;

int status_boton = 0;
  
void setup(){
  pinMode(led, OUTPUT);
  pinMode(boton, INPUT);
}

void loop(){
  status_boton = digitalRead(boton);
  
  if (status_boton == 1){
    digitalWrite(led, HIGH);
  }
  else{
    digitalWrite(led, LOW);r
  }
}

Código Parte 2


Potenciómetro

Se detecta la resistencia que tiene el portenciómetro.

Ver armado
//POT
int pot = 32;
int led = 33;

int pot_value = 0;

void setup(){
  pinMode(led, OUTPUT);
  Serial.begin(115200);
}

void loop(){
  pot_value = analogRead(pot);
  Serial.println(pot_value);
  
  if (pot_value &ilt= 2048){
    digitalWrite(led, HIGH);
  }
  else{
    digitalWrite(led, LOW);
  }
}

Código Parte 3


DHT22

Se detecta la humedad y la temperatura mediate un sensor tipo DHT y se imprime en serial.

Ver armado
//DHT22
#include <DHT.h>

DHT dht(32,DHT22);
int led = 33;
int led2 = 25;

int temp_value = 0;
int hum_value = 0;


void setup(){
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);

  dht.begin();
  Serial.begin(115200);
}

void loop(){
  delay(1000);
  temp_value=dht.readTemperature();
  hum_value=dht.readHumidity();

  Serial.print("Temperatura: ");
  Serial.println(temp_value);
  Serial.print("Humedad: ");
  Serial.println(hum_value);


  
  if (hum_value >= 50){
    digitalWrite(led, HIGH);
  }
  else{
    digitalWrite(led, LOW);
  }
  if (temp_value >= 23){
    digitalWrite(led2, HIGH);
  }
  else{
    digitalWrite(led2, LOW);
  }
}

Código Parte 4


Slider

Se detecta la resistencia que tiene el slider y se imprime via serial.

Ver armado
 //Slider
int sld = 32;
int led = 33;

int sld_value = 0;

void setup(){
  pinMode(led, OUTPUT);
  Serial.begin(115200); 
}

void loop(){
  sld_value = analogRead(sld);
  Serial.println(sld_value);
  
  if (sld_value >= 2048){
    digitalWrite(led, HIGH);
  }
  else{
    digitalWrite(led, LOW);
  }
}

Código Parte 5


PIR

Se detecta si hay movimiento mediante un sensor PIR y se enciende un led.

Ver armado
//PIR
int pir = 32;
int led = 33;

int status_pir = 0;

void setup(){
  pinMode(led, OUTPUT);
  pinMode(pir, INPUT);
}

void loop(){
  status_pir = digitalRead(pir);
  
  if (status_pir == 1){
    digitalWrite(led, HIGH);
  }
  else{
    digitalWrite(led, LOW);
  }
}

Código Parte 6


Ultrasónico

Se obtiene el dato de la distancia mediante un sendor de movimiento ultrasónico y el dato se agrega via serial.

Ver armado
//ULTRASONICO
#include <NewPing.h>

  #define PIN_TRIG 26
  #define PIN_ECHO 27
  
  int ledV  = 32;
  int ledA = 33;
  int ledR = 25;
  
  
  
  void setup(){
    pinMode(ledV, OUTPUT);
    pinMode(ledA, OUTPUT);
    pinMode(ledR, OUTPUT);
  
    Serial.begin(115200);
    pinMode(PIN_TRIG, OUTPUT);
    pinMode(PIN_ECHO, INPUT);
  }
  
  void loop(){
    delay(1000);
    digitalWrite(PIN_TRIG, HIGH);
    delayMicroseconds(10);
    digitalWrite(PIN_TRIG, LOW);
  
    long duration = pulseIn(PIN_ECHO, HIGH);
    int distance = duration / 58;
    Serial.print("Distance in: ");
    Serial.println(distance);
    
    if (distance > 200) {
      digitalWrite(ledV, HIGH);
      digitalWrite(ledA, LOW);
      digitalWrite(ledR, LOW);
    } else if (distance <= 200 && distance > 2) {
      digitalWrite(ledV, LOW);
      digitalWrite(ledA, HIGH);
      digitalWrite(ledR, LOW);
    } else if (distance <= 2) {
      digitalWrite(ledV, LOW);
      digitalWrite(ledA, LOW);
      digitalWrite(ledR, HIGH);
    } else {
      digitalWrite(ledV, LOW);
      digitalWrite(ledA, LOW);
      digitalWrite(ledR, LOW);
    }
  }