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//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
}
}
//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);
}
}
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);
}
}
//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);
}
}
//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);
}
}
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);
}
}