PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenübertragung: Temperatursensor > Computer



dub
26.08.2011, 01:34
Hi,
ich bin neu hier und habe mich auch schon ein bisschen umgesehen. Da ich leider Anfänger auf dem Gebiet der Sensorik bin - aber mich diese Thematik sehr interessiert, (also, was ein PT100 ist und wie er ungefähr funktioniert weis ich, aber das war es dann auch schon) benötige ich etwas Hilfe.
Die Forensuche hat zu meiner Frage keine geeigneten Ergebnisse geliefert ... ich hoffe, dass dies der richtige Thread für meine Frage ist - falls nicht, dann bitte ich die Moderation diesen in das geeignete Board zu verschieben.

Nun zur Frage: Ich würde gerne mittels Temperatursensor die Temperatur (z.B. Raumtemperatur) messen und diese Daten dann möglichst wireless an den Computer senden. Da ich mich mit C# halbwegs auskenne, würde ich mir selbst ein Programm schreiben, welches die Daten dann in einer GUI ausgibt.
Aber nun folgende Probleme:
- Welchen Temperatursensor verwenden?
Ich habe mich da schon ein wenig im Internet umgesehen. Würde zum Beispiel ein "Silizium-Temperatur-Sensor Infineon KTY 23-5 Gehäuseart SOT 23" passen - oder brauche ich da etwas ganz anderes?
- Stromversorgung
Muss der Temperatursensor auch mit Strom versorgt werden? Eigentlich nicht - soweit ich das auf "RN-Wissen" verstanden habe, gehören Temperatursensoren zu den passiven Sensoren und benötigen somit keine externe Stromversorung. Falls doch: Wenn dieser nun z.B. in Freiheit am Fensterbrett montiert wird ... irgendwie habe ich da keine Ahnung wie das mit der Stromversorgung funktionieren könnte?
- Datenerfassung/Datenübertragung
Man liest immer wieder, dass ein A/D-Converter benötigt wird. Wir dieser auch bei allen/einigen/keinem Temperatursensor benötigt? Also hat der Temperatursensor schon die Daten beim erfassen binär/ASCII/.... gespeichert oder muss ich erst dafür sorgen, dass dies passiert. In welchem Format werden die Daten gespeichert sein? Was wäre eure Empfehlung, um diese drahtlos an den Computer zu übertragen? Es sollte jedenfalls eine günstige Übertragungsform sein (also z.B. ohne Webserver auskommen, ...).

Vielen Dank schonmal!

Edit: Rechtschreibfehler

Che Guevara
26.08.2011, 05:03
Hallo,

Welchen Sensor du genau brauchst hängt von mehreren Faktoren ab: Wie groß soll / darf der Sensor sein? Welche Genauigkeit soll der Sensor haben? In welchem Temperaturbereich soll er arbeiten? Wie sollen die Daten vorliegen? usw....
Als Tip: Schau dir den DS18S20 an, diesen kannst du über eine 1-Wire Schnittstelle auslesen und du benötigst nur zwei Leitungen (GND, Daten- bzw. parasitäre Stromversorgungsleitung). Der Temperaturbereich deckt denke ich die normalen Maximaltemperaturen in unserer Umgebung ab (wenn ich mich nicht irre).

Die Stromversorgung könntest du z.b. mit Silikonkabeln realisieren (falls kein zu großer Abstand auftritt) oder mit einer stationären Stromversorgung, wie eine Solarzelle und/oder Akku. Ist eben auch vom konkreten Einsatzort abhängig.

Ein ADC (Analog to Digital Converter) wird nur bei analogen Sensoren benötigt, der hier erwähnte DS18S20 gibt die Daten bereits in digitaler Form (über die 1-Wire Schnittstelle) aus. Allerdings würde ich einen µC zum Auswerten des Sensor und zur Kommunikation mit dem PC verwenden. Um diesen wirst du nur schwer herumkommen, weil der PC diese Daten nicht verarbeiten/interpretieren kann.
Die Übertragung zum PC ist natürlich auch wieder Umgebungsabhängig. Wenn der PC im selben Raum steht wie der Sensor, könnte man z.b. Infrarot verwenden. Allerdings ist diese Art der Übertragung sicherlich nicht die sicherste! Wenn dir das nicht zu teuer ist, könntest du ein BTM222 (Bluetooth Funkmodul) oder ein RFM12 Funkmodul (billig aber aufwändig) verwenden.

