Forum: Mikrocontroller und Digitale Elektronik Webserver & 1-Wire


von Sucher (Gast)


Lesenswert?

Hallo


Webserver und 1-Wire Freunde. Ich versuche mal hier einen neuen Thread 
zu starten,der das Ziel hat einen Webserver mit 1-Wire Unterstützung zu 
erstellen. An mehreren Stellen wird schon versucht das Thema 
aufzubereiten.

Wie ist die Meinung dazu für den 1-Wire Teil einen kleinen "Atmel" zu 
nehmen oder die DS2482-100 bzw. 800 bzw die Funktion dieser mit einem 
Tiny zu implementieren. Man hätte dann keine Timingprobleme.

Antwort an  @RoBue: derzeit bin ich sicherlich noch nicht in der Lage 
das in Simons Webserver zu integrieren, aber gemeinsam sollte da schon 
was gehen. Schön wäre natürlich die Unterstüzung der jeweiligen 
Originalautoren.

Mal sehen was geht. Kurzfristig kann ich da sicherlich keinen großen 
Beitrag liefern, da mir die Hardwarebasis fehlt.

Viele Grüße
Achim

von Peter D. (peda)


Lesenswert?

Sucher wrote:
> An mehreren Stellen wird schon versucht das Thema
> aufzubereiten.

Kannst Du mal genauer erläutern, was Du damit meinst?

Ich benutze sehr gerne die 1-Wire Temperatursensoren, weil die 2 
wichtige Vorteile haben:

1.
Ich habe ohne jeglichen Aufwand (kein Abgleich, kein Analog-Krams) 
sofort die genaue Temperatur.

2.
Ich kann jedes ausgelieferte Gerät eindeutig identifizieren.
Ein Seriennummer-Aufkleber kann unleserlich werden, aber einen 1-wire 
Chip zu fälschen ist sehr aufwendig.


Wenn man einen MC ohne OS benutzt, ist 1-Wire sehr leicht zu 
implementieren und sehr zuverlässig.


Von Webserver habe ich aber Null-Ahnung.


Peter

von Sucher (Gast)


Lesenswert?

Hallo

@Peter ich habe auch schon lange  die DS18S20 im Einsatz (ohne 
Webserver). Der Code ist teilweise auch von Dir (?) 
http://www.siwawi.arubi.uni-kl.de/avr-projects. Zumindest steht das im 
Header. Ich habe das als Standolone-Temperatur-Erfassung schon lange im 
Einsatz. Vielen Dank auch nochmals an Dich!

In einigenThreads wird nun diskutiert, dass man diese Routinen in einen 
Webserver integriert.
zB: Beitrag "Webserver zur Temperaturmessung"

Mein Gedanke ist nun die Temperaturfassung mit den Ds18S20 eventuell mit 
einem Atmega8 (?) vom Webserver zu entkoppeln
Hardwareaufbau eventuell so 
>>http://s-huehn.de/elektronik/tempmess/tempmess-sm2.htm

Mit dem Modul könnte man dann noch Relais ansteuern. Ziel ist es eine 
Heizung +Solaranlage zu überwachen und zu regeln.
Als Bedien/Konfigurationsoberfläche dann einen Standardbrowser der dann 
über den Radig/Simon/Dunkel-Webserver(?) das 
"Temperatur-Steuer-Submodul" bedient.

Allerdings fehlt dazu noch die Hardware (Webservermodul/ Sensormodul/ 
Relaismodul). Webmodul könnte man den von Radig nehmen. Die Frage ist 
nun wie man den Sensormodul mit Relais oder eigenen Relaisemodul am 
geschicktesten mit dem Webservermodul verbindet (I2C, SPI, RS232 oder?)?
So hätte man eine "saubere" Schnittstelle zwischen den einzelnen 
Komponenten.


MfG
Achim

von Jens K. (jjk) Benutzerseite


Lesenswert?

Sucher wrote:
> Mein Gedanke ist nun die Temperaturfassung mit den Ds18S20 eventuell mit
> einem Atmega8 (?) vom Webserver zu entkoppeln
> Hardwareaufbau eventuell so
>>>http://s-huehn.de/elektronik/tempmess/tempmess-sm2.htm

