Salve Galera!

Estou iniciando nesse "mundo" do Arduino, eu meu conhecimento e dominio do assunto, no momento, é proximo a zero.

Eu gostaria de saber dos amigos mais experientes, se é possivel fazer um Arduino acessar, e passar informações, para um WebService hospedado em um servidor na Internet. Achei algum material falando em como o Arduino "servir" uma página para a Internet, mas não ao contrário (consumir o serviço).

É possivel ? Alguém já fez algo semelhante ?

Desde já agradeço aos amigos!!!!

Grandes Abraços!

Exibições: 8686

Responder esta

Respostas a este tópico

Boa tarde Frederico,

Eu tenho a mesma dúvida. Adquiri um Arduino Mega e uma Ethernet Shield ENC28j60 mas até agora não obtive bons resultados...

Já estou quase com o problema resolvido. Assim que tiver a "solução" fechada, eu compartilho aqui.

Frederico, tudo bem?

Fiz algo semelhante para jogar dados de um sensor de temperatura para um WebService feito em C# na internet. Segue exemplo, se precisar de algo mais, avise-me.

#include <SPI.h>
#include <Ethernet.h>
#define sensor 0
#include<stdlib.h>
int Ventrada; // Variável para ler o sinal do pino do Arduino
float Temperatura; // Variável que recebe o valor convertido para temperatura.
char Temp[10];
String var;
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(192,168,0,20); // Número IP do WebService
IPAddress server(192,168,0,21); // Número IP do WebService
//char server[] = "ws.marcelo.com.br"; // Nome do dominio do Webservice
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,0,177);
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");

}
void loop()
{
// if there are incoming bytes available
// from the server, read them and print them:
client.stop();
Ethernet.begin(mac,ip);

Ventrada = analogRead (sensor);
Temperatura=(500*Ventrada)/1023;
Serial.println(Temperatura);
dtostrf(Temperatura, 1, 2, Temp);
Serial.println(Temp);
String ini = "id=1&valor=";
var = ini + Temp;
Serial.println(var);

// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("POST /ws/WsTemp.asmx/incluir HTTP/1.1");
client.println("Host: localhost");
client.println("Content-Type: application/x-www-form-urlencoded");
client.println("Content-Length: 342");
client.println();
client.println(var);
}
else {
Serial.println("connection failed");
}

if (client.available()) {
char c = client.read();
Serial.print(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
}
delay(20000);
}

Marcelo, Muito Obrigado pela resposta !!! O seu exemplo me mostrou que estava indo pelo caminho certo! Otimo!!! Ajudou bastante! Assim que eu terminar o "projetinho" divido com os amigos aqui do forum.

Obrigado!!!!

Beleza meu amigo, qualquer dúvida é só falar.

Abraços,

Marcelo

Boa noite, Marcelo.

Seria possível mostrar um exemplo onde o arduino acesse as informações de um webservice? Vi que você mostrou como ele faz pra enviar os dados pro webservice gravar num banco, gostaria de um exemplo para pegar as informações que estão num webservice.

Por exemplo, eu criei este webservice http://junior.tbsis.com.br/service1.asmx

Nele tem um método "Somar" onde eu passo dois numeros inteiros e ele me retorna o resultado da soma dos dois numeros. Como eu faria pra escrever na serial do arduino este resultado?

Não sei se eu consegui te explicar direito, mas espero que sim. Obrigado por enquanto.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço