Ich entwerfe Sensormodule mit geringem Stromverbrauch, die auf einer relativ kleinen Fläche verteilt werden. Die Module sind alle batteriebetrieben und sollten eine anständige lange Zeit arbeiten, ohne dass die Batterien aufgeladen / ausgetauscht werden müssen (je länger desto besser, denken Sie mindestens ein paar Wochen, wenn nicht Monate oder Jahre nach). Die Idee ist, dass das Modul jede halbe Stunde oder Stunde aus dem Energiesparmodus aufwacht, einige Proben entnimmt und die Daten an einen zentralen Datenlogger überträgt. Der zentrale Datenlogger wird wahrscheinlich an der Wand betrieben, sodass ein geringer Stromverbrauch nicht unbedingt erforderlich ist. Ich erwarte nicht, dass Module weiter als 100 m vom zentralen Logger entfernt sind, wahrscheinlich viel weniger.
Ich habe einige mögliche Transceiver-Module identifiziert, die möglicherweise funktionieren könnten:
- ALPHA-TRX433S, 433 MHz
- ALPHA-TRX915S, 915 MHz
- Mikrochip MRF89XAM8A, 868 MHz
- Mikrochip MRF89XAM9A, 915 MHz
Nach dem, was ich gelesen habe, arbeiten diese Module alle in ungeregelten FCC-Bändern und sollten sicher zu verwenden sein. Die Alpha-Module bieten eine Reichweite von 300 m, aber ich kann nicht herausfinden, wie hoch die erwartete maximale Reichweite der Microchip-Module sein würde. Wie würde ich das berechnen?
Da ich eine Auswahl an Bändern habe, welche soll ich auswählen und warum (dh was bekomme ich von 915 MHz über 433 MHz und was verliere ich)? In der Reihenfolge der Parameter würde ich am wichtigsten betrachten:
- Geringer Strom
- Übertragungsreichweite (mehr ist besser, im Rahmen der Vernunft)
- Immunität gegen andere Umweltfaktoren (z. B. WLAN- / Zellennetzwerke, laufende Mikrowellenherde, Wände / physikalische Hindernisse, Temperatur usw.). Die Zielverwendung erfolgt in einer Wohnumgebung, und es wird wahrscheinlich erhebliche Temperaturschwankungen geben (z. B. -20 ° C bis 50 ° C).
- Datenrate. Dies ist nicht besonders wichtig, da ich sehr wenig Daten pro Probe erwarte (höchstens wenige Bytes).
Eine andere Frage, die ich habe, ist, wie man mit mehreren Modulen umgeht, die versuchen, Daten gleichzeitig zu übertragen. Ich habe ein paar Gedanken darüber, wie ich dies abmildern kann, bin mir aber nicht sicher, mit welcher Lösung ich fortfahren soll:
Verwenden Sie einen zufälligen Zeitversatz für die Datenübertragung. Die Hoffnung ist, dass Kollisionen einfach vermieden werden. Dies wäre wahrscheinlich am einfachsten zu implementieren und verbraucht möglicherweise die geringste Leistung. Dies garantiert jedoch nicht, dass es zu keinen Kollisionen kommt. Das Erhalten einer guten Zufallsquelle oder eines eindeutigen Pseudozufalls-Seeds kann ebenfalls Probleme verursachen, ist jedoch nicht unlösbar.
Überprüfen Sie beim Aufwecken und beim Versuch zu senden, ob gerade eine Übertragung stattfindet. Warten Sie einfach bis zum Ende der Übertragung, bevor Sie Daten senden. Das Problem wird dann, wie ich mit mehreren Sensoren im Wartezustand umgehe, da sie möglicherweise beide entscheiden könnten, dass die letzte Übertragung beendet wurde und beide gleichzeitig mit der Übertragung beginnen.
Eine andere Lösung.