So hab ich das gemacht (siehe (1)). Ich habe das Sensormodul von 
Scott-Falk genommen, einen Server auf dem Linux läuft und ein 
Perl-Script. Fertig.
Man kann jetzt natürlich im Script auch eine an den LPT angeschlossene 
Relaiskarte Schalten lassen. Klar, da ist n PC als Server, Du meintest 
wohl eher nen MC als Webserver, oder? Aber da gibt es doch auch genug 
"fertige" Lösungen, und dann sollte doch der Empfang serieller Daten 
möglich sein ...

Gruß
  Jens


(1) http://tarkin.ath.cx/~jkrause/temp.php

von Sucher (Gast)


Lesenswert?

Hallo

@Jens, sowas habe ich auch am laufen. Unter Windows XP erfasse ich über 
die serielle Schnittstelle DS18S20 Temperaturdaten von einem Atmega32 
Subsystem und lade diese  diese in eine SQLServer 2005 Datenbank. Die 
Auswertung ist so von der Erfassung entkoppelt.  Aber das ist eine 
andere Dimension. Im einen Pc am Laufen zu haben (zwar ein MiniITX) 
möchte ich nicht. Ein Mini/Mikro Webserver mit ner SD Karte  ist da doch 
ne Nummer kleiner. Es geht also um ei "Downgrade" auf Atmega-Basis.

Ne Frage: Hast Du ne Platine für das Anzeigemodul?

MfG
Achim

von Jens K. (jjk) Benutzerseite


Lesenswert?

Sucher wrote:
> Ne Frage: Hast Du ne Platine für das Anzeigemodul?

Jain, ich entwickel grad ein Anzeigemodul selber, welches zwischen 
Scott-Falks Anzeigemodul 1 und 3 liegt.

Falls Du das Sensormodul meinst, da habe ich dem Scott-Falk mein Layout 
zukommen lassen. Man kann es auf Seiner Seite runterladen (unter 
Sensormodul2, das von Jens Krause :-) ). Bilder davon sind in seiner 
Gallerie.

Das mit dem downgrade ist schon richtig, immer nen Rechner laufen zu 
lassen ist nicht so gut. Ich habe demnächst auch vor eine 
Heizungsüberwachung zu bauen, aber auch dort kommt wohl ein PC zum 
Einsatz, da er eh schon da sein wird. Allerdings auch mit nem Java-Tool 
und nicht per Webserver steuerbar.

Aber ich bin mal auf Abo hier :-)
Jens

von RoBue (Gast)


Lesenswert?

Projektbeschreibung 1-Wire - Webserver - AVR-NET-IO
***************************************************

Nachdem Achim freundlicherweise den Thread eröffnet hat, möchte ich - 
bevor alle möglichen anderen Beiträger erscheinen - das Projekt etwas 
genauer beschreiben.


Angestoßen wurde es durch das relativ billige Webmodul von Pollin 
(AVR-NET-IO) mit ATmega32 und ENC28J60, das mit knapp 20 EUR relativ 
viel bietet. Nur die Software ist realtiv schwach und dazu ist der 
Quelltext nicht offen.

Weitere Infos dazu:
-> http://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin
-> Beitrag "Re: AVR für wenig Geld im LAN"
(und natürlich bei Pollin)

Nun haben einige findige Programmierer vorhandene AVR-Webserver für den 
AVR-NET-IO umprogrammiert. So stehen z.B.
- der Webserver von SimonK
- der Webserver von Ulrich Radig
als Source und Hex-File für AVR-NET-IO zur Verfügung (s.o.)
Leider haben beide Versionen keine 1-Wire-Abfrage.

Andererseits gibt es einige 1-Wire Webserver für DS1820,
die aber teilweise zu groß für den ATmega32 sind, weil sie (zu) viele 
andere Möglichkeiten bieten (Funkuhr, Webcam, ...),
oder/und die nicht mit dem ENC-Bausteinzusammenarbeiten , wie z.B. der 
von Joachim Börke.
-> Beitrag "Webserver zur Temperaturmessung"

Routinen für 1-Wire gibt es z.B. von Peter Dannegger (PeDa) und -> 
http://www.siwawi.arubi.uni-kl.de/avr-projects

