#include <UTFT_Buttons.h>
#include <AltSoftSerial.h> // Pin 46 +48 !!!!!!!!!!!!!!!!!
#include <UTouch.h>
#include <UTouchCD.h>
#include <memorysaver.h>
#include <tinyFAT.h>
#include <UTFT_tinyFAT.h>
#include <UTFT.h>
#include <TinyGPS.h>
TinyGPS gps;
AltSoftSerial ss;
UTFT myGLCD(CTE70,38,39,40,41);
UTouch myTouch(6,5,4,3,2);
UTFT_tinyFAT myFiles(&myGLCD);
UTFT_Buttons myButtons(&myGLCD, &myTouch);
#define TOUCH_ORIENTATION PORTRAIT
// temp
#include <DHT.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#define ONE_WIRE_BUS 8
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#define DHTPIN 9
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
long previousMillis = 0;
long interval = 10000 ;
//long interval2 = 240000 ;
DeviceAddress motorThermometer = { 0x28, 0x04, 0x5A, 0x08, 0x06, 0x00, 0x00, 0x27 };
DeviceAddress outsideThermometer = { 0x28, 0x12, 0xE0, 0x0A, 0x06, 0x00, 0x00, 0x3B };
DeviceAddress oelThermometer = { 0x28, 0xEA, 0x5B, 0x08, 0x06, 0x00, 0x00, 0xD0 };
DeviceAddress rechteThermometer = { 0x28, 0x81, 0x85, 0x09, 0x06, 0x00, 0x00, 0x98 };
DeviceAddress linkeThermometer = { 0x28, 0xD9, 0x9B, 0x08, 0x06, 0x00, 0x00, 0x46 };
float tempmotorThermometer;
float tempoutsideThermometer;
float tempoelThermometer;
float temprechteThermometer;
float templinkeThermometer;
float tempdht22;
float humdht22;
//temp ende
//---Schriften einbinden---//
extern uint8_t BigFont[];
extern uint8_t seg180[];
extern uint8_t seg96[];
extern uint8_t SevenSegmentFull[];
// relais pins
int Pin1 = 42;
int Pin2 = 43;
int Pin3 = 45;
int Pin4 = 47;
int Pin5 = 49;
int Pin6 = 10;
int Pin7 = 11;
//int Pin8 = 12;
//analoge eingänge
int oeldruckeingang = A3;
float oeldruck2;
float oeldruck1;
float oeldruck;
int tankeingang = A2;
int tank = 0;
int trimeingang= A1;
int trim = 0;
int drehzahleingang = A4;
int drehzahl = 0;
////////////////////spannungeingang = A0;
int voltin = A0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // resistance of R1 (100K) -see text!
float R2 = 33000.0; // resistance of R2 (10K) - see text!
int value = 0;
float volt;
bool invert = false;
void setup()
{
file.initFAT();
myGLCD.InitLCD(PORTRAIT);
myGLCD.clrScr();
myFiles.loadBitmap(65, 100, 350, 583, "rk.raw");
delay(2000);
myGLCD.clrScr();
myTouch.InitTouch(PORTRAIT);
myTouch.setPrecision(PREC_HI);
Serial.begin(9600);
ss.begin(9600);
texte();
pinMode(Pin1, OUTPUT);
digitalWrite(Pin1, HIGH);
pinMode(Pin2, OUTPUT);
digitalWrite(Pin2, HIGH);
pinMode(Pin3, OUTPUT);
digitalWrite(Pin3, HIGH);
pinMode(Pin4, OUTPUT);
digitalWrite(Pin4, HIGH);
pinMode(Pin5, OUTPUT);
digitalWrite(Pin5, HIGH);
pinMode(Pin6, OUTPUT);
digitalWrite(Pin6, HIGH);
pinMode(Pin7, OUTPUT);
digitalWrite(Pin7, HIGH);
// pinMode(Pin8, OUTPUT);
//digitalWrite(Pin8, HIGH);
sensors.begin();
// set the resolution to 10 bit
sensors.setResolution(motorThermometer, 10);
sensors.setResolution(outsideThermometer, 10);
sensors.setResolution(oelThermometer, 10);
sensors.setResolution(rechteThermometer, 10);
sensors.setResolution(linkeThermometer, 10);
dht.begin();
temps();
}
void texte(){
//Tank Fest
myGLCD.setFont(BigFont);
if (invert==true){ myGLCD.setColor(VGA_BLACK);}
else {myGLCD.setColor(VGA_WHITE);}
myGLCD.drawRect(19, 49, 61, 301);
myGLCD.drawRect(10 , 48, 71, 49);
if (invert==true){ myGLCD.setColor(VGA_BLACK);}
else {myGLCD.setColor(VGA_WHITE);}
if (invert==true){ myGLCD.setBackColor(VGA_WHITE);}
else {myGLCD.setBackColor(VGA_BLACK);}
myGLCD.print("F" , 75, 40);
myGLCD.drawRect(10 , 175, 71, 176);
myGLCD.drawRect(10 , 300, 71, 301);
myGLCD.print("E" , 75, 290);
if (invert==true){ myGLCD.setColor(VGA_WHITE);}
else {myGLCD.setColor(VGA_BLACK);}
myGLCD.fillRect(20, 47, 60, 52);
myFiles.loadBitmap(15, 305, 50, 50, "zapf1.raw");
//Trimm
if (invert==true){ myGLCD.setColor(VGA_BLACK);}
else {myGLCD.setColor(VGA_WHITE);}
myGLCD.drawRect(419, 49, 461, 301);
myGLCD.drawRect(410 , 48, 471, 49);
myGLCD.print("+" , 385, 40);
myGLCD.drawRect(410 , 145, 471, 146);
myGLCD.drawRect(410 , 175, 471, 176);
myGLCD.drawRect(410 , 205, 471, 206);
myGLCD.drawRect(410 , 235, 471, 236);
myGLCD.drawRect(410 , 265, 471, 266);
myGLCD.drawRect(410 , 300, 471, 301);
myGLCD.print("-" , 385, 290);
if (invert==true){ myGLCD.setColor(VGA_WHITE);}
else {myGLCD.setColor(VGA_BLACK);}
myGLCD.fillRect(420, 47, 460, 52);
myFiles.loadBitmap(415, 305, 50, 50, "pro.raw");
//Texte
if (invert==true){ myGLCD.setColor(VGA_BLACK);}
else {myGLCD.setColor(VGA_WHITE);}
if (invert==true){ myGLCD.setBackColor(VGA_WHITE);}
else {myGLCD.setBackColor(VGA_BLACK);}
myGLCD.setFont(BigFont);
//myGLCD.print("4.12.2015", LEFT, 2);
//myGLCD.print("13:55", RIGHT, 2);
myGLCD.print("KM/H", CENTER, 10);
myGLCD.print("U/MIN", CENTER, 235);
myGLCD.print("Motor", LEFT, 390);
myGLCD.print("OelTemp", CENTER, 390);
myGLCD.print("OelDruck", RIGHT, 390);
myGLCD.print("Wasser", LEFT, 480);
myGLCD.print("Linke", CENTER, 480);
myGLCD.print("Rechte", RIGHT, 480);
myGLCD.print("C", 45, 2);
myGLCD.print("-", 68, 2);
myGLCD.print("%", 135, 2);
myGLCD.print("Volt", 410, 2);
}
void temps(){
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
t=t-0.4;
h=h+2;
sensors.requestTemperatures();
tempmotorThermometer = sensors.getTempC(motorThermometer);
tempoutsideThermometer = sensors.getTempC(outsideThermometer);
tempoelThermometer = sensors.getTempC(oelThermometer);
temprechteThermometer = sensors.getTempC(rechteThermometer);
templinkeThermometer = sensors.getTempC(linkeThermometer);
if (invert==true){ myGLCD.setColor(VGA_BLACK);}
else {myGLCD.setColor(VGA_WHITE);}
if (invert==true){ myGLCD.setBackColor(VGA_WHITE);}
else {myGLCD.setBackColor(VGA_BLACK);}
myGLCD.setFont(SevenSegmentFull);
myGLCD.printNumI(tempmotorThermometer, LEFT, 415);
myGLCD.printNumI(tempoelThermometer, CENTER, 415);
myGLCD.printNumI(templinkeThermometer, CENTER, 505);
myGLCD.printNumI(temprechteThermometer, RIGHT, 505);
myGLCD.printNumI(tempoutsideThermometer, LEFT, 505);
myGLCD.setFont(BigFont);
myGLCD.printNumI(t, 10, 2);
myGLCD.printNumI(h, 90, 2);
}