Hallo zusammen,
hat mich ein paar Stunden gekostet, um den ganzen hilfreichen Hinweisen nachzugehen. Teilweise habe ich es nicht verstanden und habe überwiegend Schiffbruch erlitten. Letzt und endlich habe ich es doch ein wenig anders gemacht und habe ERFOLGE gehabt, die leider nicht ständig von Dauer sind.
Was ganz sicher ist, dass man den USER-Namen und das PASSWORT durch einen " : " trennen muss und dies dann einer Base64-Wandlung unterziehen muss !
Es gibt in der Bibliothek eine Base64-Aplikation, jedoch weiss ich diese nicht anzuwenden und habe "USER-Namen:PASSWORT" hier gewandelt:
http://patshaping.de/projekte/kleinkram/base64.php
Nun zum Script:
/*
modifizierter WebClient aus Arduino 1.0.1
*/
#include <SPI.h>
#include <Ethernet.h>
//#include <Base64.h>
#define LOGIN ("YWRtaW46YmxhYmxhYmxh.") //Base64 kodiert USERNAME:PASSWORT unter Base64 Codier-/Decodier-Tool
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(99,99,99,99); // Webserver-IP eintragen
//(Port 80 ist für HTTP):
EthernetClient client;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // warte bis serieller Port verbunden ist
}
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
for(;
;
}
delay(1000);
Serial.println("verbinde, bitte warten...");
if (client.connect(server, 80)) {
Serial.println("verbunden");
//client.print("Authorization: Basic ");
client.print(LOGIN);
//client.println("GET /search?q=Sensor 6 HTTP/1.0");
client.println();
}
else {
Serial.println("connection failed");
}
}
void loop()
{
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected()) {
Serial.println();
Serial.println("Verbindung getrennt");
client.stop();
for(;
;
}
}
Das Ergebnis ist verblüffend und zugleich eigenartig. Ohne Änderungen am Script erhalte ich folgende Antworten :
Die beste -
verbinde, bitte warten...
verbunden
Document follows
Server: AVR_WEB_Switch
Content-Type: text/html
ext/html
AVR NET IO
.fett {font-weight: bold; margin-top:15px;}
td { cellpadding: 2px; }
body { font-family: arial; font-size: 1.0 em; color: #000000; background-color: rgb(255, 255, 204)}
h1 {text-align: center; font-weight: bold; color: white; font-size: 1.2 em}
HOME 1 WEBSERVER
Serverzeit: 12:32 |
Pagecounter: 231 |
|
Status PORTA:
dig. Eingang |
auf/zu |
analog. Eingang |
Wert (0-1023) |
A0_Fenster_1 |
|
AD-A4 |
1018 |
A1_Fenster_2 |
|
AD-A5 |
1017 |
A2_ |
|
AD-A6 |
1018 LDR |
A3_ |
|
AD-A7 |
(8xDS1820) |
1-Wire-Temperatursensoren:
//Diese Zeile interessiert mich !
1-Wire |
Ort |
Wert |
Einheit |
Min/Max(Tag) |
Sensor 0 |
Esszimmer |
15,9 |
°C |
15,6 / 16,0 |
Sensor 1 |
Keller |
16,3 |
°C |
16,3 / 16,4 |
Sensor 2 |
Kuehlkörper |
33,7 |
°C |
33,6 / 33,8 |
Sensor 3 |
Pumpe RL |
15,0 |
°C |
14,9 / 15,1 |
Sensor 4 |
Pumpe VL |
15,1 |
°C |
15,0 / 15,1 |
Sensor 5 |
Brauchwasser |
15,5 |
°C |
15,5 / 15,6 |
Sensor 6 |
Nebengebaeude |
14,1 |
°C |
13,9 / 14,1 |
Sensor 7 |
Solar-Speicher |
45,9 |
°C |
11,0 / 48,9 |
Schaltanweisungen:
Automatik
|
0
|
(ein/aus)
|
C0_Relais_1 |
Heizung |
ein/aus |
C1_Relais_2 |
Anpassung Fühler-Heizung |
ein/aus |
C2_Relais_3 |
|
|
C3_Relais_4 |
|
|
C4_Relais_5 |
- / + ab 15 °C Differenz ein |
-> Sensor 3,4 |
C5_Relais_6 |
|
|
C6_Relais_7 |
Lüfter |
im Server |
C7_Relais_8 |
Tor |
auf/zu |
|
Lokale Wetterinformationen:
-> www.wetter24.de
PORTB -> ENC28J60
PORTD -> LCDisplay
WEBSERVER Home 1
Verbindung getrennt
Es kann aber auch so aussehen:
verbinde, bitte warten...
verbunden
Verbindung getrennt
WARUM......??
Wie dem auch sei.
Wie bekomme ich jetzt die Rückmeldung aus der markierten Zeile oben
Sensor 6Nebengebaeude14,1°C13,9 / 14,1
Ich möchte gerne die 14,1° später auf meinem Display, bzw seriellem Monitor sehen.
Mit dem Browser sieht es so aus, siehe Bild.
Kann mir jemand mal bitte die Syntax geben, damit ich nur die 14,1° sehe und nicht das ganz Listing
Eventuell so " client.println("GET /search?q=Sensor 6 HTTP/1.0"); " und dann ?
Gruß Gerd