hi,
ok, ich habe was im Netz gefunden und versucht auf meine Bedürfnisse anzupassen,
aber es kommt beim Compilieren eine Fehlermeldung :
Temperatur_WebClient.cpp: In function 'void loop()':
Temperatur_WebClient:83: error: a function-definition is not allowed here before '{' token
Temperatur_WebClient:91: error: a function-definition is not allowed here before '{' token
Temperatur_WebClient:109: error: expected `}' at end of input
Hier mein Sketch:
/*
/*
Web client
This sketch connects to my Diskstation 192.168.178.111
and send the Themperature from DS18B20 at DigiPin 6 to it
created 20 April 2012
*/
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 6 // DS18B20 an Pin 6 angeschlossen
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress kessel_Thermometer = { 0x28, 0x03, 0xF6, 0xC2, 0x03, 0x00, 0x00, 0xA7 }; //Adressen der Sensoren manuell eingeben
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xEE, 0xF3 }; // Mac-Adresse Arduino Ethernet
byte ip[] = {192,168,178,230}; // IP-Adresse Arduino Ethernet
byte gateway[] = {192,168,178,1}; // Gateway (Fritzbox)
byte subnet[] = {255,255,255,0};
IPAddress server(192,168,178,111); // Diskstation DS111
// 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;
char url[] = "/senddata.php"; // Pfad zur PHP-Datei eingeben
char key[] = "Kennwort_eingeben"; // Kennwort aus PHP-Datei eingeben
char c;
int Sensor = 5; // DS18B20 an DigitalPin 5
int PowerLED = 3; // Power LED DigitalPin3
float Temperatur = 0; // Variable für Temperatur ;-)
int temp = 0;
void setup()
{
Serial.begin(9600);
sensors.begin();
sensors.setResolution(kessel_Thermometer, 9); // initialisiere serielle Verbindung mit 9600
digitalWrite(PowerLED, HIGH);
Ethernet.begin(mac, ip, gateway, subnet); // starte Ethernet
delay(1000); // warten auf Ethernet
Serial.println("verbinde..."); // Ausgabe(n) auf serieller Konsole
if (client.connect(server, 80)) // wenn Verbindungsversuch erfolgreich ...
{
Serial.println("verbunden"); // Ausgabe(n) auf serieller Konsole
// schicke Temperatur zum Server
client.println("GET http://192.168.178.111/senddata.php?temp1=10.3&temp2=23) HTTP/1.0"); // <-- Wie setzt sich die Adresse zusammen??
client.println(); // schicke Leerzeile (beende Anfrage)
}
else // sonst, wenn Verbindung fehlgeschlagen, ...
{
Serial.println("Verbindung fehlgeschlagen"); // Fehlermeldung auf Konsole
}
}
void loop()
{
digitalWrite(PowerLED, LOW);
Sensor_lesen();
Daten_senden();
delay(900);
digitalWrite(PowerLED, HIGH);
if (client.available())
{
char c = client.read();
Serial.print(c);
}
delay(899000);
client.stop();
client.flush();
void Sensor_lesen()
{
temp = analogRead(Sensor); // Analog-Wert auslesen
Temperatur = (5.0 * temp * 100.0)/1024.0; // Berechnung der Temperatur in °C
Serial.print("Temperatur: ");
Serial.println(Temperatur);
}
void Daten_senden()
{
if (EthernetClient.connect()) // Verbindung zum Server aufbauen
{
Serial.print("Verbunden...sende Daten...");
client.print("GET ");
client.print(url);
client.print("?TEMP=");
client.print(Temperatur);
client.print("&key=");
client.print(key);
client.println(" HTTP/1.1");
client.println();
Serial.println("fertig!");
}
else
{
Serial.println(" ***** VERBINDUNGSAUFBAU NICHT MÖGLICH *****");
}
}
Was noch fehlt :
sensors.requestTemperatures();
float tempKessel = sensors.getTempC(kessel_Thermometer);
Wo wird das rein geschrieben ? In welchen void ?
Ich hoffe das das so die Richtung ist, oder ist das total falsch?