Datanlogger mit uC basteln

Aug 16, 2005 2 Replies

Hallo, ich denk grad über ein Projekt nach und um nicht gleich am Anfang arge konzeptionelle Fehler zu machen würde mich Eure Meinung interessieren.



Ich möchte einen Datenlogger bauen, an den verschiedene digitale Sensoren angeschlossen werden können sollen. Die Messwerte sollen gespeichert und später mit einem PC ausgelesen und weiterverarbeitet werden. Soweit mal nicht allzu Spannend, aber auch nicht ganz einfach.



Es sollen digitale Sensoren, etwa der Maxim Chip DS1621, verwendet werden. Oft wird zur Übertragung der Messwerte ein I²C Bus verwendet. Leider setzen etliche interessante Sensoren eigene ein- oder zweidrahtige Bussysteme ein, das ist je nur eine frage der Software.



Die Sensoren werden an einen µController angeschlossen. Fragt sich nur welcher sich eignet. Ich dachte an einen der AVR Typen von Atmel. Der µController muss die Messwerte einsammeln, so vielleicht all 60 Sekunden, und in einen nichtflüchtigen schreiben.



Als Speicher bietet sich ein serieller Flash-RAMs mit I²C Bus an. Oder ist der Aufwand für I²C zu groß und unnötig und man setzt besser was paralleles ein?



Das ganze soll am besten mit einem Akku als Energiequelle auskommen, auch über Monate hinweg. Wenn das nicht geht, dann eben Netzteil und Akkupuffer für den Fall eines kurzen Stromausfalles.



Mir scheint die Hardware einigermaßen überblickbar zu sein. Im Moment macht mir die Software mehr Sorgen, die muss immerhin die Daten von etlichen (verschiedenen) Sensoren sammeln und speichern, außerdem muss sie die Daten auch wieder über eine geigende Schnittstelle (RS-232?) an einen PC übermitteln können und das am besten ohne die Messungen zu unterbrechen. Ich hab bisher noch keine Erfahrung in der Programmierung von µControllern, war aber mal in Pascal, C/C++ und x86 Assember recht fitt, mit nur etwas aus der Übung.



Was meint Ihr klingt das einigermaßen sinnvoll so? Irgendeine Empfehlung für µController, Flash, Bustreiber, etc.?



Ich hoffe das ist nicht noch alles viel zu allgemein. Naja und vielleicht sind meine Überlegungen ja schon sinnvoll zu kommentieren.



Grüße Flo


"Florian Rist" schrieb im Newsbeitrag news: snipped-for-privacy@4ax.com...

Mit nem AVR ist das alles kein Problem, denn I2C und ser.Schnittstelle sind als Hardware vorhanden. Natürlich baut und programmiert sich das nicht von selbst, aber es dürfte relativ problemlos realisierbar sein. Aber tu dir selbst einen Gefallen und schreib es nicht in Assembler, dessen Vorteile brauchst du dafür nicht und in einer Hochsprache gehts viel schneller und macht mehr Spass. Du wirst vielleicht Basic nicht mögen, aber ich find BascomAVR genial ! Die Samplingroutine in nen 10 Sek Interrupt, dann kannste im Hauptprogramm währenddessen mit dem PC komunizieren.

-Klaus-

Hallo Klaus, danke für Deine Antwort. Tut mir leid, dass wir jetzt zwei Threds haben, ich hab den mit dem Tippfehler ausgerechnet in der Überschrift leider nicht schnell genug gecancelt.

Ah, da muss ich mir mal die Datenblätter genau durchlesen, das wär' ja schon praktisch, ich dachte ich muss alles selber machen. Lieder haben nicht alles Sensoren I²C.

Klingt gut.

Die fertigen Sachen, die man so kaufen kann sind entweder zu teuer oder nicht leistungsfähig genug. Mal sehen, ob ich was passendes hinbekomme.

Ja? Obwohl das alles so "maschinennah" ist? Ich kann mir kaum vorstellen, dass der Basic Quellcode für die Controllersoftware lesbar aussieht. Wird mir mal ein paar Beispielprogramme anschauen.

Danke für den Tipp, ich schau's mir an. Ansonsten gibt's ja auch Pascal und C für AVR.

Ja, so in etwa, denk ich mir das auch. Im Normalfall wird die Samplingroutine sogar nur alle paar Minuten aufgerufen werden. Die AVRs haben sicher programmierbare Timer mit denen man so was machen kann.

Grüße Flo

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required