Vielleicht sind ja ein paar interresante Ansätze für dich dabei!
Gruß
Chris

dub
26.08.2011, 14:57
Als Tip: Schau dir den DS18S20 an, diesen kannst du über eine 1-Wire Schnittstelle auslesen und du benötigst nur zwei Leitungen (GND, Daten- bzw. parasitäre Stromversorgungsleitung). Der Temperaturbereich deckt denke ich die normalen Maximaltemperaturen in unserer Umgebung ab (wenn ich mich nicht irre).
Vielen Dank, genau so etwas wie den DS18S20 habe ich gesucht! Sehr praktisch (wie schon von dir erwähnt) ist, dass kein weiterer ADC benötigt wird.


Die Stromversorgung könntest du z.b. mit Silikonkabeln realisieren (falls kein zu großer Abstand auftritt) oder mit einer stationären Stromversorgung, wie eine Solarzelle und/oder Akku. Ist eben auch vom konkreten Einsatzort abhängig.
Hmm, hier werde ich mich für eine stationäre Stromversorgung (am ehersten noch mit Solarzelle und Akku) entscheiden. Ich werde mal sehen, was sich da finden lässt - es sollte halt relativ klein bleiben und finanziell nicht den Rahmen sprengen. Ich habe auch schon über passive Temperatursensoren gelesen, welche keine externe Stromversorgung benötigen - was spricht dagegen, diese einzusetzen?


Allerdings würde ich einen µC zum Auswerten des Sensor und zur Kommunikation mit dem PC verwenden. Um diesen wirst du nur schwer herumkommen, weil der PC diese Daten nicht verarbeiten/interpretieren kann.
Schade. Auf http://www.qslnet.de/member/dg1xpz/elektronik/avr/ds1820.html sieht man eine Datentabelle zum DS18S20. In dieser Datentabelle stehen Binärwerte wie z.B. "0000 0000 0011 0010 = +25.0 Grad". Eigentlich wäre doch damit die Basis zur Interpretation der Werte gegeben oder sehe ich das falsch? Dieser Binärwert wird doch vom Sensor ausgegeben oder? Eigentlich müsste dann dieser ausgegebene Binärwert nur noch an den Computer übertragen werden - die Software übernimmt dann die Interpretation.


Die Übertragung zum PC ist natürlich auch wieder Umgebungsabhängig. Wenn der PC im selben Raum steht wie der Sensor, könnte man z.b. Infrarot verwenden. Allerdings ist diese Art der Übertragung sicherlich nicht die sicherste! Wenn dir das nicht zu teuer ist, könntest du ein BTM222 (Bluetooth Funkmodul) oder ein RFM12 Funkmodul (billig aber aufwändig) verwenden.
Gut, die Sicherheit der Daten ist hier nicht primär. Die Daten werden lediglich von mir privat verwendet. Infrarot wäre sicherlich noch relativ einfach umzusetzen. Bisher habe ich leider nur sehr bescheidene Erfahrung bezüglich drahtloser Übertragung sammeln können (das einzige, das ich einmal in der SDK programmieren durfte, war das Senden von ein paar Zahlen vom iPhone zu einem Webserver via WLAN ...). Wichtig wäre, dass das ganze schon eher klein bleiben sollte - es kann ruhig etwas komplizierter sein, das werde ich schon irgendwie hinbekommen.


Vielleicht sind ja ein paar interresante Ansätze für dich dabei!
Absolut! Vielen Dank für deine Ratschläge! :p

PICture
26.08.2011, 15:10
Hallo!


Eigentlich wäre doch damit die Basis zur Interpretation der Werte gegeben oder sehe ich das falsch?

