Supikuivuri sai valvontanäytön

Koska rakentelu on kivaa niin kuivuri sai arduinopohjaisen valvontanäytön.  (Ei siinä mitään järkeä ole muttakoska se on mahdollista).  Ainiin ja varoituksen sananen lienee paikallaan:
Tässä artikkelissa on tarjolla aika vahvaa nörttijargonia. 

Tarvekaluiksi Arduino Duemilanove, Ebaystä löytyi sopivaan hintaan I2C väyläinen 20×4 LCD näyttö ja 2 kpl DHT22/AM2302 lämpötila/kosteusantureita.

Kytketään:
– Arduinon dig2 – Tulo-DHT-data
– Arduinon dig3 – poisto-DHT-data
– Arduinon analog5 – näytön SCL
– Arduinon analog4 – näytön SDA
– Arduinon maasta ja +5V linjasta sähköt kaikille komponenteille
– Arduinoon 12V sisään

Asennetaan anturit kuivauskaapin tulo- ja lähtöventtiliin
Asetellaan loput kamat sopivaksi katsottuun koteloon ja softa sisään eikun tarkkailemaan.

Kuivurin valvontanäytön koodi:

//Beerware lisensing. (R)SupiveikotRY.
//FreeToUse and modify
//NotForCommercialUsage
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define I2C_ADDR 0x3F // <<—– Add your address here. Find it from I2C Scanner
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

// degree centigrade
byte customChar[8] = {
B01000,
B10100,
B01000,
B00011,
B00100,
B00100,
B00011,
B00000
};

LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
#include <dht.h>

dht DHT;
#define Tulo 2
#define Poisto 3

void setup()
{
lcd.begin (20, 4);

// create a new custom character
lcd.createChar(0, customChar);

// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd.setBacklight(HIGH);
lcd.home (); // go home

}

void loop()
{
// READ DATA
int chk = DHT.read22(Tulo);
double tulolam = DHT.temperature;
double tulokost = DHT.humidity;

// DISPLAY DATA

lcd.setCursor(0, 0);
lcd.print(”Supikuivuri V1.3g”);
lcd.setCursor(0, 1);
lcd.print(”Tulo: ”);
double tulo = DHT.temperature;
lcd.print(tulo, 1);
lcd.write((uint8_t)0);
lcd.print(” ”);
lcd.print(DHT.humidity, 1);
lcd.print(”% ”);

chk = DHT.read22(Poisto);
double poistolam = DHT.temperature;
double poistokost = DHT.humidity;
// täsmätään antureiden ero laskentaa varten.
poistolam = poistolam + 0.3;
poistokost = poistokost – 0.6;

lcd.setCursor(0, 2);
lcd.print(”Poisto: ”);
lcd.print(poistolam, 1);
lcd.write((uint8_t)0);
lcd.print(” ”);
lcd.print(poistokost, 1);
lcd.print(”%”);

lcd.setCursor(0, 3);
lcd.print(” ”);
delay(400);
lcd.setCursor(0, 3);
double erolam = tulolam – poistolam;
double erokost = tulokost – poistokost;
lcd.print(”Ero: ”);
lcd.print(erolam, 1);
lcd.write((uint8_t)0);
lcd.print(” ”);
lcd.print(erokost, 1);
lcd.print(”%”);

delay(1000);

}

Vastaa

This site uses Akismet to reduce spam. Learn how your comment data is processed.