***********************************************************************
Lange Rede kurzer Sinn:
Es wäre super, wenn wir ein Webserverprogramm für da AVR-NET-IO 
hinbekämen, das zumindest die Temperatur von 1-Wire-Bausteinen abfragen 
und vielleicht mit diesen auch schalten und steuern kann.
***********************************************************************

Ende Projektbeschreibung von RoBue

PS: Ich hoffe, ich habe auch Achims Anliegen richtig wiedergegeben

von holger (Gast)


Lesenswert?

@RoBue

>Andererseits gibt es einige 1-Wire Webserver für DS1820,
>die aber teilweise zu groß für den ATmega32 sind, weil sie (zu) viele
>andere Möglichkeiten bieten (Funkuhr, Webcam, ...),

Dann schmeiss Funkuhr,Webcam doch einfach raus.
Passt dann schon.

von RoBue (Gast)


Lesenswert?

Was wäre zu tun? (Wunschliste)

Ich (!) denke, dass der Webserver von SimonK die besten 
Ausgangsmöglichkeiten bietet. Er ist kurz genug für weitere 
Applikationen und ich habe das Webmodul (HttpD.c) eingermaßen begriffen, 
so dass ich es manipuliernen und erweitern kann.

Nun müsste man "nur" noch 1-Wire-Routinen integrieren. Und genau das 
macht mir (!) in mehrfacher Hinsicht Probleme.

Zum einen bin ich ein Anfänger in C und verstehe manche Befehle und 
Programmteile schlicht nicht.

(-> Holger: Darum kann ich auch nicht einfach Programmteile entfernen. 
Die sind oft so vielfältig ineinander verschachtelt, dass ich da nicht 
mehr durchblicke und nur ellenlange Fehlermeldungen produziere. Aber ich 
werde mir das nochmal ansehen. Außerdem:)

Zum andern hat mein WinAVR-Compiler immer wieer Probleme mit manchen 
Sourcen (Das kann ich gerne noch genauer beschreiben. Vielleicht bin ich 
nur zu dämlich. So klappt bei mir weder der Webserver von Joachim Börke, 
noch etherape und ethersex, währende die Sourcen von Ulrich Radig und 
Simon problemlos laufen. Wieso?)

Eine 1. Hilfe wäre (vielleicht kann das PeDa in Angriff nehmen), wenn 
man einfach einmal die nötigen 1-Wire-Sourcen in die des Webservers von 
Simon integriert, so dass ein grundsätzlich compilierbarer Code 
entsteht.

Der 2. Schritt wäre dann, die nötigen include-Befehle zu setzen und die 
notwendigen Initilisierungsroutinen in main.c einzubauen, damit die 
Bausteine erkannt werden und ihre Kennung irgendwo (EEPROM?) 
festgehalten wird.

Als 3. Schritt müsste das regelmäßige Aufrufen der Bausteine zum Messen 
und das Auslesen der Messwerte sein (ca. alle 10 s oder 1 min), die dann 
im RAM abgelegt werden. Dies muss man in main.c oder in einer 
Interrupt-Routine einbauen.

Zuletzt werden dann diese abgelegten Werte beim Aufruf des Webservers 
eingebunden und ausgegeben. Dafür habe ich wohl eine Lösung.

Ich wäre froh, wenn einer der Profis wenigstens den 1. Schritt 
übernehmen könnte und die Sourcen mit entsprechenden Kommentaren 
versieht (bevorzugt in Deutsch). Ich versuche dann sozusagen von der 
anderen Seite her zu kommen.

Grüße RoBue

von holger (Gast)


Lesenswert?

>(-> Holger: Darum kann ich auch nicht einfach Programmteile entfernen.
>Die sind oft so vielfältig ineinander verschachtelt, dass ich da nicht
>mehr durchblicke und nur ellenlange Fehlermeldungen produziere. Aber ich
>werde mir das nochmal ansehen.

Dann folge den Fehlermeldungen und entsorge die Zeilen
die Fehler melden.

>Ich wäre froh, wenn einer der Profis wenigstens den 1. Schritt
>übernehmen könnte und die Sourcen mit entsprechenden Kommentaren
>versieht (bevorzugt in Deutsch). Ich versuche dann sozusagen von der
>anderen Seite her zu kommen.

Die Profis haben aber leider keine Zeit oder Lust
dir deinen für deine persönlichen Zwecke angenehmen
Webserver auf den Punkt genau zu programmieren.

Wer sich mit Webservern beschäftigt sollte schon
extrem gute Programmierkentnisse haben. Wer an bestehenden
Webserver Sourcen rumbasteln möchte sollte auch verstehen
was da passiert. Es gibt keinen Crashkurs für Webserver-Modding.
Jede Änderung kann weitreichende Folgen haben (geht nix mehr).

Also Noobs: kauft euch etwas was eure Anforderungen erfüllt.
Hofft nicht darauf das da einer kommt und es für euch erledigt.

von RoBue (Gast)


Lesenswert?

Hallo Holger,
danke für den Tipp mit den Fehlermeldungen, werde das mal versuchen.

Zum andern ist das die alte Diskussion in vielen Threads:
Wenn ich alles selber könnte, bräuchte ich mich hier gar nicht 
einzubringen.

Außerdem habe ich den Eindruck, dass 1-Wire und Webserver durchaus für 
viele interessant ist (Heizungssteuerung über Internet). Ich möchte mit 
meinen Vorschlägen/Gedanken/Hilferufen die Sache voranbringen. Wenn 
keiner helfen will und tatsächlich niemand Interesse hat, ist das auch 
o.k.. Ich kann damit leben.

Gruß RoBue

von RoBue (Gast)


Angehängte Dateien:

Lesenswert?

Da hier zur Zeit nicht viel läuft, ein klienr Denkanstoß:

Habe nun einfache 1-Wire-Unterstützung auf AVR-NET-IO integriert.
(Sourcen von Radig, mudman und Wil miteinander verwurstelt.)

- 1 Sensor an PORTA7

- Ausgabe auf Webinterface und UART

- Temperatur wird 1 pro min ausgelesen

Wichtig: Die ID Eures Sensors in config.h eintragen und neu compilieren.

Liebe Downloader (und C-Experten):
Ich würde mich über eine Rückmeldung freuen.
Nehme gerne Tipps entgegen und habe auch gegen aktive Hilfe nichts
einzuwenden.
Auf jeden Fall muss ich mir nun nicht mehr den Vorwurf gefalllen lassen,
dass ich nur andere schaffen lasse ...

Gruß RoBue

von Mike (Gast)


Lesenswert?

Hallo,

sowas gibts schon fertig mit Webserver, Ethernet Anschluss und 
Kommandozeilen Interface.
Schaut mal unter http://www.lochraster.org/etherrape
Für das Teil gibts zwei verschiedene Fimware Implementationen die noch 
viel mehr Funktionalität haben. Ich habe so ein Teil be mir im Einsatz 
um die Aussentemperatur zu erfassen und in eine Datenbank zu schreiben, 
das tut einwandfrei. Geplant ist auch noch die Erfassung der 
Innentemperatur und die Ansteuerung eines Heizlüfters über FS-20 bei zu 
starkem Absinken der Innentemeratur.

von Stefan S. (stesie)


Lesenswert?

Hallo,

in Ergänzung zu Mike's Kommentar möchte ich hier mal auf die Ethersex 
Firmware hinweisen (siehe http://www.ethersex.de/). Diese läuft auf AVR 
Net-IO, hat einen Web-Server integriert und kann über die 
ECMD<->HTTPd-Anbindung auch ow-Werte per http abliefern.

Soll heißen man kann mit http://ethersex.ip/ecmd?1w+get+ONEWIREID die 
Temperatur abfragen und das mit JavaScript/Ajax dann schön in eine 
Webseite verpacken. Wer z.B. die Etherrape-(Original)-Hardware mit 
Dataflash hat, kann die HTML-Seiten + JavaScript-Code auch gleich dort 
ablegen und hat dann alles an einem Fleck ...

Happy hardware hacking ...
  stesie

von RoBue (Gast)


Lesenswert?

Hallo 1-Wire-Fans,

habe nun eine neue Version (V1.3)für AVR-NET-IO und 1-Wire eingestellt.

Wer möchte, kann sie herunterladen und sie für seine Zwecke anpassen.

-> Beitrag "Re: AVR für wenig Geld im LAN"

Grüße, RoBue

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.