Ich würde sagen nicht falsch, aber nicht vollständig, da die Tabelle zuerst aus dem Sensor ausgelesen werden muss. Das könnte man natürlich auch ohne Microcontroller (µC) direkt mit PC Programm machen. ;)

dub
27.08.2011, 14:56
Bezüglich Genauigkeit: Der DS18S20 hat einen Messbereich von -50 bis +125 ºC in 0,5 ºC-Schritten. Bedeuten diese 0,5 °C-Schritte, dass Temperaturen ausschließlich gerundet (also z.B. 14 °C, 17,5 °C, 19 °C, aber niemals z.B. 13,3 °C) erfasst werden?
Wäre der Einsatz dieses Temperatursensors (Platin-Temperatursensor SMD Heraeus SMD 0603 V Heraeus-Nr. 32 207 637 -50 - +130 °C SMD) für meine Zwecke eigentlich auch möglich? Dieser sollte noch etwas genauer arbeiten (oder kann man den DS18S20 einfach kalibrieren? Ich habe gelesen, dass „nachträgliches Feintuning“ beim DS18S20 ebenfalls möglich ist). Jedenfalls bräuchte ich bei diesem Platin-Temperatursensor wahrscheinlich wieder einen A/D-Wandler. Hier finde ich nur Modelle so ab 30€. Da ich aber nur einfache Signale umwandeln will, müsste das doch wesentlich günstiger (< 3€) machbar sein?

Weiters fällt mir gerade eine zusätzliche Problematik ein. Ich würde gerne eine statistische Auswertung (Messreihen ...) aufzeichnen. Also beispielsweise alle 5 Minuten eine Messung. Kann man die Intervalle, wann ein Sensor messen soll, so einfach bestimmen oder misst der Sensor ständig und ich muss dann die nicht brauchbaren Messwerte verwerfen? Falls der Computer offline ist, können die Messwerte nicht an diesen gesendet werden. Hier wäre ein Zwischenspeichermedium sicher auch hilfreich. Wäre die Zwischenspeicherung evt. mit USB-Interface bzw. SD-Speicherkarten-Interface möglich oder könnte es da bessere Alternativen geben?

Das mit dem Microcontroller ist eigentlich ganz okay. Hier gibt es aber auch eine nahezu unüberschaubare Menge an Produkten. Gibt es speziell für Temeperatursensoren geeignete Modelle?

Hmm, ich sehe schon – das sind eine Menge Fragen und einige Unsicherheiten dabei. Dennoch vielen Dank, falls sich jemand für die Beantwortung dieser Fragen findet!

oberallgeier
27.08.2011, 16:30
Hi Dub,

herzlich willkommen im Forum.
... nur einfache Signale umwandeln will, müsste ... günstiger (< 3€) machbar sein ...Ein äusserst preisgünstiger Temperatursensor ist eine simple Diode, die 1N4148 könnte für Deine Zwecke ausreichend sein - bedrahtet kostet die beim Reichelt 2 Zent. Die Auflösbarkeit im Bereich Raumtemperatur wird für Dich wahrscheinlich eher zu gering sein - aber für ´n Anfangsprojektchen wärs sicher was. Lies Dir doch bitte mal diesen Thread durch (klick). (https://www.roboternetz.de/community/threads/32920-Low-Cost-Temperatursensor)


... Microcontroller ist eigentlich ganz okay. ... nahezu unüberschaubare Menge an Produkten ...Als Controller wird da ein Tiny13 ausreichend sein - WENN Du nicht gleich ein einfaches LCDisplay anhängen willst. Da könntest Du den Bereich unter 19 °C mit ner blauen Blinkdiode anzeigen, 19° bis 21° mit ner grünen und über 21° mit ner roten - nur als Beispiel. Mit LCDisplay würd ich nen mega8 nehmen. Übertragung an den Computer ginge preisgünstig mit UART oder RS232.

Richard
27.08.2011, 16:40
Bezüglich Genauigkeit: Der DS18S20 hat einen Messbereich von -50 bis +125 ºC in 0,5 ºC-Schritten. Bedeuten diese 0,5 °C-Schritte, dass Temperaturen ausschließlich gerundet (also z.B. 14 °C, 17,5 °C, 19 °C, aber niemals z.B. 13,3 °C) erfasst werden?



Wenn der PC nicht dauernd läuft, kann der auch nix messen das sollte klar sein. Dazu kommt noch die Frage ob es eine 1 Wire PC Schnittstelle gibt, selber bauen dürfte schwierig bis unmöglich sein. der "Erfinder" von 1 Wire hält sich da sehr bedeckt (Google 1 Wire Wiki) hilft etwas Verständnis über das Prinzip zu erlangen. :-) 1 Wire Geräte brauchen (keine) extra Spannungsversorgung, durch den Datenstrom wird ein interner Kondensator geladen was ausreicht den Sensor zu betreiben.

