Ahoj, stavim si z Arduina webovy teplomer a potrebuju posilat data pres HTTP (projde vsude) na server, kde mi bude bezet Java aplikace a hodnoty zpracovavat.
Porad vaham, jak posilat data na server. Premyslel jsem o klasickych HTTP hlavickach:
if (client.connect(server, 80)) {
client.println("POST /logger HTTP/1.1");
client.println("Host: www.example.net");
client.println("Connection: close");
client.print("temperature-indoor-celsius: ");
client.println(temperatureIndoor);
client.print("temperature-outdoor-celsius: ");
client.println(temperatureOutdoor);
client.println();
}
Pak na serveru dostanu normalni hlavicky, tedy "nazev: hodnota". Druha moznost je posilat json:
if (client.connect(server, 80)) {
client.println("POST /logger HTTP/1.1");
client.println("Host: www.example.net");
client.println("Content-Type: application/json;charset=utf-8");
client.print("{\"arduino\":[{\"location\":\"indoor\",\"celsius\":\"");
client.print(temperatureIndoor);
client.print("\"},");
client.print("{\"location\":\"outdoor\",\"celsius\":\"");
client.print(temperatureOutdoor);
client.print("\"}]}");
client.println();
}
pak na serveru dostanu:
{
"arduino":[
{
"location":"indoor",
"celsius":"22.77"
},
{
"location":"outdoor",
"celsius":"15.55"
}
]
}
Co se vam zda lepsi s ohledem na nasledne zpracovani (+ dalsi veci na ktere jsem zapomel)?
Na Arduinu si muzu vypsat co chci, jenom mam 1kB RAM, takze nemuzu posilat napr. dlouhe XML - stringy ve zdrojaku se po spusteni natahnou do ram a nevejdou se.
Ktere reseni by ste zvolili? Nebo nejak uplne jine?
Dekuji za rady!