Hallo McBain
Hier ein Auszug aus meinem Arduino-Programm:
Gruss Peter
---------------------------------------------
/* Auszug Datenübertragung AVR-FHEM
Datenabfrage der AVR-Daten via URL: 192.1XX.XXX.XX/?GetData
Übertragung von Messwert~Prozent~Inhalt~Zeit
*/
// Includes
#include <Time.h>
#include <SPI.h>
#include <Ethernet.h>
// Declarations
byte mac[] = {
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5 };
byte ip[] = {
192, XXX, XXX, XX };
EthernetServer server = EthernetServer(80); //port 80
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
server.begin();
Serial.println(Ethernet.localIP());
// ...
}
void loop() {
// ...
checkForClient();
// ...
void checkForClient(){
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
boolean sentHeader = false;
while (client.connected()) {
if (client.available()) {
if(!sentHeader){
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
sentHeader = true;
}
char c = client.read();
if(reading && c == ' ') reading = false;
if(c == '?') reading = true; //found the ?, begin reading the info
if(reading){
if (input){
parameter = parameter + c;
}
else
{
input = true;
}
}
}
}
Serial.println(parameter);
if (parameter=="GetData"){
// sline = "<Title>";
sline = "";
sline += distance;
sline += " cm";
sline += "~";
sline += dtostrf(percent, 3,0, line);
sline += " %";
sline += "~";
sline += dtostrf(percent*ctank/100, 3,0, line);
sline += " l";
sline += "~";
if (day() < 10)
sline += "0";
sline += day();
sline += ".";
if (month() < 10)
sline += "0";
sline += month();
sline += ".";
sline += year();
sline += " ";
if (hour() < 10)
sline += "0";
sline += hour();
sline += ":";
if (minute() < 10)
sline += "0";
sline += minute();
sline += ":";
if (second() < 10)
sline += "0";
sline += second();
// sline += "</Title>";
client.println(sline);
Serial.println(sline);
}
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection:
}
}