mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Funk Sensoren


Autor: ero_sennin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute ich hab de ne Frage über die ich mir schon seit einiger Zeit
gedanken mache. Für mein diesjähriges Maturaprojekt soll ich mit einem
Kumpel 8 Temperatursensoren die irgendwo im Raum verteilt sind per Funk
ansteuern - also die Temperatur beim Pc empfangen und auswerten.
Mein grundlegendes Problem ist wie ich das löse für den Fall, dass
beide Sensoren gleichzeitig senden wollen. Wie kann ich alle Daten
gleichzeitig empfangen und richtig auswerten? Ich hab dafür eine
Überlegung: Vielleicht je nachdem welcher Sensor die Daten schickt eine
3bittige Signatur mitschicken so in dieser Form:
Sensor1: Signatur: 000
Sensor2: Signatur: 001
Sensor3: Signatur: 010
Sensor4: Signatur: 011
...
Sensor8: Signatur: 111

Oder auf Anfrage des Empfängers der dann die ID des Sensors der senden
soll schickt und in einem bestimmten Zeitintervall die Sensoren a'la
Daisy Chain abfragt.
Hoffe ihr habt noch bessere Ideen wie ich das lösen kann.
mfg Ero_Sennin

Autor: Martin Götzenberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Vorschlag: jeder Sensor hat seine eigene Kennung, und sendet
ausreichend Checksummen und Zusatzdaten, um einen korrekten Empfang
erkennen zu können. Dann senden die Sensoren entweder mit
unterschiedlichen Widerholraten oder unregelmäßig (zufällige
Abstände)Damit fallen vielleicht mal ein paar Datenblöcke aus, aber
halt nicht alle. Insgesamt ist es halt wichtig, daß die Sendezeit sehr
kurz im Verhältnis zur Ruhezeit ist (die Temperatur ändert sich eh
nicht schnell, oder?) Damit sollte eine rein passive Basisstation
machbar sein.

(gibt's sowas in der Art nicht schon? findet man da nichts im Netz?)

servus,
Martin

Autor: Andreas Auer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

Also, ich hab bei meinem Maturaprojekt etwas ähnliches gemacht. Zwar
haben sich nicht Sensoren über Funk gemeldet, sondern
Fernwartungsstationen (also kleine Geräte, die digitale und analoge
I/Os hatten) haben per GSM miteinander über DTMF Töne miteinander
kommuniziert. Jetzt konnte es natürlich auch passieren, dass 2 oder
mehr Station sich gleichzeitig bei einer Basisstation melden.

Bei uns gab es damals jedenfalls ein paar Ansatzmöglichkeiten...
1) So wie du das schon gemeint hast, dass sich die Basisstation die
einzelnen Sensoren abfragt. Das ist sicherlich schon ein sehr guter
Ansatz, da ja die Sender normalerweise nicht wissen, ob der gesendete
Wert richtig empfangen wurde, oder??
2) Mit einer ID wirst du die Sensoren ja sowieso versehen müssen, damit
du weisst wo sich welcher im Raum befindet, oder?? Ansonsten kannst du
den Temp. Wert ja nicht einem bestimmten Sensor zuordnen.
Und wenn der Empfänger, dann die Daten empfangen hat, bestätigt er die
Daten beim Sender mit einem OK, oder so!
Wenn jetzt 2 oder mehr Sensoren gleichzeitig senden, dann wird einer ja
nicht das OK bekommen! Und dieser wird sich dann mit einem
Zufallsgenerator eine bestimmte Zeit suchen, die er dann abwartet und
danach einen erneuten Sendeversuch startet.
So macht es zum Beispiel Ethernet. Wenn es eine Kollision gibt, wartet
jeder PC eine zufällige Zeit und versucht danach nochmals einen
Sendeversuch!

Ich denke mal, dass wären sinnvolle Ansätze! Vielleicht weiß noch
jemand irgendwelche anderen!

mfg
Andreas