Ein kleines µC Board z.B. etwas in dieser Art http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=238 als Schnittstelle zwischen Sensor und PC sollte einige Probleme wie Daten sammeln, speichern auf SD Karte und vom PC jederzeit abrufbar "erschlagen". Außerdem können an solch einem Board natürlich jede Art Sensoren angeschlossen und Ausgewertet werden, solange das Board "eingeschaltet" bleibt.

Wie oft so ein DS18S20 oder andere Sensoren ausgelesen wird entscheidet der Programmierer durch das Programm, ob im Sekunden, Minuten oder Stunden Takt, die Software entscheidet das. Da so ein Board mit nur Temperatur Aufzeichnung erheblich unter Belastet ist, können locker noch etliche andere Aufgaben "Erdacht" werden. :-) Wie z.B. eben D Karte, BTM 222 Bluetooth, Heizungs- Steuerung oder mittels zusätzlichen Web Server Modul auch übers Netz aus dem Urlaub bedient werden, die Möglichkeiten sind beinahe unbeschränkt.......

Gruß Richard

dub
27.08.2011, 23:33
Ich habe mir nun eine relativ informative und umfangreiche Homepage zu 1-wire durchgelesen: http://www.wiregate.de/1-wire-bus
Dennoch habe ich hierzu noch eine Frage hierzu:
Wie lange dürften 1-Wire-Kabeln sein? Ich habe folgendes gelesen: „Für Leitungslängen >100 m sind nicht alle Topologien möglich“. Längen bis 50-Meter sollten aber kein Problem darstellen?


1 Wire Geräte brauchen (keine) extra Spannungsversorgung, durch den Datenstrom wird ein interner Kondensator geladen was ausreicht den Sensor zu betreiben.
Ja, mein PC hat eine 1-Wire Schnittstelle. Aber benötige ich diese überhaupt? Ich will ja die Daten drahtlos vom Sensor/Microcontroller an den Computer übertragen. Der Vorteil an einer Verbindung mit 1-Wire wäre (ich habe das hoffentlich richtig verstanden), dass die von mir verwendeten Sensoren, keine externe Stromversorgung benötigen würden.

Ich habe mal schnell eine einfache Skizze gezeichnet. Kann dies funktionieren – oder liege ich hier mit meinen Vorstellungen komplett falsch?

http://img709.imageshack.us/img709/5227/skizzetemperatursensor.jpg (http://imageshack.us/photo/my-images/709/skizzetemperatursensor.jpg/)

Nun gefällt mir der von User Richard vorgeschlagene Microcontroller sehr gut, aber dieser hat wieder keine 1-Wire-Schnittstelle. Wobei dies eigentlich eh vernachlässigbar wäre. Ich bräuchte bei beispielsweise 3 Sensoren, 3 Kabeln, welche zu drei 1-Wire-Schnittstellen führen. Also einen 1-Wire-Verteiler. Lediglich die Einrichtung einer Verbindung zwischen 1-Wire-Verteiler und Microcontroller sollte möglich sein.

