Hola buenas, les comento mi siguiente problema. Resulta que debo realizar un proyecto el cual es un Dispensador de comida para mascota, entonces encontré un código navegando en internet, pero el cual contiene un error, me gustaría saber si serían tan gentil y amable de poder corregir algunos errores que tiene este código por favor, lo que sé que tiene error en los "{}" si no me equivoco y no se que error puede tener, no soy experto en programación, por lo cual se los agradecería de corazón. el codigo es el siguiente.
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
Servo servo1;
String stsrv;//estado del sistema
int dist=0;//distancia
String stringOne;
int tempo=0;
int ledPin = 13;
String si1;//estado de los botones
String si2;
String si3;
int so1=0;//estado para actualizar las bds
int so2=0;
int so3=0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.piccotron.com";
IPAddress ip(192,168,0,7);
EthernetClient client;
#define SR04TrigPin 3
#define SR04EchoPin 2
void setup() {
Serial.begin(9600);
pinMode(SR04TrigPin, OUTPUT);
pinMode(SR04EchoPin, INPUT);
pinMode(31, OUTPUT);//BUZZER
servo1.attach(6);//servo
servo1.write(180);//cerrado
pinMode(ledPin, OUTPUT);
digitalWrite(31, LOW);
while (!Serial) {
}
leer();
}
void loop()
{
digitalWrite(ledPin, HIGH);
if (client.available()) {
char c = client.read();
stringOne=stringOne+c;
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
Serial.print(stringOne);
procesar();
ejecutar();
stringOne="";
///////////////////////
enviar(); //habilitar
delay(1000);
client.stop();
delay(10000);
///////////////////////
leer();
}
}
void ejecutar(){
Serial.println("ejecutando");
if(si1=="1"){
Serial.println("cantidad 1");
buzzer();
servo1.write(90); //abrir
delay(1000); //durante 1 seg
servo1.write(170); //cerrar
}
if(si2=="1"){
Serial.println("cantidad 2");
buzzer();
servo1.write(90); //abrir
delay(2000); //durante 1 seg
servo1.write(170); //cerrar
}
if(si3=="1"){
Serial.println("cantidad 3");
buzzer();
servo1.write(90); //abrir
delay(3000); //durante 1 seg
servo1.write(170); //cerrar
}
}
void buzzer(){
for(int x=1;x<30;x++){
digitalWrite(31, HIGH);
delay(90);
digitalWrite(31, LOW);
delay(90);
digitalWrite(31, HIGH);
delay(90);
digitalWrite(31, LOW);
delay(250);
}
}
int measureDistance()
{
digitalWrite(SR04TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(SR04TrigPin, LOW);
int distance_cm = pingTime / 2 / 29;
return distance_cm;
}
void procesar(){
Serial.print("tamano:");
Serial.println(stringOne.length());
Serial.print("inicio:");
Serial.println(stringOne);
Serial.print("fin:");
Serial.print("verificar si aparece los datos ==>"+stringOne.substring(173,178));
Serial.print(" ");
Serial.print(" ");
if(stringOne.length()<179){//validacion para correcta recepcion de datos
stsrv=stringOne.substring(173, 178);
Serial.print("strsrv:");
Serial.println(stsrv);
si1=stsrv.substring(0, 1);
Serial.print("si1:");
Serial.println(si1);
si2=stsrv.substring(2, 3);
Serial.print("si2:");
Serial.println(si2);
si3=stsrv.substring(4, 5);
Serial.print("si3:");
Serial.println(si3);
delay(1000);
}
void leer(){
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 80)) {
Serial.println("connected");
client.print("GET /dispensador/datos/");
client.println(" HTTP/1.1");
client.println("Host: www.piccotron.com");
client.println("Connection: close");
client.println();
}
else {
Serial.println("connection failed");
}
}
void enviar(){
int distance_cm = measureDistance();
dist=distance_cm;
if(dist>25){
dist=25;}
dist=25-dist;
dist=dist*4;
dist=dist+1;
Serial.print("dist:");
Serial.print(dist);
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
Ethernet.begin(mac, ip);
}
delay(1000);
Serial.println("connecting...");
if (client.connect(server, 80)) {
Serial.println("connected");
client.print("GET /dispensador/php/enviar.php?A=");
client.print(so1);
client.print("&B=");
client.print(so2);
client.print("&C=");
client.print(so3);
client.print("&X=");
client.print(dist);
client.println(" HTTP/1.1");
client.println("Host: www.piccotron.com");
client.println("Connection: close");
client.println();
}
else {
Serial.println("connection failed");
}
}