bool estado = false;
struct Sector {
float temperatura, humedad, pH;
bool estado_sector, estado_riego;
} sector [10];
void setup() {
Serial.begin(9600);
pinMode(14, INPUT);
pinMode(12, INPUT);
}
void loop() {
String dato = "";
if (Serial.available() && digitalRead(14) == 1 ) {
while (Serial.available()) {
char c = Serial.read();
if (c == '\0') {
break;
}
dato += c;
}
estado = true;
}
if(digitalRead(12)==1){
limpiarS();
}
if(estado){
if(parcela(dato)){
extraccion(dato);
Serial.println("Si es una parcela");
}else{
Serial.println("No es una parcela");
}
Serial.println("Datos ingresados "+dato);
estado= false;
}
delay(10);
}
bool parcela(String contenido ){
for(int i= 0; i<2; i++){
if(!isdigit(contenido[i])){
return false;
}
}
return true;
}
void limpiarS() {
while (Serial.available() > 0) {
char c = Serial.read();
}
}
void extraccion(String Datos){
char ext [5];
byte indice = 0;
for(int i=0; i<2; i++){
ext [i] = Datos[i];
}
lvariable(ext);
indice = atoi(ext);
/* 01 30.4 45.6 67.9 1*/
float temp = lecturaFloat (3, 7, ext, Datos);
Serial.println(temp +0.1);
float hum = lecturaFloat (8, 12, ext, Datos);
Serial.println(hum +0.1);
float pH = lecturaFloat (13, 17, ext, Datos);
Serial.println(pH +0.1);
int estadoR = Datos[18] - '0';
Serial.println(estadoR + 1);
return;
}
void lvariable(char* ext){
for(int i= 0; i<5; i++){
ext[i] = '\0';
}
}
float lecturaFloat (int com , int lim, char* ext, String Datos){
for(int i = com; i<lim; i++){
ext [i-com] = Datos[i];
}
float valor = atof(ext);
return valor ;
}