Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CARRERA DE
INGENIERÍA MECATRÓNICA
INTEGRANTES
PACHACAMA LOACHAMIN MICHAEL STALIN
MASABANDA QHISPE CHRISTIAN JAVIER
2. OBJETIVOS
General:
• Realizar el monitoreo y control de un sistema domestico o industrial a baja escala,
empleando sensores y actuadores de manera inalámbrica bajo el protocolo MQTT
con NodeRED como central de procesamiento.
Específicos:
• Emplear los nodos de “función” de NodeRED para realizar el procesamiento e
interpretación de datos recibidos y a enviar al bróker MQTT
• Programar una tarjeta ESP8266 usando Arduino IDE para realizar la lectura de
varios sensores y control de un actuador y un indicador
• Controlar un actuador de forma manual y automática usando programación en
NodeRED
• Mostrar los valores leídos por los sensores mediante una representación visual de
Dashboard
3.2. Software
• NodeRED
Dentro de los sensores más utilizados está el sensor PIR el cuál detecta la presencia a través
de las radiaciones infrarrojas emitidas por ejemplo por el calor del cuerpo humando o
animales. En la salida del sensor se obtiene una señal digital que puede ser usada para
activar un relé y un motor que permita la apertura de la puerta.
Para simular este sistema se utilizará el sensor PIR y un servomotor conectados a una tarjeta
ESP32. La detección del sensor PIR enviará una señal digital a la tarjeta ESP32 y luego
este valor será publicado en un tópico para que a través de un nodo Fucntion en NodeRED
se realice el procesamiento. Si el sensor detecta presencia entonces el servomotor girará
180°, y retornará a 0° cuando el sensor no detecte presencia.
Características técnicas del sensor PIR
Es un sensor que funciona a partir de la captación de radiación infrarroja, por lo que,
también es llamado Pasivo Infrarrojo. Es usado para la detección de presencia de personas
o animales, y tiene varias aplicaciones como: control de iluminación, detección de
movimiento, apertura automática de puertas, sistemas de alarma de seguridad, entre otros.
Características:
o Voltaje de entrada: CC 4.5-20V.
o Corriente estatica: 50uA.
o Señal de salida: 0,3 V o 5 V (alta salida cuando se detecta movimiento).
o Angulo: 110 grados.
o Distancia: max. 7 mts.
o Derivacion para fijar el gatillo: H - Si, L – No.
Características
o Voltaje de funcionamiento: 3,0-7,2V
o Velocidad (4.8V sin carga): 0.12sec/60 degrees
o Fuerza: 1.2kg / 42.3oz(4.8V);1.6 kg / 56.4oz (6.0V)
o Temperatura de trabajo: -30 to +60 grados ºC
o Longitud de cable: aprox. 23cm
o Incluye accesorios de la foto y tornillos
o Dimensiones: 22x11.5x27mm
Acondicionamiento de sensores
El sensor PIR requiere una alimentación de 5 Voltios, y al entregar una señal digital en la
salida, no es necesario colocar elementos de acondicionamiento. El factor a destacar es la
ubicación del sensor para que permita una correcta detección de las personas.
Tipo de control
Control ON/OFF
El tipo de control seleccionado es ON/OFF debido a que solamente se debe controlar la
activación y desactivación del servomotor. La programación del condicional en base a la
señal enviada por el sensor PIR es realizada en un nodo Function de NodeRED.
En nuestro caso decidimos tomar la medida de temperatura crítica para que se active el
sistema de ventilación en 30º C.
• Modelo: LM35
• Voltaje de alimentación: 4V – 30V (5V recomendado)
• Rango de sensado temperatura: -55℃ hasta +150℃
• Precisión en el rango de -10°C hasta +85°C: ±0.5°C
• Pendiente: 10mV/ºC
• Bajo consumo energético: 60uA
• No necesita componentes adicionales
• Pines: +VCC, V salida, GND
• Baja impedancia de salida
//sensor DHT11
#include "DHT.h"
#define DHTPIN 2 //PIN DIGITAL CONECTADO AL SENSOR
#define DHTTYPE DHT11
//Variables
int pot;
int pin_pot=36;
int pulsador = 21;
int led = 22;
char data_pot[4]="";
char data_temp[12]="";
char data_humi[12]="";
char data_templm35[12]="";
char data_digital[2]="";
String messageData;
//LM35
const int pinlm35= 34;
int sensorlm35 = 0;
float templm35;
//Credenciales
const char* ssid = "Redmi Note 7";
const char* password = "1v38c310";
WiFiClient esp32;
PubSubClient client(esp32);
long lastMSg = 0;
long tdhtx= 0;
char msg[50];
int value = 0;
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
//Enciende led
if(messageData == "true"){
digitalWrite(led,HIGH);
}
if(messageData == "false"){
digitalWrite(led,LOW);
}
//**************Conexion a broker/Suscribir***********
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
String clienteID = "ESP32";
if (client.connect(clienteID.c_str())) {
Serial.println("connected");
client.subscribe("esp32iot"); //topic para suscribir
}
else {
Serial.print("Failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void setup() {
pinMode(pulsador, INPUT);
pinMode(led, OUTPUT);
Serial.begin(115200);
setup_wifi();
dht.begin();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
//pulsador - digital
int pulsa = digitalRead(pulsador);
sprintf(data_digital,"%lu",pulsa);
client.publish("digital",data_digital);
Serial.println("Estado logico: "+String(pulsa));
messageData = "";
if (isnan(templm35)) {
Serial.println(F("Failed to read from LM35 sensor!"));
//return;
}
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
sprintf(data_temp,"%3.2f",t);
client.publish("temperatura", data_temp);
Serial.print("Temperatura: ");
Serial.println(data_temp);
sprintf(data_humi,"%3.2f",h);
client.publish("humedad", data_humi);
Serial.print("Humedad: ");
Serial.println(data_humi);
sprintf(data_templm35,"%3.2f",templm35);
client.publish("temperaturalm35",data_templm35);
Serial.print("TemperaturaLM35: ");
Serial.println(data_templm35);
}
}
5. BIBLIOGRAFÍA
OurPCB. (s.f.). Aplicaciones de los Sensores Infrarrojos Pasivos /Sensores PIR. Obtenido de
https://www.ourpcbar.com/sensores-pir.html