Hallo,
ich würde gerne etwa 5-15 Sensoren drahtlos über eine Strecke von <20m
mit meinem Laptop verbinden, sodass ich sowohl vom Laptop an die
Endgeräte Befehle schicken als auch von ihnen Daten empfangen kann. Die
Sensoren würden jeweils mit einem Atmega8 verbunden werden. Ich den Kopf
sind mir spontan Bluetooth und ZigBee gekommen, wobei Bluetooth am
Computer keinen zusätzlichen Empfänger/Sender benötigen würde.
Ich freue mich über Ratschläge!
Hallo,
das hängt davon ab, was Du genau vorhast. Wenn Du die Sensoren abfragst
und sie antworten sollen, entscheidest Du ja, was wann passiert.
Ich habe hier ein paar Sensoren damit laufen, die senden ungefragt ca.
alle Minute ihre Daten. Da die Sleeptimer recht ungenau sind, ist das
Risiko recht gering, daß 2 zur gleichen Zeit senden. Würde bei mir aber
auch nicht stören, ich nutze die Daten nur alle 5 Minuten und da ist es
egal, wenn mal ein Paket nicht ankommt.
http://www.avr.roehres-home.de/
Gruß aus Berlin
Michael
Würde keine RFMs nehmen, wäre mir zuviel Gefrickel und
Unsicherheitsfaktoren drumherum. Bluetooth ist denke ich am ehesten das
Stichwort - such mal nach den BTM-222 Modulen, die sollten den Job mit
minimaler Außenbeschaltung machen...
Grüße
Kann auch empfehlen, das generell mit den BTM Modulen zu machen, die
sind ganz einfach zu implementieren, laufen am AVR auch ganz einfach mit
zwei Widerständen als Pegelwandler von AVR->BT-Modul und in die andere
Richtung brauchst du nichts, der Mega erkennt den 3,3V Pegel sicher als
High.
In deinem speziellen Fall (wenn ich dich richtig verstanden habe) wird
es aber ein Problem sein, dass du mehrere Sensoren an einen PC verbinden
willst. Soweit ich weiß, kann doch über BT nur jeweils ein Gerät
gleichzeitig, in dem Fall ein BT-Modul + Mega + Sensor angebunden
werden. Man könnte die Strecke vielleicht so implementieren, dass du
einen mega + Modul als Sendestation nimmst und alle Sensoren in BT
Master sind. Dann übergibst du der "Sendestation" Befehl und Adresse und
diese verbindet dann an den entsprechenden Sensor und führt den Befehl
aus. Auf die gleiche Art kannst du zyklisch die Sensoren abfragen, indem
deine Slave-Sendestation auf alle Master nacheinander verbindet und eine
Anfrage sendet.
Zusätzlich wird das ganze mit 5-15 + 1 BT-Modul bei ca. 10-14€ pro Modul
ins Geld gehen und die aufwändige Implementierung der Sensoren bringt
dann vielleicht kein Vorteil mehr gegenüber 433MHz-Modulen...
Wäre aber auch daran interessiert, wie die Geschichte umgesetzt wird.
Gruß
Maggo
Die BTM-xxx können sich zu einer Zeit mit nur 7 anderen Modulen paaren,
was bei 15 Sensoren ein Problem darstellen könnte. "Entpaaren" und
"Neupaaren" dauert einige 100ms bis mehrere Sekunden. Wenn man mehrere
Sensoren zusammen an den Controller eines BT-Moduls anschließen kann,
läßt sich das vielleicht umgehen.
Ist schon richtig, aber nur gepaarte Module können Daten austauschen
bzw. stellen ihre Dienste zur Verfügung; selbst der Computer kann sich
mit seinem internen Modul u.U. mit nur einer bestimmten Anzahl externer
Module zu einer Zeit paaren. Wenn die Sensoren zeitkritische Daten über
zu viele Module liefern müssen, ist es Essig.
nimm zigbee. ich hab zwei module von atmel und die sind klasse.
nur etwas gefrickel und nach ein paar tage haareraufen versteht man
sogar was die wann machen :)
kosten allerdings 30€/stk können aber sogar mashnetzwerke!
gruß
Versuch mal die easy-radio Module: kein großer Aufwand, reine
RS232-Ankopplung, laufen im 430MHz-ISM-Band, können auf 10 Kanäle
programmiert werden und haben 10 Ausgangsleistungsstufen.
Werden ganz einfach über UART-Protokoll angesteuert, vorne Daten rein,
hinten Daten raus.
Kannst Du jeder Zeit wunderbar mit einem Terminal-Programm überprüfen
(z.B. HyperTerm).
Der PC ist der Master und der kann problemlos eine beielbige Anzahl von
Salves abfragen bzw. mit Anweisungen versorgen.
Den ganzen Aufwand mit Blue-Tooth und ZigBee brauchst Du doch gar nicht.
Funky
Die Easy-Radio-Module sehen sehr gut aus. Die Einschränkung auf 10
Kanäle und damit 10 Geräte könnte ich verkraften. Allerdings die Frage:
Wie empfängt der PC die Daten von allen 10 Modulen? Braucht der dann
auch 10 Empfänger?
Und wo kann ich die Module für weniger als 30 Euro kaufen (Geheimtipp!)?
Weil das ist schon happig bei 10 Modulen...
Danke im Voraus!
Also ohne wirklich schon Ahnung von der Materie zu haben versuch ich mal
zu helfen.
Die 10 Kanäle sind meiner Meinung nach ja nur dazu da um mit anderen
"Netzwerken" nicht zu kollidieren?
Alle Sensoren als Slave laufen lassen. PC als Master.
Jeder Sensor bekommt eine ID.
Wenn der Master einen Befehl mit entsprechende ID sendet, mit der
Auforderung Daten zu schicken, dann fühlt sich eben nur der Sensor mit
der entsprechenden ID angesprochen und spuckt die Daten aus. Alle
anderen halten die Klappe. :D
Sollte doch so in etwa zu realisieren sein, oder lieg ich da voll
daneben?
Hallo,
ich Pfriemle gerade auch so eine SW zusammen. Es gibt 2 Möglichkeiten
dein Netzwerg auftzubauen:
Sensoren müssen sich nach dem anschalten beim Hub anmelden, dort
bekommen sie eine ID zugeteilt ( bei Funkmodulen / -chips mit ID-Code
hat man sogar ne MAC die man ggt im E²PROM des Hubs ablegen kann -> Fixe
ID ) nun legt sich der Sensor für x Sekunden schlafen, wenn er aufwacht
misst er und dann Schaut er ob auf dem Channal was los ist, wenn ja
wartet er bis er CH frei ist und sendet dann ein REQ Signal zum Hub,
dieser nimmt dann entweder an und Sendet ein ACK oder verweigert und
sendet ein NACK. Im Falle eines ACK darf der Sensor seine Daten senden.
Der Empfang wird vom Hub bestätigt ( ACK ) und der Sensor darf wieder
schlafen.
So in etwa funktionieren auch die iDwaRF-Module ( CYPRESS N:1 Software
).
Wenn man eine getriggerte Messung will dann kann man o verfahren:
Der Sensor muss sich nach dem Anschalten wieder beim Hub melden, bekommt
ne ID ( naja wie oben hald ). Nun legt sich der Sensor für ein paar
hundert mSec schalfen. Wenn er aufwacht sucht der nach nem Prebrust,
wenn er einen findet wartet er auf das Preamble, wird dieses gefunden
dann misst er ( alle Sensoren die den Prebrust erkannt haben messen
dann, das sollten für gewöhnlich alle sein ;-) ) nun kommt der Hub ins
spiel: Er sendet an den 1. Sensor ein REQ Signal ( ID !!! ) dieser
Sendet seine Daten zurück, welche dann vom Hub bestätigt werden. nun
legt sich Sensor1 schalfen. Jetzt wird an den 2. Sensor ein REQ
gesendent, rest siehe Sensor1, dann Sensor3,4,5...
Wichtig bei der 2. Methode ist das der Prebrust länger ist als die
Sleep-Zeit der Sensoren, dadurch wird sicher gestellt, das alle Sensoren
triggern, egal wann sie aufwachen.
Grüßle