USB-Datenlogger Feuchte & Temperatur





Dieser USB-Datenlogger kann Temperatur und Feuchtigkeit aufzeichnen und/oder auf dem LCD anzeigen. Der Messfehler ist abhängig vom gewählten Sensor und die Aufzeichnungsdauer ist mit 32.768 Datensätzen ausreichend groß. Hinzu kommen 2 Stromsparfunktionen in 3 Anzeigenmodi.

Das Modul besteht im wesendlichen aus dem Controller ATMega168, dem EA-DOG LCD mit 250µA Stromaufnahme, die 3 I²C ICs EEPROM, RTC-Uhr und dem eigentlichen Sensor. Ein extra für Batterie optimierter Spannungsregler und ein FTDI USB-Converter runden diese Schaltung ab.

Die Funktion:
Nach dem Aufbau muss die Uhrzeit und das Datum eingestellt werden. Dazu den Taster1 (SET) beim Einschalten der Stromversorgung (oder Reset) gedrückt halten und das Display zeigt das Anzeigeschema mit "x" an. Jetzt wird der Taster SET für die Minuten verwendet, nach 6sec automatisch nach den Stunden gewechselt und so weiter.
Ist das Jahr ebenfalls eingestellt, erscheint ein Hinweistext, dass der Taster 1 bei Null Sekunden der Quell-Uhr gedrückt werden soll. Der Messintervall des Moduls kann in den Minutenschritten 1, 5, 10, 30, 60 und 120 gewählt werden, voreingestellt ist eine Minute. Der Zyklus wird geändert, indem Taster 1 und 2 beim Einschalten gleichzeitig drückt wird, mit Taster 1 den gewünschten Intervall einstellt und mit Taster 2 bestätigt.
Somit wären die beiden wichtigen Parameter eingestellt und das Messmodul ist bereit für die Messungen.

Um die Batterien so lange wie möglich zu betreiben, wurde die Hard- und Software auf minimalen Verbrauch optimiert. Hierzu wird mit dem Uhren-Quarz am uC ein Timer aktiviert, der alle 6sec den Controller aufweckt. Dieser prüft kurz (0,5ms), ob er sich wieder schlafen legen oder eine Messung inkl. Anzeige und abspeichern durchführen soll. Ist der Messzyklus z.B. auf 60min eingestellt, wird der uC 599x aufgeweckt, bis er eine Messung ausführt.

Es gibt 4 Anzeigemodi und somit auch 4 unterschiedliche Stromaufnahmen bzw. Betriebsstunden, die sich wie folgt verhalten:
Modus eins schaltet das LCD und das Uhren-ICs (RTC) ab und das LCD bleibt permanent aus. Somit beträgt die Stromaufnahme ca. 100µA, was eine Laufzeit von ca. 900 Tagen ermöglicht. Der Messvorgang braucht ca. 10mA bei einer Dauer von je 34ms und 70ms, hierzu wird der Uhren-IC wieder eingeschaltet (Tage bei stündlicher Messung gerechnet).
Im zweiten Modus bleibt das LCD eingeschaltet, die Werte ändern sich aber nur im entsprechend eingestellten Messzyklus von z.B. einer Stunde. Dies gilt auch für das Datum und Uhrzeit. Die Anzeige stellt also den Zeitpunkt der letzen Messung dar. Dieser Modus ist interessant, wenn die Werte auch angezeigt werden sollen, wie bei einem Tischgerät. Die Stromaugnahme beträgt nun 300µA, da das LCD ständig eingeschaltet bleibt. Daraus ergibt sich eine Laufzeit der Batterien von ca. 350 Tagen.
Der dritte Modus ist wie Modus 2, nur dass hier bei jeder Aufwachphase (6sec) auch gemessen/angezeigt wird. Dies hat den Vorteil, dass die Werte nicht nur im eingestellten Intervall angezeigt werden. Dieser Modus geht aber zu Lasten der Lebensdauer der Batterien.
Der vierten Modus sollte nur mit einem Netzteil aktiviert werden, da hier der uC ständig am messen und anzeigen ist und somit gute 8mA bis 10mA benötigt. Auch die opt. LCD Beleuchtung wäre jetzt aktiv (40mA).

Das externe EEPROM hat eine Größe von 1024kbit, was 128kB entspricht. Je Datensatz werden 4 Bytes benötigt, was eine gesamte Speichermenge von 32.768 Datensätzen entspricht. Je ein Byte werden für Temperatur und Feuchtigkeit benötigt und 2 Bytes für das Datum.
Durch Erweiterung der Software und weitere max. 3 EEPROM's wäre eine Speichererweitung möglich, aber nicht unbedingt sinnvoll.
Hat das Modul nun eine gewisse Zeit gelaufen, möchte man die Daten auch zum PC übertragen. Hierzu wird das Modul mit dem PC verbunden und es müssen ggf. Treiber [1] installiert werden. Die Treiber stellen einen COM-Port zur Verfügung, wie COM3 o.ä.
Zum einlesen in den PC hat sich das Programm Putty [2] als sehr nützlich erwiesen. Im Programm Putty muss also der COM-Port und 57600 Baud eingestellt werden. Steht die Verbindung, wird mit Taster 1 die Übertragung gestartet und ein Hinweis im LCD ausgegeben. Je nach Logdauer und Intervall ergeben sich unterschiedliche Übertragungszeiten, für alle 32.000 Datensätze werden ca. 3min gebraucht.
Sind die Daten übertragen, fragt das Programm noch, ob man die Daten löschen will. Sollte dies der Fall sein, den Taster 1 drücken, ansonsten einfach 6sec warten und es wird an gleicher Stelle weiter geloggt.