--
Student of Telematics            aauer1 (at) sbox.tugraz.at
Graz, University of Technology   http://home.pages.at/aauer1

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu 1.
Du solltest evtl. auf verschiedenen Frequenzen senden und
versuchen mit deinem Empfänger die Daten zu filtern.
Gestaltet sich aber "softwareseitig" bestimmt aufwändiger als

2.
Server schickt Adresse -> alle empfangen.
Client mit zugehöriger Adresse -> schickt Daten an Server.
Server kann nächsten Sensor abgrasen usw. Allerdings müssen
dann Client&Server jeweils senden und empfangen können.

Also Hardwareseitig: Lösung 1 bevorzugt
"softwareseitig": Lösung 2 :-)

Gruß,
Micha

Autor: ero_sennin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erst mal für die Antworten. Das hilft mir schon mal weiter.
Hmmm ich hatte ziemlich ähnliche ideen. Das mit ethernet war mir klar,
daran wollte ich mich anlehnen nur wie ich das realisier: Leitung
abhören ob jemand sendet, wenn nicht dann schick ich und wenn schon
paket zerstören und ma per random nen timer abwarten. Das Problem ist
wenn ich nur 433MHz nehme ohne verschiedene Channels also halt die
Sensoren im Frequenzbereich um ein paar khz variieren lasse wirds bei
überlagerungen ein Problem geben. Wenn ich eines immer richtig
empfangen kann, gehts mit Acknowledge nur bled is halt wenn mehrere
gleichzeitig senden und ich durch Überlagerung kein Signal richtig
empfange.
Dann noch eine billige Idee hätte ich wobei ich nicht weis ob das
funzzt. Das ganze so lösen dass ich mich um Acknowledges nicht kümmern
müsste, nähmlich durch koordiniertes Senden. Jeder bekommt seinen
eigenen 5min Timer, jeder muss ja nur alle 5min senden. Der 1. Sensor
startet sofort mit 5min, der 2te wartet noch zb 500ms oder 2 sec was
auch immer und dann 5min Timer. Somit sollte keiner kollidieren. Nach
Ablauf der 5min wird halt der Wert sofort reloaded und das Spiel
beginnt von vorn.

Autor: thomas b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die ganz billige Idee hat einen haken, man muss alle geräte gleichzeitig
einschalten :-) und jedes induviduell programmieren und bei einem
batteriewechsel das ganze system neu starten??

halte ich für ziemlich albern :-)

wie wäre es jede stadion sagen wir alle 100s senden zu lassen, warum
nicht 3 mal hintereinander, die Übertragung am sender wie empfänger
durch eine led anzuzeigen, und die geräte nacheinander einzuschalten.

das die geräte in realistischer zeit so weit auseinanderlaufen das sich
sich irgendwann überlagern ist praktisch ausgeschlossen.

tb

Autor: ero_sennin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm, klingt plausibel. Nur wenn ich mich um Acknowledges kümmere, ist
es doch so das jeder ne eigene ID senden muss, somit muss ich, wenn das
nur per Software zu lösen ist auch alle einzeln programmieren, außer
jeder Sensor hat von Haus aus etwas ähnliches wie bei Netzwerkkarten -
eine Mac- Adresse - wovon ich eigentlich ausgehe.

Autor: Thomas Fischl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mit einem solchen Sensor-System hatte ich mich mal beschäftigt. Dort
stellte man an jedem Sensor die Adresse (0 bis 7) per Jumper ein. Die
Messdaten wurden dann periodisch gesendet, wobei die Periodendauer von
der Adresse abhängig war. Also sowas in der Art:
Periodendauer = 150s - (Adresse * 1s)
So senden die Sensoren mit unterschiedlichen Periodendauern. Dabei
kommt es natürlich auch vor, dass Sensoren mal gleichzeitig senden.
Aber nicht sehr oft und wenn, dann klappt der darauf folgende
Sendevorgang. Die Sensoren brauchen dabei nichts empfangen und der
"Empfänger" muss nichts senden - macht das ganze einfacher.

Thomas

Autor: ero_sennin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey das is super, kannst du mir vielleicht auch die genaue
Typenbezeichnung dieser Sensoren sagen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.