Temperatur auf Lan ausgeben
|
04.01.2014, 19:17
Beitrag #9
|
|||
|
|||
RE: Temperatur auf Lan ausgeben
nAbendddddddddddd,
also mal Zeilen angepasst und getestet. Keine Reaktion. Weder seriell noch im Browser. Mach ich was falsch? iselein |
|||
04.01.2014, 23:44
Beitrag #10
|
|||
|
|||
RE: Temperatur auf Lan ausgeben
Hallo iselein,
hier mal mein Sketch. Du brauchst nur die xxx mit deinen Werten aktualisieren. Danach Browser öffnen und xxx.xxx.xxx.xxx eingeben. /*Atmos und Internet: Hier werden 10 Sensoren ausgelesen und via LAN als WebServer ausgegeben. Server-Adresse ist in diesem Fall: xxx.xxx.xxx.xxx - im Browser einzugeben */ #include <SPI.h> #include <Ethernet.h> #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 8 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); // MAC address from Ethernet shield sticker under board byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(xxx, xxx, xxx, xxx); // IP address, may need to change depending on network EthernetServer server(80); // create a server at port 80 void setup() { Ethernet.begin(mac, ip); // initialize Ethernet device server.begin(); // start to listen for clients sensors.begin(); } void loop() { sensors.requestTemperatures(); EthernetClient client = server.available(); // try to get client if (client) { // got client? boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { // client data available to read char c = client.read(); // read 1 byte (character) from client // last line of client request is blank and ends with \n // respond to client only after last line received if (c == '\n' && currentLineIsBlank) { // send a standard http response header client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); // send web page client.println("<!DOCTYPE html>"); client.println("<html>"); client.println("<head>"); client.println("<title>Arduino Web Page</title>"); client.println("</head>"); client.println("<body>"); client.println("<h1>Temperaturen vom Atmos mit Arduino Uno!</h1>"); client.println(sensors.getTempCByIndex(0)); client.println("<body>"); client.println(sensors.getTempCByIndex(1)); client.println(sensors.getTempCByIndex(2)); client.println("<body>"); client.println(sensors.getTempCByIndex(3)); client.println(sensors.getTempCByIndex(4)); client.println("<body>"); client.println(sensors.getTempCByIndex(5)); client.println(sensors.getTempCByIndex(6)); client.println("<body>"); client.println(sensors.getTempCByIndex(7)); client.println(sensors.getTempCByIndex(8)); client.println("<body>"); client.println(sensors.getTempCByIndex(9)); client.println("<p>Mein Arduino Uno Server</p>"); client.println("</body>"); client.println("<p>Puffer links oben:<p>"); client.println(sensors.getTempCByIndex(0),1), client.println("</body>"); client.println(" Celsius"); client.println("<p>Puffer links Mitte:<p>"); client.println(sensors.getTempCByIndex(1),1); client.println("<p>Puffer links Unten:<p>"); client.println(sensors.getTempCByIndex(2),1); client.println("<p>Puffer rechts Oben:<p>"); client.println(sensors.getTempCByIndex(3),1); client.println("<p>Puffer rechts Mitte:<p>"); client.println(sensors.getTempCByIndex(4),1); client.println("<p>Puffer rechts Unten:<p>"); client.println(sensors.getTempCByIndex(5),1); client.println("<p>Heizung Vorlauf:<p>"); client.println(sensors.getTempCByIndex(6),1); client.println("<p>Heizung Ruecklauf:<p>"); client.println(sensors.getTempCByIndex(7),1); client.println("<p>Aussentemperatur:<p>"); client.println(sensors.getTempCByIndex(8),1); client.println("<p>Temperatur Abgas:<p>"); client.println(sensors.getTempCByIndex(9),1); client.println("<body>"); client.println("</html>"); break; } // every line of text received from the client ends with \r\n if (c == '\n') { // last character on line of received text // starting new line with next character read currentLineIsBlank = true; } else if (c != '\r') { // a text character was received from client currentLineIsBlank = false; } } // end if (client.available()) } // end while (client.connected()) delay(1); // give the web browser time to receive the data client.stop(); // close the connection } // end if (client) } Das ganze sieht nicht schön aus, jedoch wollte ich nur testen, wie meine Angaben ausgegeben werden. ![]() MfG Michael |
|||
05.01.2014, 08:42
Beitrag #11
|
|||
|
|||
RE: Temperatur auf Lan ausgeben
Guten Morgen zusammen,
der Sketch funktioniert. Hab vielen Dank großer Meister. Das beste ist mit den Beschriftungen. Ich habe auch einen Holzkessel im Keller mit 2 Puffer. Genau so wollte ich es haben. Puffer oben, mitte, usw. DANKE nochmal. iselein |
|||
05.01.2014, 15:22
Beitrag #12
|
|||
|
|||
RE: Temperatur auf Lan ausgeben
@iselein,
Danke dir für deinen Beitrag mit den Dallas Fühlern die mich auch interessieren weil die bei mir auch schon in der Bastelkiste liegen. Und um das Forum zu bereichern hier ist der Sketch von meinem Datenlogger der aber wohl aufgrund seiner Größe mit 31,7KByte nur auf dem Mega2560 ![]() Hier mal die integrierten Funktionen ![]() Beim Start wird von einem NTP Server die UNIX-Zeit abgefragt und dann aber nur noch intern weitergezählt - läuft dann auch leicht weg mit der Zeit. Jede Sekunde werden 3 Temperaturen erfasst ( 2x LM335, 1x PT1000), sowie der Wert in mV einer Fotozelle.(im Zweifelsfall gilt der Code ![]() Die Werte werden auf einem LCD Shield das ich auf die noch freien Pin's angepasst habe angezeigt bzw. können auf Tastendruck abgefragt werden. Die aktuellen Messwerte sind über Ethernet abrufbar und werden zudem jede Sekunde auf die SD-Karte gespeichert. Da die Tabellenkalkulation von Star-Office (Excel wohl auch) keine Dateien mit mehr als 65.000 Datensätze aus einer Text-Datei importieren kann wird alle 50.000 Datensätze ein neuer Logfile generiert. Die Logfiles werden automatisch im Bereich der Nummern 10.000 bis 65.000 generiert was ein langes Loggerleben ermöglicht. Über die Tasten kann man die verborgenen Messwerte abfragen, einen neuen Datenfile erzwingen, die Dateigröße reduzieren, und die SD-Karte abmelden das keine Datensätze mehr geschrieben werden, zum wiederanmelden der SD wird das System zurückgesetzt und somit eine neue NTP Zeit geholt. Das wärs mal im Groben....bei Fragen... Aber nun mach ich erst mal an meinem RPi Projekt weiter... Gruß bk manche würden sagen Spaghetticode...aber gerne nehme ich ne Einladung zu Carbonara ![]() ![]() überschritten habe... Code: // Hier gehts los 1+1 = 10 ![]() ![]() |
|||
05.01.2014, 15:40
Beitrag #13
|
|||
|
|||
RE: Temperatur auf Lan ausgeben
Hallo Bitklopfer,
Zitat:manche würden sagen Spaghetticode...Nix da, der Code ist gut kommentiert und sauber strukturiert. Was will man mehr? Grüße Ricardo PS: Nicht das sich das Forum zu einer "Altherrenriege" entwickelt ![]() Nüchtern betrachtet...ist besoffen besser ![]() |
|||
05.01.2014, 15:57
Beitrag #14
|
|||
|
|||
RE: Temperatur auf Lan ausgeben
(05.01.2014 15:40)rkuehle schrieb: Hallo Bitklopfer, Hallo Ricardo, Danke für die Blumen...weissu Kommentare sind gut gegen Alzi... ![]() vor knapp 30 Jahren habe ich Kommentare gehaßt... ![]() ..und vielleicht sollte ich mal bei den Azubi's und Schülerpraktikanten wo bei mir im Betrieb durchlaufen und seit kurzem auch nen Arduino Craschkurs bekommen mal auf das Forum hier hinweisen.... immerhin bastel ich für die gerade an einem abgewandelten UNO Board wo gleich einige LED's und Sensoranschlüße drauf sind bzw. 1..2 Leistungsrelais damit ich die Platine universell einsetzen kann....also auch für Betriebliche Aufgaben. lg bk 1+1 = 10 ![]() ![]() |
|||
|
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste