Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I. Objetivo........................................................................................................ 3
Objetivo Específicos........................................................................................ 3
II. Preparar el ATS......................................................................................... 3
III. Desarrollo: Lectura y control de la temperatura utilizando la
pantalla OLED................................................................................................ 5
IV. Reto de programación (para máximo puntaje).................................... 17
V. Observaciones y conclusiones................................................................. 19
Medición y Control de variables
I. Objetivo
Medir variables, manipular actuadores y controlar variables con dispositivos IoT, mostrando la
información en indicadores.
Objetivo Específicos
En la segunda parte de la experiencia usaremos los elementos actuadores, la interfaz para los
actuadores y la pantalla OLED para mostrar información del proceso.
void setup(){
display.begin(SSD1306_SWITCHCAPVCC,
0x3C);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
}
void loop(){
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperat.Gomez,Bejar,
Huanqui,Olayunca");
display.setTextSize(2);
display.setCursor(6,18);
display.print(lectura);
display.print(" C ");
display.display();
}
Paso 4 Añada a este código el Pegue Código AQUÍ:
código anterior (control de \\Diana Isabel Huanqui
lámparas y ventilador y
\\Tatiana Brissette Noa
lectura de temperatura y
humedad con DHT11) de \\Valia Gabriela Olayunca
tal manera que estos datos \\Mishel Gomez
se muestren en la pantalla #include <Wire.h>
OLED y presionando los #include <Adafruit_GFX.h>
pulsadores podamos
#include <Adafruit_SSD1306.h>
manipular dichos valores.
#include <Adafruit_Sensor.h>
#include "DHT.h"
#define PULSADOR1 9
#define PULSADOR2 10
#define PULSADOR3 11
#define PULSADOR4 12
#define PULSADOR5 13
#define LAMPARA1 33
#define LAMPARA2 35
#define LAMPARA3 37
#define LAMPARA4 39
#define VENTILADOR1 47
#define VENTILADOR2 48
#define VENTILADOR3 49
#define VENTILADOR4 50
#define SCREEN_WIDTH 128 // OLED display
width, in pixels
#define SCREEN_HEIGHT 64 // OLED display
height, in pixels
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH,
SCREEN_HEIGHT);
void setup() {
pinMode(PULSADOR1,INPUT);
pinMode(PULSADOR2,INPUT);
pinMode(PULSADOR3,INPUT);
pinMode(PULSADOR4,INPUT);
pinMode(PULSADOR5,INPUT);
pinMode(LAMPARA1,OUTPUT);
pinMode(LAMPARA2,OUTPUT);
pinMode(LAMPARA3,OUTPUT);
pinMode(LAMPARA4,OUTPUT);
pinMode(VENTILADOR1,OUTPUT);
pinMode(VENTILADOR2,OUTPUT);
pinMode(VENTILADOR3,OUTPUT);
pinMode(VENTILADOR4,OUTPUT);
digitalWrite(VENTILADOR1, HIGH);
digitalWrite(VENTILADOR2, HIGH);
digitalWrite(VENTILADOR3, HIGH);
digitalWrite(VENTILADOR4, HIGH);
Serial.begin(115200);
dht.begin();
display.begin(SSD1306_SWITCHCAPVCC,
0x3C);
delay(2000);
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
}
void loop() {
if (digitalRead(PULSADOR1)==HIGH)
digitalWrite(VENTILADOR1,LOW);
if (digitalRead(PULSADOR2)==HIGH)
digitalWrite(VENTILADOR2,LOW);
if (digitalRead(PULSADOR3)==HIGH)
digitalWrite(VENTILADOR3,LOW);
if (digitalRead(PULSADOR4)==HIGH)
digitalWrite(VENTILADOR4,LOW);
if(digitalRead(PULSADOR5)==HIGH){
digitalWrite(VENTILADOR1,HIGH);
digitalWrite(VENTILADOR2,HIGH);
digitalWrite(VENTILADOR3,HIGH);
digitalWrite(VENTILADOR4,HIGH);
}
delay(2000);
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT
sensor!");
}
Serial.println(t);
Serial.println(h);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,7);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0,16);
display.print(t);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
display.setTextSize(1);
display.setCursor(0, 37);
display.print("Humidity: ");
display.setTextSize(2);
display.setCursor(0, 50);
display.print(h);
display.print(" %");
display.display();
}
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define LAMPARA1 33
#define LAMPARA2 35
#define OLED_RESET 4
Adafruit_SSD1306
display(OLED_RESET);
#define SSD1306_LCDHEIGHT 32
int lectura = 25;
int humedadMaxima = 30; // Establece
el valor máximo de humedad
void setup() {
display.begin(SSD1306_SWITCHCAP
VCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
void loop() {
// Simula la lectura de humedad
(deberás reemplazar esto con la lectura
real del sensor)
lectura = random(20, 35); // Genera
un valor aleatorio entre 20 y 35 para
simular la lectura de humedad
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Temperat.Gomez,Bejar,
Huanqui,Olayunca");
display.setTextSize(2);
display.setCursor(6, 18);
display.print(lectura);
display.print(" C ");
display.display();
CORRECTO:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306
display(OLED_RESET);
#define SSD1306_LCDHEIGHT 32
#include <DHT11.h>
#define pin 34
DHT11 dht11(pin);
float temp, humi;
#define PULSADOR1 9
#define PULSADOR2 10
#define PULSADOR3 11
#define PULSADOR4 12
#define PULSADOR5 13
#define LED1 33
#define LED2 35
#define LED3 37
#define LED4 39
void setup(){
display.begin(SSD1306_SWITCHCAP
VCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
pinMode(PULSADOR1,INPUT);
pinMode(PULSADOR2,INPUT);
pinMode(PULSADOR3,INPUT);
pinMode(PULSADOR4,INPUT);
pinMode(PULSADOR5,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
Serial.begin (9600);
}
void loop(){
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperat.Gomez,Bejar,
Huanqui,Olayunca");
humi=dht11.readHumidity();
temp=dht11.readTemperature();
digitalWrite(LED1,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED4,HIGH);
display.setTextSize(1);
display.setCursor(6,18);
display.print("T:");
display.print(temp,0);
display.print("C H:");
display.print(humi,0);
display.display();
Serial.print("PULSADOR1");
delay(300);
void setup(){
display.begin(SSD1306_SWITCHCAP
VCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
pinMode(PULSADOR1,INPUT);
pinMode(PULSADOR2,INPUT);
pinMode(PULSADOR3,INPUT);
pinMode(PULSADOR4,INPUT);
pinMode(PULSADOR5,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(VENTILADOR1,OUTPUT);
pinMode(VENTILADOR2,OUTPUT);
pinMode(VENTILADOR3,OUTPUT);
pinMode(VENTILADOR4,OUTPUT);
digitalWrite(VENTILADOR1,
HIGH);
digitalWrite(VENTILADOR2,
HIGH);
digitalWrite(VENTILADOR3,
HIGH);
digitalWrite(VENTILADOR4,
HIGH);
Serial.begin (9600);
}
void loop(){
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperat.Gomez,Bejar,
Huanqui,Olayunca");
humi=dht11.readHumidity();
temp=dht11.readTemperature();
Serial.println(humi);
digitalWrite(LED1,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED4,HIGH);
display.setTextSize(1);
display.setCursor(6,18);
display.print("T:");
display.print(temp,0);
display.print("C H:");
display.print(humi,0);
display.display();
delay(300);
if (temp>=40){
digitalWrite(VENTILADOR1,LOW);
digitalWrite(VENTILADOR2,LOW);
digitalWrite(VENTILADOR3,LOW);
digitalWrite(VENTILADOR4,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED4,LOW);
}
}
void setup(){
display.begin(SSD1306_SWITCHCAP
VCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
pinMode(48,OUTPUT);
pinMode(49,OUTPUT);
pinMode(53,OUTPUT);
Serial.begin (9600);
}
void loop(){
humi=dht11.readHumidity();
temp=dht11.readTemperature();
Serial.println(humi);
display.setTextSize(1);
display.setCursor(6,18);
display.print("T:");
display.print(temp,0);
display.print("C H:");
display.print(humi,0);
display.display();
delay(1000);
digitalWrite(VENTILADOR1,
HIGH);
digitalWrite(VENTILADOR2,
LOW);
digitalWrite(VENTILADOR3,
HIGH);
digitalWrite(VENTILADOR4,
HIGH);
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#define SSD1306_LCDHEIGHT 32
#include <DHT11.h>
#define pin 34
DHT11 dht11(pin);
float temp, humi;
void setup(){
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
pinMode(48,OUTPUT);
pinMode(49,OUTPUT);
pinMode(53,OUTPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
int SP;
Serial.begin (9600);
}
void loop(){
humi=dht11.readHumidity();
temp=dht11.readTemperature();
Serial.println(humi);
display.setTextSize(1);
display.setCursor(6,18);
display.print("SV:");
display.print(SP);
display.print("PV:");
display.print(temp,0);
display.display();
delay(1000);
if (temp>SP){
humi=dht11.readHumidity();
temp=dht11.readTemperature();
Serial.println(humi);
digitalWrite(49,LOW);
digitalWrite(53,LOW);
digitalWrite(48,HIGH);
}
else if (temp<SP){
digitalWrite(49,HIGH);
digitalWrite(53,HIGH);
digitalWrite(48,LOW);
}
if (9==HIGH){
SP++;
}
if (10==HIGH){
SP--;
}
}
V. Observaciones y conclusiones
Observaciones:
3. Se señala la importancia de declarar todas las variables necesarias, tanto digitales como
analógicas, entradas o salidas, para permitir al Arduino leer o escribir datos en estas
variables. También se destaca la configuración específica de los relés como normalmente
cerrados (NC), lo que requiere declararlos como activados (HIGH) para desactivarlos y
viceversa.
Conclusiones:
4. Se pudo manipular los actuadores para controlar variables usando dispositivos IoT,
presentando la información obtenida en indicadores como una pantalla OLED o el monitor
serial del Arduino.
VI. Bibliografía
https://drive.google.com/drive/folders/1lGarPrIekPHMJrvEgXUb1EN9pPEsd77K