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!
Neben den genannten Lösungen RFM12 (ISM 433/845 MhZ) oder so, kosten ~3€/Stück und Code gibt es hier im Forum... Oder iDwarf-Module von Chip45 oder...
Kommen sich denn mehrere RFM12 nicht gegenseitig in die Quere?
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.
wozu müssen sich die Module mit anderen Modulen paaren? Es reicht doch wenn der PC zu allen Kontakt aufnimmt. Alle Module als Slave machen.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.