Sto progettando moduli sensore a bassa potenza che saranno distribuiti su un'area ragionevolmente piccola. I moduli sono tutti alimentati a batteria e dovrebbero funzionare per un tempo decentemente lungo senza dover ricaricare / sostituire le batterie (più a lungo è meglio, pensa almeno qualche settimana se non mesi o anni). L'idea è che ogni mezz'ora o ora il modulo si riattiva dalla modalità a basso consumo, preleva alcuni campioni e trasmette i dati a un data logger centrale. Il data logger centrale sarà probabilmente alimentato a parete, quindi il consumo a bassa potenza non è necessario. Non mi aspetto che nessun modulo si trovi a più di 100 metri dal logger centrale, probabilmente molto meno.
Ho identificato alcuni possibili moduli transceiver che potenzialmente potrebbero funzionare:
- ALPHA-TRX433S, 433 MHz
- ALPHA-TRX915S, 915 MHz
- Microchip MRF89XAM8A, 868 MHz
- Microchip MRF89XAM9A, 915 MHz
Da quello che ho letto, questi moduli funzionano tutti in bande non regolamentate FCC e dovrebbero essere sicuri da usare. I moduli Alpha pubblicizzano una portata di 300 m, ma non riesco a capire quale sarebbe la portata massima prevista dei moduli Microchip. Come farei per calcolare questo?
Inoltre, dal momento che ho la mia scelta di bande, quale dovrei scegliere e perché (cioè cosa ottengo da 915 MHz su 433 MHz e cosa perdo)? In ordine di quali parametri considererei più importanti:
- A bassa potenza
- Gamma di trasmissione (più è meglio, entro limiti ragionevoli)
- Immunità ad altri fattori ambientali (ad es. Reti wifi / cellulari, funzionamento di forni a microonde, pareti / ostacoli fisici, temperatura, ecc.). L'uso target è in un ambiente residenziale e probabilmente ci saranno variazioni di temperatura significative (diciamo da -20 ° C a 50 ° C).
- Velocità dei dati. Questo non è molto importante poiché mi aspetto pochissimi dati per campione (pochi byte al massimo).
Un'altra domanda che ho è come gestire più moduli cercando di trasmettere dati contemporaneamente. Ho qualche idea su come mitigarlo, ma non sono sicuro su quale soluzione procedere:
Utilizzare un time offset casuale per quando i dati vengono trasmessi. La speranza è che le collisioni vengano semplicemente evitate. Questo sarebbe probabilmente il più semplice da implementare e potenzialmente utilizzerà la minima potenza. Tuttavia, ciò non garantisce che non ci saranno collisioni. Inoltre, ottenere una buona fonte di casualità o un seme pseudo-casuale unico può causare problemi, sebbene non irrisolvibili.
Al risveglio e tentando di trasmettere, controllare se ci sono trasmissioni attualmente in corso. Aspetta la fine della trasmissione prima di inviare i dati. Il problema diventa quindi come gestire più sensori nello stato di attesa, in quanto entrambi potrebbero potenzialmente decidere che l'ultima trasmissione è terminata ed entrambe iniziano a trasmettere contemporaneamente.
Qualche altra soluzione.