Este el codigo de arduino, es muy simple, el de delphi es mas extenso...
// EQUAL REEF (ARDUINO)
//LIBRERIAS
#include <math.h>
#include <Wire.h>
//#include "RTClib.h"
#include <OneWire.h>//temperatura
//variables
float temacu;
float ph ;
float sensorph;
float temc;
int val = 0; // varible pa reles
int valluz=0;
// USO LCD
void posicion(int x, int y)
{ Serial.print(0x7C, BYTE);
Serial.print(24, BYTE);
Serial.print(x, BYTE);
Serial.print(0x7C, BYTE);
Serial.print(25, BYTE);
Serial.print(y, BYTE);
}
void valortemperatura()
{//temperatura
temc = 0.00;
int y = 0;
for(y=0; y<200 ; y++) {temc += analogRead(1); //100 lecturas
delay(2);
}
temc = temc / 250; //media de las lecturas
temacu = (5 * temc * 100) / 1024;
posicion (0,36);
Serial.print("TEMP:");
posicion (45,36);
Serial.print(temacu);
}
void valorph()
{//sensor de ph
sensorph = 0.00;
ph = 0.00;
int x = 0;
for(x=0; x<100 ; x++) {sensorph += analogRead(0); //100 lecturas
delay(5);
}
sensorph = sensorph / 100; //media de las lecturas
ph = (0.0178 * sensorph) - 1.889; //temperatura 25
//ph = 7 - (2.5 - sensorph / 200) / (0.257179 + 0.000941468 * temacu); // temperature variable
posicion (0,28);
Serial.print("PH:");
posicion (45,28);
Serial.print(ph);
}
void sensorluz()
{ // SENSOR DE LUZ
int y = 0;
for(y=0; y<10 ;y++) {valluz += analogRead(2);//10 lecturas lee el sensor de oscuridad conectado en el pin analogico 3
delay(5);
}
valluz = valluz / 10; //media de las lecturas
posicion (0,20);
Serial.print("LUZ:");
posicion (45,20);
Serial.print(valluz);
}
void setup()
{ Wire.begin();
Serial.begin(115200);
pinMode(2,OUTPUT); // declaro the 2 pin as output led- Luz de luna
pinMode(11,OUTPUT); // declaro the 11 pin as output RELE8
pinMode(10,OUTPUT); // declaro the 10 pin as output RELE7
pinMode(9,OUTPUT); // declaro the 9 pin as output RELE6
pinMode(8,OUTPUT); // declaro the 8 pin as output RELE5
pinMode(7,OUTPUT); // declaro the 7 pin as output RELE4
pinMode(6,OUTPUT); // declaro the 6 pin as output RELE3
pinMode(5,OUTPUT); // declaro the 5 pin as output RELE2
pinMode(4,OUTPUT); // declaro the 4 pin as output RELE1
Serial.print(0x7C, BYTE);
Serial.print(0x00, BYTE);
delay(1000);
}
void loop()
{ Serial.print(0x7C, BYTE);
Serial.print(0x00, BYTE);
delay(10);
valortemperatura();
valorph();
sensorluz();
posicion (0,0);
Serial.println("");
delay(1000);
//reles
val = Serial.read(); // read the serial port
if (val !=-1)
{
if (val=='1'){
digitalWrite(2,HIGH); // luna connected to digital pin 2
}
if (val=='A'){
digitalWrite(2,LOW); // luna connected to digital pin 2
}
if (val=='2'){
digitalWrite(3,HIGH); // VEN connected to digital pin 3
}
if (val=='B'){
digitalWrite(3,LOW); // VEN connected to digital pin 3
}
if (val=='4'){
digitalWrite(4,HIGH); // R4 connected to digital pin 4
}
if (val=='D'){
digitalWrite(4,LOW); // R4 connected to digital pin 4
}
if (val=='5'){
digitalWrite(5,HIGH); // R3 connected to digital pin 5
}
if (val=='E'){
digitalWrite(5,LOW); // R3 connected to digital pin 5
}
if (val=='6'){
digitalWrite(6,HIGH); // R2 connected to digital pin 6
}
if (val=='F'){
digitalWrite(6,LOW); // R2 connected to digital pin 6
}
if (val=='7'){
digitalWrite(7,HIGH); // R1 connected to digital pin 7
}
if (val=='G'){
digitalWrite(7,LOW); // R1 connected to digital pin 7
}
if (val=='8'){
digitalWrite(8,HIGH); // R5 connected to digital pin 8
}
if (val=='H'){
digitalWrite(8,LOW); // R5 connected to digital pin 8
}
if (val=='9'){
digitalWrite(9,HIGH); // R6 connected to digital pin 9
}
if (val=='I'){
digitalWrite(9,LOW); // R6 connected to digital pin 9
}
if (val=='10'){
digitalWrite(10,HIGH); // R1 connected to digital pin 10
}
if (val=='J'){
digitalWrite(10,LOW); // R7 connected to digital pin 10
}
if (val=='11'){
digitalWrite(11,HIGH); // R8 connected to digital pin 11
}
if (val=='K'){
digitalWrite(11,LOW); // R8 connected to digital pin 11
}
}
}
Ahora os pongo unas fotos del interface gráfico...