Sala de Arduino controlado sistema de calefacción (3 / 7 paso)

Paso 3: El código

El código utiliza las siguientes librerías (y todo gracias a los autores de estas bibliotecas):

  1. OneButton: http://www.mathertel.de/Arduino/OneButtonLibrary.a...
  2. DHT11: http://playground.arduino.cc/main/DHT11Lib
  3. Contador de tiempo: https://github.com/JChristensen/Timer
  4. EEPROM y LiquidCrystal: parte de la IDE de Arduino
 #include "OneButton.h" #include "EEPROM.h" #include "Timer.h" #define RELAY1 A1 // Connect humidifier to Relay1 #define RELAY2 A2 // Connect heater to Relay2 #define TEMP_SET 25 // Starting Temperature #define MAX_TEMP 30 // Max Temperature #define HUM_SET 40 // Threshold humidity #define HUM_SET2 60 #define SWITCH_PIN A5 // Connect the switch between pin A5 and ground #define CYCLE 10 //Time in minutes for each cycle #include "LiquidCrystal.h" #define LCD_RS 11 // * LCD RS pin to digital pin 12 - Green #define LCD_EN 12 // * LCD Enable pin to digital pin 11 - Yellow #define LCD_D4 5 // * LCD D4 pin to digital pin 5 - Blue #define LCD_D5 6 // * LCD D5 pin to digital pin 6 - Blue #define LCD_D6 7 // * LCD D6 pin to digital pin 7 - Blue #define LCD_D7 8 // * LCD D7 pin to digital pin 8 - Blue #include "dht11.h" #define DHT11PIN 13 dht11 DHT11; LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7); int temp_set; Timer t; OneButton button1(SWITCH_PIN, true); void setup() { pinMode(DHT11PIN, INPUT); pinMode(LCD_RS, OUTPUT); pinMode(LCD_EN, OUTPUT); pinMode(LCD_D4, OUTPUT); pinMode(LCD_D5, OUTPUT); pinMode(LCD_D6, OUTPUT); pinMode(LCD_D7, OUTPUT); pinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT); lcd.begin(16, 2); Serial.begin(9600); if(EEPROM.read(0) >= MAX_TEMP+1){ EEPROM.write(0,TEMP_SET); temp_set=TEMP_SET; } else {temp_set=EEPROM.read(0);} lcd.print("Setpoint: "); lcd.print(temp_set); // Display the setpoint temperature for 2 sec delay(2000); checkTemp(0); t.every(60000*CYCLE,checkTemp,(void*)0); button1.attachClick(tempPlus); button1.attachPress(tempMinus); } void loop() { // put your main code here, to run repeatedly: button1.tick(); t.update(); } void tempPlus(){ Serial.println("Plus"); temp_set++; if (temp_set > MAX_TEMP) temp_set = TEMP_SET; // Cycle between TEMP_SET and MAX_TEMP lcd.clear(); lcd.print("Setpoint: "); lcd.print(temp_set); EEPROM.write(0,temp_set); delay(1000); checkTemp(0); } void tempMinus(){ Serial.println("Minus"); temp_set--; if (temp_set < TEMP_SET) temp_set = MAX_TEMP; // Cycle between TEMP_SET and MAX_TEMP lcd.clear(); lcd.print("Setpoint: "); lcd.print(temp_set); EEPROM.write(0,temp_set); delay(2000); checkTemp(0); } void checkTemp(void* context) { int chk = DHT11.read(DHT11PIN); // Serial.print("Read sensor: "); /* switch (chk) { case DHTLIB_OK: // Serial.println("OK"); break; case DHTLIB_ERROR_CHECKSUM: // Serial.println("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: // Serial.println("Time out error"); break; default: lcd.println("Unknown error"); break; }*/ lcd.setCursor(0, 0); Serial.println(DHT11.humidity); lcd.print("Humidity: "); lcd.print((float)DHT11.humidity, 2); lcd.setCursor(0, 1); lcd.print("Temp: "); lcd.print((float)DHT11.temperature, 2); Serial.println(DHT11.temperature); if(DHT11.humidity < HUM_SET2){ digitalWrite(RELAY1, HIGH); Serial.println("H1"); } if (DHT11.humidity > HUM_SET) { digitalWrite(RELAY1,LOW); Serial.println("H0"); } if(DHT11.temperature < temp_set){ digitalWrite(RELAY2, HIGH); Serial.println("T1"); } if (DHT11.temperature > temp_set){ digitalWrite(RELAY2,LOW); Serial.println("T0"); } } 

Artículos Relacionados

Arduino controlado CNC 3D impresora híbrida

Arduino controlado CNC 3D impresora híbrida

La madre naturaleza hace... Construimos.BuildersBot fusibles de impresión 3D y fresado CNC en sueños de un constructor "3dprintingindustry.com"La BuilderBot es una máquina de diseño abierto, que utiliza OpenSoftware y Hardware abierto. Es un pro
Arduino controlado por dimmer luz