Edit: Nach etwas überlegen, ist mir noch folgende Idee eingefallen, die das vorgeschlagene Funkmodul von User "Che Guevara" miteinbezieht. Diese Art der Umsetzung würde mir persönlich noch besser gefallen.
http://img40.imageshack.us/img40/1962/skizzetemperatursensor3.jpg (http://imageshack.us/photo/my-images/40/skizzetemperatursensor3.jpg/)

Ein wenig unsicher macht mich jedoch die Angabe, dass das Funkmodul lediglich eine kabellose Datenübertragung zwischen zwei Microcontroller herstellt. Heißt das, dass der Datentransfer zwischen Sensor und Microcontroller gar nicht möglich ist? Eigentlich sollte das schon funktionieren, da das ja nur ein einfacher Transeiver ist, welcher Daten (egal von wo diese kommen) sendet und empfängt. Der Einsatz von z.B. 3 Sendemodulen (jeweils ein Sendemodul pro Sensor), einem Sende- und Empfangsmodul (am Microcontroller) und einem Empfangsmodul (beim Computer) auf relativ engen Raum (~350m²) dürfte auch nicht stören, da man (soweit ich richtig gelesen habe) auf unterschiedlichen Frequenzen z.B. zwischen 430,92MHz und 438,92MHz senden kann.

Danke jedenfalls für eure Hilfe! :)

@oberallgeier: Danke, eventuell werde ich mir als „Einsteiger“ ein einfacheres Projekt – wie das von dir vorgeschlagene – suchen. ;)

dub
31.08.2011, 20:13
Ich hoffe es nervt nicht, aber ich hätte nur noch ganz kurz eine Frage:
Ich werde mir nun vorerst einmal den Microcontroller "Baby Orangutan B-328" bestellen und mich mit diesem vertraut machen, bevor ich diesen dann mit diversen Sensoren verbinde. So viel ich weiß, reicht aber der Microcontroller alleine nicht aus?! Um mit diesen arbeiten zu können, benötige ich noch zusätzlich ein Programmierkabel - oder? Ist es möglich diesen Microcontroller mit "AVR Studio5" zu programmieren? Beim Testen der Software, habe ich gesehen, dass dieses Board leider nicht angeführt ist. Gibt es für mich als Einsteiger Literatur, welche vielleicht empfehlenswert für den Einstieg mit Microcontrollern wäre - optimal wäre natürlich etwas, welches sich auf diesen Microcontroller bezieht.
Vielen Dank schonmal!

Richard
31.08.2011, 23:48
Ich hoffe es nervt nicht, aber ich hätte nur noch ganz kurz eine Frage:
Ich werde mir nun vorerst einmal den Microcontroller "Baby Orangutan B-328" bestellen und mich mit diesem vertraut machen, bevor ich diesen dann mit diversen Sensoren verbinde. So viel ich weiß, reicht aber der Microcontroller alleine nicht aus?! Um mit diesen arbeiten zu können, benötige ich noch zusätzlich ein Programmierkabel - oder? Ist es möglich diesen Microcontroller mit "AVR Studio5" zu programmieren? Beim Testen der Software, habe ich gesehen, dass dieses Board leider nicht angeführt ist. Gibt es für mich als Einsteiger Literatur, welche vielleicht empfehlenswert für den Einstieg mit Microcontrollern wäre - optimal wäre natürlich etwas, welches sich auf diesen Microcontroller bezieht.
Vielen Dank schonmal!

Mit viiieeel Mühe der Zitiren button mach nur noch SCH****

1 Wire sollte das Board auf allen Pins können, macht Bascom (glaube ich) per Software. Alle AVR's können mit dem Studio programmiert werden, dort werden nicht die Prozessoren sondern die Programmer eingestellt. Bobotic Hartware bietet welche an, der USB Programmer von http://www.ulrichradig.de/home/index.php/avr/usb-avr-prog ist auch sehr beliebt. Ohne so einen Programmier Adapter "geht eh (beinahe) NIX).

Bascom 1 Wire set:

1WRESET

1WRESET , PORT , PIN

