Olá pessoal,será que vocês podem me ajudar.
Não estou conseguindo achar onde estou errando.
Gostaria de fazer um sisteminha que grava dados numa memoria sd, que lê os dados dessa memoria sd e envia para uma rede local, e que apaga os dados.
Para isto estou usando uma ethernet shield.
o endereço da rede local que coloquei na minha plaquinha é: 192.168.1.88
Gostaria que quando eu digitasse (192.168.1.88/bm) no browser este sistema buscasse todo o texto armazenado no sd e envie na página do browser.
se eu digitar (192.168.1.88/am) que ele excluisse o arquivo de texto.
Porém existe erro em meu código e não descobri aonde. ele só executa uma dessas funções na primeira conexão, por exemplo se eu digitar (192.168.1.88/bm) ele vai gerar a página com o todo o texto no cartão sd, mas se eu digitar em seguida (192.168.1.88/am) ele não apaga as informações, ele aparece a tela anterior com tudo que estava gravado no sd. O mesmo acontece se eu fizer o contrário ele fica só na tela de exclussão.
segue meu código:
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
Sd2Card SDcard;
SdVolume volume;
// Pino do Arduino conectado ao pino CS do modulo
const int chipSelect = 4;
// Pino do Arduino conectado ao push-button
//int pinobotaocont = 5;
int pinobotaoleitura=6;
//int pinobotaoapagar=7;
int contador = 0;
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 88);
EthernetServer server(80);
int a=0;
int j=0;
String readString;
int clienteconectado=0;
int sensorPin = A0;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
//Inicia a comunicacao com o modulo SD
if (!SD.begin(chipSelect))
{
Serial.println("Falha ao acessar o cartao !");
Serial.println("Verifique o cartao/conexoes e reinicie o Arduino...");
return;
}
Serial.println("Cartao iniciado corretamente ");
Serial.println("Aguardando acionamento do push-button...");
Serial.println();
// Serial.begin(9600);
while (!Serial) {
}
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100)
{
//store characters to string
readString += c;
}
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
//client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// output the value of each analog input pin
if (readString.indexOf("bm") > 0)//busca na memoria
{
//ler os dados no cartão
// Agora vamos abri-lo para leitura
File dataFile = SD.open("arquivo.txt");
if (dataFile) {
Serial.println("//////////////////////////////////////////////");
Serial.println("lendo o cartão.txt:");
// Le todo o arquivo...
while (dataFile.available()) {
//Serial.write(dataFile.read());
client.write(dataFile.read());
//client.println(" ");
}
//Finalizado, fecha-se o arquivo
dataFile.close();
}
client.println("
");
client.println("</html>");
break;
}
if (readString.indexOf("am") > 0)//apagar a memoria
{
//apagar os dados no cartão
SD.remove("arquivo.txt");
Serial.println("dados apagados");
client.println("dados apagados");
contador=0;
client.println("
");
}
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
} else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disconnected");
}
}