Pessoal, estou trabalhando em um projeto de coleta de dados e estou com uma dúvida.
Tenho um servidor PHP com um banco de dados e uma API que recebe informações corretamente por meio de acesso HTTP (via acesso como "http://www.servidor.com.br/PARAMETROS").
Meu arduino já coleta as informações. Agora só me resta passar essas informações para o servidor PHP.
Não consigo encontrar uma forma de fazer meu Arduino via ENC28J60 realizar esse acesso ao servidor. Alguém pode me ajudar?!
Tags:
Eu fiz esse acesso, não exatamente com esse break: http://automatobr.blogspot.com.br/search?q=internet
Mauro, eu consegui acessar meu arduino assim como no seu projeto e resgatar as informações, mas estou desenvolvendo um coletor de dados que possa alimentar um banco de dados na web.
Estou quebrando a cabeça com os exemplos de WebClient, mas sem resultados até agora.
Eu escrevi uma seria de posts sobre isso no meu blog, da uma olhada que acho que vai poder lhe ajudar.
http://cleitonbueno.wordpress.com/category/arduino/
O próximo e ultimo será a mesma função porem armazenar em um banco de dados e poder visualizar posteriormente os dados coletados.
Cleiton, gostei muito do seu projeto e a minha idéia é similar.
Mas no meu caso, uso o arduino p/ coletar as informações e enviar p/ um servidor na web (ao contrário do seu projeto, que envia as informações fia USB p/ uma máquina local)
Acredito que o caminho seja implementar um WebClient (como eu disse p/ o Mauro anteriormente). E não consigo estabelecer uma conexão. será que preciso configurar algo na minha rede?!
Se alguém tiver algum projeto WebClient e puder me ajudar...
Ano passado fiz algo com GET e POST mas foi mais para testes mesmo, fiz um código que acho que pode dar certo.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xA0, 0x09, 0xA1, 0xD2, 0xD1, 0xAD }; //Mac Address do EthernetShield
IPAddress ip(192, 168, 10, 200); // End. IP do seu EthernetShield
byte server[] = { 192, 168, 10, 222 }; // End. IP do servidor
EthernetClient webclient;
String varMeth = "GET /consulta?v="; // String basica metodo GET para guardar o valor da temperatura
int varValue; //Ira receber o valor da temperatura
String varHTTP = " HTTP/1.0"; // Necessario para o funcionamento do GET em http
void setup(){
Ethernet.begin(mac, ip);
Serial.begin(9600);
}
void loop()
{
delay(100);
varValue = analogRead(A0); //Irá ler o valor do sensor de temperatura na porta A0
String codigo = varMeth + varValue + varHTTP; //O endereço com metodo e valor
webclient.connect(server,80); // Irá conectar no server que especificamos na porta 80
webclient.println(codigo); // Envia nossa string http GET
webclient.println();
webclient.stop(); // Termina a conexão
/* Outra forma */
/*
if (webclient.connected()) {
webclient.print("GET /consulta?v=");
webclient.print(varValue);
webclient.print(" HTTP/1.0");
webclient.println();
}
*/
}
/* Codigo PHP */
<?php
$VALOR = trim($_GET['v']);
/* Daqui em diante voce pode gravar em um banco ou em um arquivo */
?>
Não testei aqui, mas acho que é pra dar certo, no arduino pelo menos não reportou nenhuma exceção.
Olá Cleiton,
Gostei do seu código... bem claro e objetivo...
Mas não funcionou comigo... acho q estou com algum problema de configuração, pois estou testando também o seguinte código:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(10,0,0,110);
IPAddress myDns(10,0,0,1);
EthernetClient client;
//char server[] = "www.arduino.cc";
IPAddress server(64,131,82,241);
void setup() {
Serial.begin(9600);
delay(1000);
Ethernet.begin(mac, ip, myDns);
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}
void loop() {
if (client.connect(server, 80)) {
client.println("GET /latest.txt HTTP/1.1");
client.println("Host: www.arduino.cc");
client.println("User-Agent: arduino-ethernet");
client.println("Connection: close");
client.println();
}
if (client.available()) {
Serial.println();
Serial.println("conectado");
}
if (!client.connected()){
Serial.println();
Serial.println("desconectado");
}
delay(1000);
}
E o resultado que obtive foi o seguinte (na porta serial):
My IP address: 0.0.0.0
desconectado
desconectado
desconectado
Acredito q o erro está na hora de estabelecer uma conexão e receber um IP válido... ou estou enganado?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por