Die Ausgabe erfolgt im Format:
/;EEPROM-Adr;Datum;Feuche;Temperatur (mit Semikolon getrennt), zum Beispiel:
/;128;10702;60;23
Das Datum wird im Format Jahr (nur zweite Stelle)-Monat-Tag ausgegeben. Auf die Uhrzeit wurde zu Gunsten der Speichermenge verzichtet, ist sie bei Langzeitmessungen auch nicht elementar.



Die Hardware und Aufbau:
Die Hardware ist als Modul aufgebaut, hierbei ist das LCD auf der Lötseite zu montieren. Die benötigten Buchsenleisten lassen sich recht gut seitlich mit 0,5mm Lötzinn verlöten, auf Brückenbildung ist zu achten.
Auf gleicher Ebene (Lötseite) müssen die 2 Taster S1 und S2, das USB-IC, die Diode D1 und die beiden Quarze bestückt werden. Die Gehäuse der Quarze sollten mit Masse verlötet werden.

Auf der Bestückungsseite werden alle weiteren Bauteile gem. Plan bestückt. Wichtig ist die Brücke 1 (Brücke 2 kann entfallen) nicht zu vergessen und 3 Adern, 2 davon für die Verbindung SCL/SDA und eine für die Verbindung der LCD Beleuchtung Pin 1 mit Pin19.
Besonders muss die Einbaurichtung vom Sensor kontrolliert werden, dieser muss auf die Bestückungsseite und Fühler nach außen eingelötet werden. Ein falsche Montage wird zum verpolen führen und das mit den bekannten Folgen.

Der von mir eingesetzte Sensor ist der Typ HYT321, der mit 3% Fehler bei Feuchtigkeit und 0,4°C bei Temperatur ab Werk [3] kalibriert ist. Genauer geht es mit dem HYT271 mit 1,8% rF und 0,2°C der aber auch 5,- EUR teurer ist. Für die Software gibt es keine Unterschiede und beide Sensoren sind einsetzbar.

Das RTC-IC hat eine komplette Uhr mit Datum integriert und wird mit einer 3V Lithium Batterie gepuffert. Da in dem RAM auch die Pointer-Adresse des EEPROM's und weitere Parameter abgespeichert werden, ist die Batterie zwingend erforderlich. Sie hat auch den Vorteil, dass die Uhr intern auch ohne Batterien weiterläuft und nichts verstellt wird. Ein Loggen ist natürlich dann nicht möglich, hierzu werden die 4x 1,5V Mignonzellen benötigt.

Eine externe Versorgung (+9V) ist möglich, dann wird die Batterie mit einem Relais getrennt und die Beleuchtung wird eingeschaltet, sofern bestückt.
Das Batteriesymbol zeigt dann ein "E" wie Extern an, im Batteriebetrieb 5 Symbole von voll bis leer.

Da die Taster auf der LCD-Seite bestückt werden, ist der Bedrahtungsaufwand eher minimal. Ggf. müssen die Taster nicht komplett eingesteckt werden, sollte die Länge nicht bis zur Frontplatte ausreichen. Zusätzlich ist der Reset-Taster S3 vorgesehen, um die Einstellungen auch ohne Unterbrechung der Stromversorgung vornehmen zu können. Dieser kann dann zur Rückwand des Gehäuses geführt bzw. die Achse verlängert werden.



Technische Daten:

Messintervall: 1, 5, 10, 30, 60 und 120min
Messpunkte: 32.768 Datensätze je Temp.,
Feuchte und Datum
 
Stromaufnahmen: Modus 1 ohne LCD: 96µA
Modus 2+3 mit LCD: 300µA
Modus 4 Dauermessung: 10mA
Ext. Versorgung und Bel.: 50mA
Laufzeiten 2800mA Modus 1: 900 Tage
mit AA Batterien: Modus 2: 350 Tage
Modus 3: 280 Tage
Modus 4: 10 Tage
 
Messbereich mit HYT321: 0…100% rF und -40…+100°C
Messfehler mit HYT321: ± 3% rF und ± 0,4°C (hier)


Gebrannte Controller oder Platinen in kleiner Stückzahl können zum SKP bezogen werden, die Firmware zum selber brennen sende ich aber auch gerne zu (eMail).


Hier wieder ein paar Bilder (anklicken):


Fertiger Aufbau, rechts unten die Anzeige der Batterie Spannung (Voll)
Bestückungsseite, links die USB-Buchse
Schaltplan des Datenloggers


- Der komplette Aufbau zum Download => datenlogger.pdf (3,0MB)



Impressum   Stand: 30.07.2011 Nach oben   Zurück