Estou em fase final do meu TCC e estou enfrentando o seguinte problema: Criei uma pagina WEB com HTML/CSS/JQuery, para utilizar em conjunto com o arduíno num projeto de automação residencial. Para implementar utilizando o println, a memória do arduíno é baixa, então estou utilizando um cartão SD. A principio estava com dificuldade para conseguir fazer a pagina web ser encontrada no cartão Sd, mas consegui. O problema agora é: como posso retornar o valor de um clique (por exemplo, apagar um led) do javascript que está no cartão Sd para que o arduíno apague? Como posso fazer esta interação? Há alguma função ou ferramenta especifica pra isso?

Segue meu codigo até agora:

#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>

int pos = 0;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 122 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);
String readString;
File webFile;

void setup()
{

Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("O Servidor é: ");
Serial.println(Ethernet.localIP());
Serial.begin(9600);
while (!Serial) {
;
}

// inicializando cartão SD
Serial.println("Inicializando cartão SD ...");
if (!SD.begin(4)) {
Serial.println("ERRO - A inicialização do cartão SD falhou!");
return; // Quando a inicialização falhou
}
Serial.println("SUCCESSO - Cartão SD inicializado.");
// checa o arquivo index.htm dentro do slot de cartão
if (!SD.exists("index.htm")) {
Serial.println("ERRO - Arquivo index.htm não encontrado!");
return; // quando não encontra o index.htm
}
Serial.println("SUCCESSO - Arquivo index.htm encontrado!");
}

void loop()
{
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();


if (readString.length() < 100) {

readString += c;

}


if (c == '\n' && currentLineIsBlank) {
// Enviar um cabeçalho de resposta http padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// Enviar página da web
webFile = SD.open("index.htm"); // abre o arquivo WEB
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // Envia para o cliente
}
webFile.close();
}
break;
}
// toda linha de texto recebida do cliente termina com \r\n
if (c == '\n') {

// Último caractere na linha de texto recebido
// Iniciando nova linha com o próximo caractere lido
currentLineIsBlank = true;
}
else if (c != '\r') {
// Um caractere de texto foi recebido do cliente
currentLineIsBlank = false;
}
} // end if (client.available())
} // end while (client.connected())
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection
}
}

Exibições: 315

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço