Archiv verlassen und diese Seite im Standarddesign anzeigen : Beste Lösung um Temperaturwerte aufzuzeichnen?
nowayback
15.06.2008, 20:45
Guten Abend!
Ich möchte an einer Heizung Temperaturen an ca. vier bestimmten Stellen protokollieren und auswerten.
Diese Temperaturwerte sollen von einem System jede Minute per Temperatursensoren ausgelesen und abgespeichert werden.
Die Temperatursensoren geben die Temperatur als Spannung zwischen 0V und 5V zurück, dabei sollte imho ein 8bit AD-Wandler reichen.
Dieses System soll ständig aktiv sein und aus diesem Grund möglichst wenig Energie verbrauchen.
Um die aufgezeichneten Daten schließlich auszuwerten, möchte ich einen Computer verwenden, der per TCP/IP an das System angeschlossen ist und die Daten abruft. Der Speicher in dem System kann dann anschließend wieder geleert werden.
Um dies zu realisieren habe ich bisher 2 Lösungsmöglichkeiten für das System gefunden:
1) Als "System" wird ein PDA verwendet, an dem per USB eine I/O-Karte (http://www.conrad.de/goto.php?artikel=191041) angeschlossen ist. Allerdings weiß ich nicht, ob die Karte mit einem PDA kompatibel ist und wie leicht sich ein passendes Programm für ein PDA entwickeln lässt.
2) Als System wird ein Mikrocontroller verwendet, der mit einem TCP/IP-Modul wie Easy TCP/IP (http://elmicro.com/de/easytcpip.html) ausgestattet wird. Ein externer Speicher sollte auch nötig werden, da der integrierte EEPROM bei ca. 10 Bytes an Informationen pro Minute recht schnell voll werden würde. Außerdem müssen pro angefangener Session (Mikrocontroller wird aktiviert) das aktuelle Datum plus Uhrzeit abgespeichert werden, damit die folgenden Temperaturwerte zeitlich einsortiert werden können. Dabei brauche ich wahrscheinlich auch noch ein Modul um die Funkzeit zu empfangen.
Um die aktuellen Werte einsehen zu können wäre auch noch ein LCD praktisch.
Welche Lösung würdet Ihr vorschlagen?
Besserwessi
15.06.2008, 21:51
Die PDA Lösung könnte gehen, wenn man die passende Karte zum Datenaufnehmen findent. Der Stromverbrauch wird aber relativ hoch sein, sodaß man wohl nur mit Netzeil klar kommt.
Die Lösung mit einen Controller ist komplizierter aufzubauen. Ich würde die Daten lieber auf einer SD/MMC Karte Speichern. Zum Datenaustauch könnte man einfacher USB, RS232 oder die Speicherkarte wählen, TCPIP (über Ethernet) ist relativ aufwendig. Als Alternative zu Speicherkarten gibt es Dataflash EEPROMs mit SPI Schnittstelle. Bis etwa 8 MBytes ist das einfacher.
Die Controllerlösung könnte so sparsam sein, das man sie auch mit Batterien betreiben kann, eventuell auch per Supercap, der dann gelegentlich geladen werden müßte.
ich hätte auch zu einem µC und einer speicherkarte tendiert..der kann messen,speichern und auch ein lcd ansteuern..(bei bedarfso wird wieder energie gespart)
das mit dem TCP/IP weiß ich nicht......entweder man greift auf usb etc zurück..oder eben auf das oben genannte modul...was sich mit einem entsprechen großen µC gleich mit abarbeiten lassen würde...aber nur die kosten nach oben treibt..
TCP/IP-Stacks immer und immer wieder selbst auf Controllern implementieren finde ich lästig. Wenn es schon sein muss, dann ist der Prozessor entweder aus anderen Gründen schon so fett (ARM), dass es mit offener Software erledigt werden kann - ein nettes Eval-Board gäbe dann zB ein WRT-Router von Linksys ab, oder man nimmt ein entsprechendes Modul, was sich mit geringer Stromaufnahme aber auch nicht so recht vereinbaren lässt.
Ich habe mal was mit einem XPort bauen müssen, ganz nett für die Anbindung, aber auch eine kleine Heizung (0,7W?)
Zur Problemstellung ansich: sind die 0-5V von den Sensoren bereits linearisiert? Wenn nicht, solltest Du lieber in Richtung 10-12bit denken, je nach Messbereich und Auflösung. Ansonsten dürfte der ADC eines der aktuellen ATmega allemal reichen, an den SPI-Bus kommt dann der auch schon erwähnte Dataflash und schon ist der Datenlogger fertig.
Ich habe einen ATmega8 als PI(D)-Regler für eine Ladesteuerung mit Maximum Power Point Tracking (Solar) vorgesehen, gemessen werden Panel- und Akkuspannung sowie Lade- und Entladestrom, ein PWM-Ausgang erzeugt zunächst eine Gleichspannung, die dann wiederum einen etwas zweckentfremdet eingesetzten Schaltnetzteil-PWM-Controller steuert (Oszillator und MOSFET-Treiber mit Strombegrenzung in einem, was will man mehr).
Die Lade- und Entladedaten werden kontinuierlich geloggt (Dataflash von Atmel am SPI), die Uhrzeit kommt per I2C von einem PCF8583.
nowayback
17.06.2008, 01:07
Danke für eure Antworten!
Ich habe weiter recherchiert und habe erfahren, dass PDAs mit einer ziemlich seltenen und in höheren Preisklassen angesidelten "USB-host"-Funktion ausgestattet sein müssen, damit sie weitere Geräte wie Festplatten ansteuern können. Im Normalfall besitzen sie lediglich eine USB-client-Funktion, mit der sie - wie der Name schon sagt - als Clientgerät an einen PC angeschlossen werden können. Und auch diese USB-host-Funktion funktioniert nur mit plug'n'play-Geräten, die keine eigenen Treiber benötigen. Das beschränkt sich dann auf Tastaturen, Mäuse, Kameras und Speichermedien, die Lösung per USB I/O-Karte sieht daher eher mau aus. Man könnte natürlich die Werte über eine virtualisierte USB-Tastatur überspielen, aber das ist doch wohl wieder eine Idee zu krank. ;-)
Bei der Lösung mit dem Mikrocontroller würde ich eine kabelgestützte Übertragung zum PC unbedingt dem Transfer über einer SD-Karte vorziehen, da es wohl auf die Dauer lästig wird, bei jeder Übertragung zweimal zum Keller runter/-und wieder hochlaufen zu müssen.
Außerdem können während der Übertragung keine neuen Daten aufgezeichnet werden (außer man benutzt den EEPROM als Puffer...).
TCP/IP schien mir ganz vorteilhaft weil hier die Kabel ziemlich lang sein dürfen und man den µC relativ flexibel auch aus dem Internet ansprechen kann, aber wie ich jetzt weiß kann man bei RS232 bei 9600baud auch durchaus 15 Meter Kabel verwenden und beides sollte vollkommen für die paar kB reichen.
Die Uhrzeit werde ich wahrscheinlich mit dem IC von shaun (PCF8583) lösen.
Allerdings habe ich noch Fragen zum Speicher.
Kennt jemand gute Tutorials zum Thema SD-Karten, ausgehend vom Wissen des RN Grundtutorials (https://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht)?
Ich habe ausgerechnet, dass eine aktuelle 4GB-Karte für ca. 13 Euro ungefähr 2500 Jahre mitloggen kann, das sollte ja fürs erste reichen.
Gibt es aber trotzdem einfachere Alternativen wie die Dataflash EEPROMs von Besserwessi? Da bräuchte ich auch Tutorials/Dokumentationen, wie gesagt kenne ich mich auf dem Gebiet der µC noch nicht so gut aus...
Danke
Besserwessi
17.06.2008, 17:43
Die dataflash Bausteine sind als 8 Polige Ics zu kriegen, leider oft nur als SMD, aber SO8 ist ja noch relativ harmlos zu löten. Pro Chip sind das Typisch 0,5 - 2 MBytes. Die Ansteuerung geht per SPI vom Controller. Ein Beispiel findet sich z.B. dort unter Application Note335:
http://www.atmel.com/dyn/products/app_notes.asp?family_id=607
nowayback
03.07.2008, 15:23
So, ich habe nun noch ein wenig recherchiert und habe mich entschieden, EasyTCP/IP in Kombination mit einer CF-Karte und einer DCF1-Funkzeitantenne (http://www.pollin.de/shop/detail.php?pg=OA==&a=NTQ5OTgxOTk=&w=OTk4OTY4&ts=0).
CF-Karte deswegen, weil ich bei Nichtfunktionieren des EasyTCP/IP-Moduls noch auf CF-Datentransport umsteigen kann :)
Leider brauche ich für sämtliche Zusatzmodule weit mehr Pins als mir mein Mikrocontroller geben kann.
Ich könnte meinen µC mit I2C-I/O-ICs erweitern, allerdings stellt sich dann die Frage ob die Programme, die zu den Modulen beigelegt werden, noch mit einer I2C-Erweiterung kompatibel sind.
Ich könnte aber auch ein paar weitere µCs kaufen, wobei jeder dann für eine Sache zuständig ist (Messung, Netzwerk, CF-Speicherung) und ein Master-µC alle dirigiert.
Als Protokoll würde ich dann ebenfalls I2C wählen, obwohl ich nicht weiß, wie effizient es sich bei Datentransport mehrerer kBytes verhält (z.B. wenn die Messdaten über das Netzwerk von der CF-Karte abgefragt werden; das würde über 3 µCs laufen).
Was würdet Ihr vorschlagen?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.