Gast
#1960759
Ich habe bei dem Versuch mit den Funksensoren S555HT (Conrad 5€) relativ viel Lehrgeld bezahlt und möchte meine Erfahrungen nicht für mich behalten. Die Auswertung erfolgte am Anfang mit einem USB-WDE-1 von ELV. Das Teil ist zwar preiswert aber auch ziemlich unempfindlich was den Empfänger betrifft. Selbst 3m durch eine Wand waren in meiner Umgebung nicht machbar. Nach einiger Recherche habe ich mich dann für einen Superhet-Empfänger TX-AM8SF von Conrad für knapp 20€ entschieden. Der ist zwar nicht so sparsam wie der ELV-Empfänger, dafür aber in der Empfindlichkeit Klassen besser. Die Protokollbeschreibung war mit ein bischen Suchen schnell gefunden. Ich verweise hier nur auf: Beitrag "Protokoll ELV Funk-Temperatur-/ Luftfeuchtesensor ASH500" Es gibt auch ein paar Implementierungen des Protokolls für avr's. z.B. bei ethersex oder arduino. Leider haben die alle einen großen Nachteil. Sie arbeiten alle nach dem Prinzip: eine Flanke am Ausgang des Empfängers löst einen Interrupt aus und die Zeit zwischen 2 Interrupts wird detektiert. Ich habe die Erfahrung gemacht, dass am Ausgang des Empfängers häufig noch Spikes im Nutzsignal sind. Wenn man die nicht auf analogem Weg vorher weg bekommt, ist eine sichere Erfassung kaum möglich. Außerdem ist schlecht vorherzusehen was ein Rauschen für eine Interruptlast erzeugt. Deshalb in meinem Beispiel mal der andere Weg. Der Timer2 eines Atmega88 läuft ohne Vorteiler durch und erzeugt bei 8Mhz alle 32us einen Interrupt der den Status eines Eingangspins sampelt und auswertet. Zusätzlich muss noch der Zustand bei drei aufeinanderfolgenden Messungen gleich sein um akzeptiert zu werden. Das ist zwar nicht besonders effizient und verbrät auch ca. 10% Rechenzeit, dafür fallen die Störspikes nicht mehr ins Gewicht. Mit diesem Code werte ich im Moment 5 S555HT Sensoren und zwei Energiemonitore aus und es läuft sehr zuverlässig auch über größere Entfernungen. Den Weg in ein fertiges Projekt hat das ganze noch nicht gefunden sondern existiert nur als fliegender Versuchsaufbau.