Ich arbeite an einem Projekt, das auf drahtloser Kommunikation beruht, und suche nach der besten Alternative. Dies sind die Designanforderungen:
- Ist einfach mit Arduino zu verbinden
- Funktioniert über eine kleine Reichweite (höchstens 5-6 Meter)
- Verbraucht wenig Strom - am wenigsten möglich
- Geräte dürfen sich nicht gegenseitig stören
- Muss nicht in Echtzeit sein, die Verzögerung kann in der Größenordnung von Hunderten von Millisekunden liegen
- Im Allgemeinen sind die Geräte nicht in Sichtweite zueinander (was bedeutet, dass IR und ähnliche Lösungen nicht funktionieren).
Das Szenario ist:
Ungefähr 10 Geräte im selben Raum kommunizieren miteinander und senden ab und zu einige Stunden lang (höchstens 30 Zeichen) kurze Nachrichten (ohne Batteriewechsel).
Das Beste, was ich finden konnte, ist Bluetooth (speziell BLE), hauptsächlich, weil es einige vorgefertigte Arduino + Bluetooth- Module und das vielversprechende "Low Energy" -Label gibt (höchstens die Hälfte des Energieverbrauchs von normalem Bluetooth), aber ich würde Ich liebe es, eine Meinung von Leuten mit mehr Erfahrung auf diesem Gebiet zu bekommen.
Antworten:
Schauen Sie sich die XBee- Linie der Tranceiver an. Je nach Übertragungsbereich und gewünschter Nennleistung gibt es verschiedene Typen.
Diese Geräte lassen sich auch fast trivial mit Arduino-Projekten verbinden. Die
Serial
Bibliothek verwendet die UART-Hardware des AVR, die direkt mit dem Rx-Pin des XBee kompatibel ist. Beachten Sie auch, dass keine Pegelumsetzer benötigt werden, da der XBee Rx / Tx-Pin mit 5 V arbeitet!Beachten Sie jedoch, dass der XBee mit 3,3 V betrieben werden muss, damit ein einfacher 3,3 V-LDO-Spannungsregler verwendet werden kann.
quelle
"Best" ist schwer zu definieren, aber ich würde mir einen IEEE 802.15.4-Transceiver ansehen.
Ich habe einen MRF24J40MA für ein Projekt verwendet ( https://github.com/briksoftware/gradusnik ). Sie können versuchen, festzustellen, ob dort Code vorhanden ist. Das Projekt ist für PIC, aber viele Dinge sind tatsächlich plattformunabhängig (insbesondere die anderen Projekte, von denen es abhängt).
Das Modul verbraucht ungefähr 20 mA in RX / TX, was nicht viel ist. Um jedoch eine lange Akkulaufzeit zu erzielen, müssen Sie das Modul die meiste Zeit in den Energiesparmodus versetzen. Sie können hierfür ein Beacon-fähiges Netzwerk verwenden, wobei ein Gerät als Koordinator fungiert. Das Modul verbraucht im Schlafmodus einige µA (genaue Zahlen finden Sie im Datenblatt).
Das einzige Problem bei der Verbindung mit einem Arduino besteht darin, dass Sie einen 5-> 3,3-Level-Shifter benötigen (wenn Arduino noch 5 V verwendet).
Ein weiterer beliebter Transceiver für das IEEE 802.15.4-Protokoll ist das XBee-Modul, das jedoch viel teurer ist.
quelle
Ich sehe es nicht als drahtloses Problem, sondern eher als Protokollproblem.
Wenn Batterieeinsparung der Name des Spiels ist und wenn ein Gerät durch entsprechende Programmierung die Rolle eines temporären "Masters" übernehmen kann, kann jedem anderen Gerät ein Zeitschlitz zugewiesen werden. Sobald die Zuordnung abgeschlossen ist, kann der temporäre Master wieder Peer werden. Wichtig ist jedoch, dass ein Zeitfenster erstellt wurde und alle Peers sich in dieses Framework eingekauft haben.
Was macht das? Wenn Sie ein Zeitfenster haben, können Sie das Radio für Hunderte von Millisekunden ausschalten und aufwachen, um festzustellen, ob eine Übertragung läuft, die empfangen werden soll. Wenn ein Peer aufwacht, muss er warten, um zu sehen, ob einer der anderen 8 Peers eine Nachricht an ihn sendet. Das Timing ist entscheidend, aber wenn Sie eine lange Akkulaufzeit wünschen, konzentrieren Sie sich auf das Protokoll. Diese Antwort ist nur ein Hauch einer Idee. Der Weckzeitschlitz wird in 8 andere Schlitze unterteilt, denen jeder der anderen 8 Peers zum Senden zugewiesen ist. Wenn einer sendet, können die anderen zuerst zuhören, um zu prüfen, ob sie senden können. Etwas wie das: -
Der "nächste" Slot ermöglicht neuen Peers, der Gruppe beizutreten.
Transceiver mit geringem Stromverbrauch sind an der Tagesordnung, daher werde ich mich nicht damit befassen.
quelle
Probieren Sie die billigen 433 MHz TXRX-Module. Sie sind praktisch und können leicht mit Arduino verbunden werden. Ich benutze sie für meine persönlichen Hobby-Robotik-Projekte.
quelle
Nur neugierig, warum das drahtlose 2,4-GHz-Transceiver-Modul NRF24L01 nicht erwähnt wurde? Es handelt sich um ein Gerät mit geringem Stromverbrauch, das für einen noch geringeren Stromverbrauch in den Standby-Modus geschaltet werden kann. Es arbeitet mit 3,3 V, kann also entweder ein Arduino mit geringer Leistung oder einen Splitter verwenden, und das Beste ist, dass es ziemlich billig ist?
Hier finden Sie die Produktseite nRF24L01 + sowie eine Anleitung zu nRF24L01 , die Informationen zur Anbindung an ein Arduino sowie einen Beispielcode enthält.
quelle
Das RFM12B fällt mir ein ..
http://www.hoperf.com/rf/fsk_module/RFM12B.htm
Einige Eigenschaften:
Die SPI-Kommunikationsschnittstelle sollte fair mit Arduino eingerichtet sein.
Das Modell RFM12B-S2 kostet heutzutage weniger als 7 US-Dollar.
quelle