Arduino gecontroleerde ruimte verwarmingssysteem (3 / 7 stap)

Stap 3: De Code

De code maakt gebruik van de volgende bibliotheken (en alles dankzij de auteurs van deze bibliotheken):

  1. OneButton: http://www.mathertel.de/Arduino/OneButtonLibrary.a...
  2. DHT11: http://playground.arduino.cc/main/DHT11Lib
  3. Timer: https://github.com/JChristensen/Timer
  4. EEPROM & LiquidCrystal: beide deel uitmaken van de Arduino IDE
 #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"); } } 

Gerelateerde Artikelen

Arduino-gecontroleerde Wolf staart

Arduino-gecontroleerde Wolf staart

groeten, of moet ik zeggen, "Aaaaaooooooooooooh!" Maken van uw bekende collega wolf liefhebber graag. Je hebt een innerlijke wolf geest dat zo graag bekend maken dat u mij om te leren hoe om uw zeer eigen animatronic wolf staart, zodat u kunt ec
Arduino-gecontroleerde Smart Home

Arduino-gecontroleerde Smart Home

Dit Instructable werd geschreven door PubNub Evangelist Ian Jennings . Ian's verhaal doorloopt zijn proces van het opbouwen van een Arduino-gecontroleerde smart home model van kras.--Terug in September, onze stichter Stephen en ik spraken over manier
Digitale venster Sticker (Arduino gecontroleerde)

Digitale venster Sticker (Arduino gecontroleerde)

een bumpersticker formaat L.E.D. matrix waarin afbeeldingen worden weergegeven in volgorde van een SD-kaart, voor de productie van een geanimeerde teken of "venster sticker." Arduino gecontroleerd! Ook bevat Windows, Mac en Linux code voor .xbm
Galvo - Laser Arduino gecontroleerd

Galvo - Laser Arduino gecontroleerd

Arduino gecontroleerd galvo laser. De servo aangedreven spiegels sturen de verlaten een fosforescerende parcours op het blad van de glow-in-the-dark vinyl UV-laser.Oorspronkelijk Gepost op notes.robives.comStap 1:Beginnen met een blad van lichtgevend
Arduino gecontroleerd CNC / 3D Printer hybride

Arduino gecontroleerd CNC / 3D Printer hybride

Moeder natuur maakt... Wij bouwen.BuildersBot zekeringen 3D printen & CNC frezen in één Builder's droom "3dprintingindustry.com"De BuilderBot is een Open ontwerp machine, die gebruik maakt van OpenSoftware en Open Hardware. Het is een produc
Arduino gecontroleerd kookwekker

Arduino gecontroleerd kookwekker

U allen moet heb meegemaakt dat je iets wordt gekookt op uw gasfornuis terwijl aan de andere kant u get drukke TV kijken of krijgen een diepe gesprek hebt dat je je realiseert op het opsporen van een geur die het was volledig verwend alleen vanwege u
Arduino-gecontroleerde gordijn

Arduino-gecontroleerde gordijn

In dit nieuwe project, we gecombineerd van elektronica en mechanica, en maakte een Arduino-gecontroleerde gordijn roller.Veel plezier met maken!Stap 1: Planning van het CircuitVoor dit circuit u hebt nodig:1. de roterende Potentiometer2. de Arduino U
Draadloos Arduino gecontroleerde Tank (nRF24L01)

Draadloos Arduino gecontroleerde Tank (nRF24L01)

Hallo!Vandaag zal ik u tonen how to build een Arduino gecontroleerde tank en een afstandsbediening. De 3d afgedrukt delen van de tank (met uitzondering van de controller, bijhouden gids en tank cover) werden ontworpen door timmiclark en kan worden ge
Huisdier Curfew: Een Arduino gecontroleerde huisdier deur

Huisdier Curfew: Een Arduino gecontroleerde huisdier deur

Het probleem: U wilt beperken van de tijd wanneer uw huisdier mee mag naar buiten te gaan. Dit kan zijn omdat de buurt niet veilig voor uw kat of kleine hond in de nacht is (plunderende coyotes voor de geest komt). Maar u wilt uw huisdier te kunnen t
Arduino gecontroleerd licht dimmer

Arduino gecontroleerd licht dimmer

Waarschuwing: Sommige mensen proberen om dit met een optocoupler met zerocrossing coz rechts "dat is beter"? Sommigen horen zelfs in elektronicawinkels, het is beter om te gebruiken dergelijke een optocoupler. VERKEERDE. Dit werkt alleen met een
Arduino gecontroleerd Servo Robot (SERVISCH)

Arduino gecontroleerd Servo Robot (SERVISCH)

wat een betere manier om te experimenteren met opensource micro-controllers ( Arduino ) dan door het bouwen van uw eigen bron robot open ( CC (SA-door))?Wat te doen met uw Servische?(hier) - hoe uw Servische verbinden met het internet en het rijden o
Arduino gecontroleerde auto volgsysteem op basis van SMS

Arduino gecontroleerde auto volgsysteem op basis van SMS

Hi ik een Arduino gecontroleerde auto volgsysteem op basis van SMS voor mijn vaders auto maakte.De gebruikte modules zijn;Arduino nano V3.0SkyLab GPS-moduleWaveCom GSM moduleDe SoftwareSerial bibliotheek, TinyGPS worden gebruikt om te communiceren me
Arduino gecontroleerd vuurtoren

Arduino gecontroleerd vuurtoren

Overzicht:Ik heb vaak gedacht dat een vuurtoren zou een groot project voor een Arduino, en dus heb ik besloten om het eens te proberen met behulp van een van de lokale vuurtorens hier in Erie, Pennsylvania als inspiratie. Ik koos voor de North Pierhe
Arduino gecontroleerd Bijenkorf Fumigator / luchtverfrisser

Arduino gecontroleerd Bijenkorf Fumigator / luchtverfrisser

Binnen de relatieve chaos van mijn binnenlandse regelingen heb ik een kleine oase van perfecte orde. Een ding dat ik kan bellen 'georganiseerd' en 'volledig functionele'. Een ding dat ik kan raken en weet dat het is betrouwbaar en klaar voor actie op