La scelta migliore per comunicazioni wireless a basso consumo ea corto raggio


9

Sto lavorando a un progetto che si basa sulla comunicazione wireless e sto cercando la migliore alternativa. Questi sono i requisiti di progettazione:

  • Interfaccia facile con Arduino
  • Funziona su una piccola distanza (al massimo 5-6 metri)
  • Consuma poca energia, il meno possibile
  • I dispositivi non devono interferire tra loro
  • Non deve essere in tempo reale, il ritardo può essere dell'ordine di centinaia di millisecondi
  • In generale, i dispositivi non sono vicini l'uno all'altro (il che significa che IR e soluzioni simili non funzioneranno)

Lo scenario è:

Circa 10 dispositivi nella stessa stanza, comunicanti tra loro, inviando brevi messaggi (massimo 30 caratteri) tra loro una volta ogni tanto, per alcune ore (senza cambiare le batterie).

Il migliore che ho trovato è il Bluetooth (BLE, in particolare), soprattutto perché ci sono alcuni moduli Arduino + Bluetooth già pronti e la promettente etichetta "Low Energy" (al massimo metà del consumo di energia del normale Bluetooth), ma mi piace avere un'opinione da persone con più esperienza in questo campo.


2
Voto per il Bluetooth.
nidhin,

Forniscici alcune informazioni su ciò che hai deciso di non utilizzare e sulla tua logica.
Jason_L_Bens,

Da 5 a 6 metri al massimo - il bluetooth può funzionare oltre questo - 6 m l'assoluto non deve andare oltre il limite? Pochissimo potere - che ne dici di nominare e vergognare alcuni numeri qui. Non devono interferire l'uno con l'altro: cosa significa esattamente?
Andy aka il

@Andyaka: No, intendo dire che i dispositivi saranno distanti al massimo 6 metri, quindi non è necessario supportare distanze maggiori. Per quanto riguarda la "poca energia", intendo far funzionare ogni dispositivo (Arduino + LCD + modulo wireless) con una o due batterie AA al massimo e questi dispositivi dovrebbero essere in grado di comunicare per almeno un'ora senza cambiare le batterie.
Giulio Muscarello,

1
Mi sembra un piconet Bluetooth.
Ignacio Vazquez-Abrams,

Risposte:


3

Dai un'occhiata alla linea di tranceiver XBee . Esistono vari tipi a seconda della gamma di trasmissione e della potenza nominale desiderata.

Questi dispositivi si interfacciano in modo quasi banale con i progetti Arduino. La Seriallibreria utilizza l'hardware UART dell'AVR che è direttamente compatibile con il pin Rx dell'XBee. Si noti inoltre che non sono necessari cambi di livello poiché il pin XBee Rx / Tx funziona con 5V!

Si noti , tuttavia, che XBee deve essere alimentato a 3,3 V, quindi è possibile utilizzare un semplice regolatore di tensione LDO a 3,3 V.


2

"Migliore" è difficile da definire, ma vorrei esaminare un ricetrasmettitore IEEE 802.15.4.

Ho usato un MRF24J40MA per un progetto ( https://github.com/briksoftware/gradusnik ). Puoi provare a vedere se c'è del codice che puoi usare lì. Il progetto è per PIC, ma molte cose sono effettivamente indipendenti dalla piattaforma (specialmente gli altri progetti da cui dipende).

Il modulo consuma circa 20mA in rx / tx, il che non è molto. Tuttavia, per prolungare la durata della batteria, è necessario mettere in pausa il modulo per la maggior parte del tempo. A tale scopo è possibile utilizzare una rete abilitata per il beacon, con un dispositivo che funge da coordinatore. Il modulo consuma alcuni µA in modalità di sospensione (controllare il foglio dati per i numeri esatti)

L'unico problema di interfaccia con un Arduino è che è necessario un cambio di livello 5-> 3.3 (se Arduino utilizza ancora 5v).

Un altro ricetrasmettitore popolare per il protocollo IEEE 802.15.4 è il modulo XBee, ma è molto più costoso.


2

Non lo vedo come un problema wireless ma più come un problema di protocollo.

Se la conservazione della batteria è il nome del gioco e se un dispositivo può, attraverso un'adeguata programmazione, assumere il ruolo di "master" temporaneo, a ciascun altro dispositivo può essere assegnato un intervallo di tempo. Una volta effettuata l'allocazione, il master temporaneo può tornare ad essere un peer, ma l'importante è che sia stato creato un framework di time slot e che tutti i peer abbiano acquistato in questo framework.

Cosa fa questo? Avere una fascia oraria significa che puoi spegnere la radio per centinaia di millisecondi e svegliarti per vedere se c'è una trasmissione in corso che si intende ricevere. Quando un peer si sveglia, deve attendere per vedere se uno degli altri 8 peer gli sta inviando un messaggio. Il tempismo è fondamentale ma se si desidera una lunga durata della batteria, concentrarsi sul protocollo. Questa risposta è solo un soffio di un'idea. Il periodo di sveglia verrà suddiviso in altri 8 slot su cui sono assegnati gli altri 8 peer su cui trasmettere e, se uno sta trasmettendo, gli altri possono ascoltare prima per verificare se possono trasmettere. Qualcosa come questo: -

inserisci qui la descrizione dell'immagine

Lo slot "successivo" consente ai nuovi peer di unirsi al gruppo.

I ricetrasmettitori a bassa potenza sono un luogo comune, quindi non ho intenzione di esaminare questo.


2

Prova i moduli txrx economici da 433 mhz. sono utili e possono essere facilmente interfacciati con Arduino. Li uso per i miei progetti personali di robotica per hobby.


2

Solo curioso perché il modulo transceiver wireless NRF24L01 2.4GHz non è stato menzionato? È un'unità a bassa potenza, può essere commutata in modalità standby per un assorbimento ancora più basso. Funziona a 3.3 v, quindi puoi usare un arduino a basso consumo o uno splitter, e soprattutto è abbastanza economico?

Ecco la pagina del prodotto nRF24L01 + insieme a un How-To nRF24L01 che contiene informazioni sull'interfaccia di un Arduino insieme al codice di esempio.


0

Mi viene in mente RFM12B ...

http://www.hoperf.com/rf/fsk_module/RFM12B.htm

Alcune caratteristiche:

  • Interfaccia compatibile SPI
  • Alta velocità di trasmissione dati (fino a 115,2 kbps in modalità digitale)
  • Alimentazione 2.2V-3.8V
  • Sintonizzazione automatica dell'antenna
  • Dati RX a 16 bit FIFO
  • Deviazione di frequenza TX programmabile (da 15 a 240 kHz)
  • Larghezza di banda del ricevitore programmabile (da 67 a 400 kHz)
  • Indicatore di potenza del segnale analogico e digitale
  • Uscita del segnale di clock e reset per uso esterno della MCU

L'interfaccia di comunicazione SPI dovrebbe essere abbastanza da configurare con Arduino.

Il modello RFM12B-S2 vende attualmente per meno di $ 7.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.