1 Wire kann ohne Prozessor der das 1 Wire Protokoll "Baut" nicht per Funk übertragen werden, Funkmodul und 1 Wire Module sprechen verschiedene Sprachen wie z.B. Chinesisch und Plattdeutsch, da versteht auch keiner (ich). :-) Da müsste ein kleiner 8 Pin AVR den Übersetzer spielen...Das heißt den vom 1 Wire übertragenen Wert Speichern und an das Funkmodul senden, am anderem Ende das gleiche zurück.

Kaufe Dir das Board + Programmer und fange klein an, z.B. Led Blinklicht mit einer Bascom Demo version. Da sind auch sehr viele Beispiele zum Ausprobieren und Lernen vorhanden. Auch ein Simulator für "Trockenübungen", da macht man nicht gleich etwas kaputt. :-)

Gruß Richard

triti
01.09.2011, 20:59
Der Picaxe-08M kann einen DS18B20 (B !) direkt auslesen (readtemp12) mit 12 bit Auflösung. Genauigkeit 0,1°C. Kosten: Lächerlich. Nachlesen: www.rev-ed.co.uk/docs/picaxe_manual2.pdf Bestellen: http://www.roboter-teile.de/Oxid/PICAXE/Starter-Packs/PICAXE-08M2-Starterset-mit-USB-Kabel.html lg Triti

dub
04.09.2011, 23:45
Vielen Dank für den netten Support! ;)

Auch wenn jetzt noch einige Unsicherheiten bei mir bestehen, so ist mir zumindest eines klar geworden. Ich werde wohl etwas "kleinere Schritte" gehen müssen. Funkmodul, Temperatursensor, ... sind für einen Einsteiger wohl doch etwas zu euphorisch gesetzte Ziele. Klar ist, dass ich mir den Microcontroller ""Baby Orangutan B-328" bestellen werde, jedoch werde ich mir zuvor noch dieses Experimentierboard bestellen > myAVR Board MK1 PLUS (http://shop.myavr.de/Bausätze%20und%20Platinen/myAVR%20Board%20MK1%20PLUS,%20Bausatz.htm?sp=artic le.sp.php&artID=17). Für wenig Geld bekommt man hier doch einiges: LEDs, LCD-Display, Timer, Lichtsensor, Potentiometer, Taster, Speaker, ATmega8, ... inkl. Programmer. Zusätzlich habe ich mir noch das Buch "Mikrocomputertechnik" von "Bernd-Dieter Schaaf" in der Bücherei meines Vertrauens ausgeliehen.

Bezüglich Temperatursensor: Was hält ihr vom Tsic206? Von diesem Sensor habe ich mir das Datenblatt angesehen. Tsic206 verwendet Manchester-Codierung (Manchester-Codierung geht ja nicht besonders schwer). Als einzigen Nachteil würde ich sehen, dass er für die Information (11-bit) zwei Pakete benötigt und somit die Übertragung etwas umständlicher macht.

@triti: Wow, der Picaxe-08M hat eine wirklich umfangreiche Dokumentation! Danke für den Tipp. :)

Edit: Satz hinzugefügt

oberallgeier
05.09.2011, 09:17
... Klar ist, dass ich mir den Microcontroller ""Baby Orangutan B-328" bestellen werde ...Ich habe zwei baby orangutan 168. Der erste ist irgendwann gestorben, möglicherweise beim Flashen mit dem LPT-ISP-Programmer von robotikhardware - und ich krieg ihn nicht wieder an. Flashen dieser Teilchen ist bei mir ein gewisses Problem gewesen - mit dem LPT-ISP-Programmer und PonyProg ging/geht es NIE (ausser - dieser defekte . . . was auch immer da passiert war). Von meinen zwei USB-AVR-Labs habe ich eins so hinbekommen, dass ich den verbliebenen baby orangutan bearbeiten kann - also flashen, Fuses ändern .... So schick das Teilchen ist, ich nehme es nur noch für eine einzige, einfache Anwendung. Dies sind meine ganz persönlichen Erfahrungen - ich will damit nicht sagen, dass alle anderen Dinge ebenso laufen.