Dispensador de Mascota

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");
}
}

¿De donde has sacado esto? :confused: :confused: :confused: Que estrés de código sin tabular las líneas. Cero sangrías.

¿Si sabes que faltan los {} por qué no has ido comentando las líneas dentro de las funciones hasta hallar donde falta?

Línea nº 112. If mal cerrado ¿Donde iría el cierre debajo de todas las siguientes líneas? Ni idea, eso pasa por tener códigos sin dejar márgenes ni comentarios, pero si la pones al final de la función por ejemplo ya no faltan cierres.

Ah también tienes una variable que no está en globales -> pingTime así que tampoco podrás compilar el código ¿Que valor tiene o de donde se saca? :stuck_out_tongue: Si tú no lo sabes y no está en el código nosotros menos.

Si editas el código y lo pones dentro de los tags [ code][/ code] mejor.

Consejo, si no sabes programar al menos encuentra un código mejor, pero repito, simple consejo, es tu proyecto.

Edito:
Veo que has hecho un doble post... Genial, dando trabajo a los moderadores (nótese la ironía) poniendo tu código en hilos que nada tienen que ver con tu duda.

erwinjara.22:
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");
}
}