Arduino controlado por dimmer luz

ADVERTENCIA: ¿ Algunas personas tratan de construir esto con un optoacoplador con coz zerocrossing derecho 'es mejor'? Algunos se dicen incluso en tiendas de electrónica es mejor utilizar tal un optoacoplador. MAL. Esto sólo funcionará con un optoaco
Toque de queda del animal doméstico: Un Arduino controlado puerta para mascotas

Toque de queda del animal doméstico: Un Arduino controlado puerta para mascotas

El problema: quiere restringir el tiempo cuando su mascota pueda salir al exterior. Esto podría ser porque el barrio no es seguro para su gato o perro pequeño por la noche (Merodeadores coyotes viene a la mente). Pero desea que su mascota para poder
Arduino controlado Servo Robot (serbio)

Arduino controlado Servo Robot (serbio)

¿qué mejor manera de empezar a experimentar con micro-controladores de código abierto ( Arduino ) y construyendo tu propio abra robot fuente ( CC (SA-de))?¿Qué hacer con el serbio?(aquí) - Cómo conectar su servio al internet y la unidad sobre un Skyp
Sistema de calefacción de compost

Sistema de calefacción de compost

El montículo del dolor es una pila grande de biomasa leñosa, también conocido como abono. Inventado por el agricultor francés Jean Pain en la década de 1970, se hace de virutas y serrín, rodeado por un anillo de balas de heno para la estructura y ais
Arduino controlado de simulador de vuelo - "The Viper"

Arduino controlado de simulador de vuelo - "The Viper"

My Maker Faire proyecto para 2012 es "La víbora"--un simulador de vuelo de Arduino controlado inspirado en la nave del mismo nombre de TV serie Battlestar Galactica del canal SyFy. Gira 360 grados a lo largo de dos ejes, lo que significa que sí,
POV Arduino controlado desde Android

POV Arduino controlado desde Android

Proyecto de un POV con Arduino controlado desde el celular.POV Proyectos hechos con Arduino hay muchos, pero quise realizar uno en el cual se pudiera enviar el mensaje o palabra visualizar, un estar de evitar través del celular para un cada rato carg
Planta de Arduino controlado de riego sistema y personalizados salidas de receptáculos de CA

Planta de Arduino controlado de riego sistema y personalizados salidas de receptáculos de CA

este es un proyecto para crear una planta automática de sistema de riego con un receptáculos de CA enchufe que se puede controlar con cualquier microcontrolador. En mi ejemplo se utiliza un Ruggeduino pero esto es esencialmente un Arduino Uno.El circ
SIP doble Motor y PUFF controlado sistema de Kayak

SIP doble Motor y PUFF controlado sistema de Kayak

Muy discapacitados (cuadripléjico) pueden controlar completamente este kayak a través de un SIP y conmutador de soplo!Mi diseño es un accesorio independiente que consta de una placa de cubierta que se puede sujetar a cualquier kayak.   Cada extremo d
Crear un Bot de flor de luz-siguiente Arduino controlado

Crear un Bot de flor de luz-siguiente Arduino controlado

En este proyecto basado en Arduino, creará un "biomimética" o flor inspirada en biología, que sigue a una fuente de luz. Probablemente has visto este comportamiento en sus plantas de interior. Las plantas requieren luz solar para crecer y desarr
Exhibición de la temperatura cromática - Arduino controlado RGB LED Infinity Mirror

Exhibición de la temperatura cromática - Arduino controlado RGB LED Infinity Mirror

Este proyecto se inspiró libremente en , una pantalla de estación cuyo color depende de la temperatura exterior. Tuve un compañero de cuarto en la Universidad que tenía uno de estos y es muy útil, en Pittsburgh especialmente, sólo echar un vistazo en
Arduino controlado esqueleto Animatronic de rock - en progreso

Arduino controlado esqueleto Animatronic de rock - en progreso

Para Halloween este año, decidí construir una banda de rock esqueleto de animatronic. Es un trabajo en progreso en este punto, pero estoy muy contento con cómo está llegando a lo largo. Casi todo está hecho de materiales que tenía en la mano (soy un
Cañón neumático accionado por Arduino controlado por Android

Cañón neumático accionado por Arduino controlado por Android

cada verano, Qualcomm celebra una batalla de la competencia de las escuelas, que ofrece a los empleados la oportunidad de representar a su Universidad de origen. Este año, las entradas debían ser artilugios caseros, y que fueron juzgados según lo gua
Arduino controlado Servo ejercitador

Arduino controlado Servo ejercitador

tienes tu Arduino y tenes tu Servo...Aquí es un fresco pequeño programa que escribí que le permitirá ejercer ese servo al contenido de sus corazones. Usted puede encontrar algunos de lo código de apoyo útil así!No hay realmente ninguna otra lista de