Hallo zusammen,
vorweg muss ich sagen, dass ich mit Mikrocontrollern
und Elektronik bislang nur theoretisch zu tun hatte,
jedoch lese ich hier schon seit einigen Jahren mit.
Nun ist es so weit, dass ich mein erstes Projekt
starten möchte, aber vorab die Machbarkeit klären
möchte.
Was ich bauen möchte:
5 Geräte zur Temperatur-Erfassung, 1x Raumluft, 2x Anlegefühler,
die Daten sollen 1x pro Minute erfasst und gesendet werden.
1 Gerät zum Daten-Loggen auf SD-Karte.
Die Verbindung der Module sollte über Bluetooth funktionieren.
Ich möchte kleine Arduinos als Basis mit einer RTC und
Bluetooth Modul verwenden. Dann sollten wenigstens keine
Fehler in der Hardware stecken, die ich vergeblich suchen muss
und günstig ist es auch noch.
Ist es möglich mehrere Geräte gleichzeitig zu koppeln
und welche Module sollte ich verwenden?
Oder kann/muss ich die immer nacheinander neu verbinden?
Als Temperatur-Sensor möchte ich den DS18B20 nutzen.
Da ich grundsätzlich keine Ahnung habe, habe ich mich bewusst
für die Arduino Umgebung entschieden.
Vielen Dank für eure Hilfe und noch schöne Weihnachtstage,
Martin
Grundsätzlich gibt es Piconet, die meisten Module unterstützen das aber
nicht in der Firmware. Habe sogar schon gesehen, dass bestimmte Features
(wie z.B. Piconet) beworben werden, weil die Hardware das KÖNNTE - die
Software aber eben nicht unterstützt.
Vielleicht wäre ein Modul wie das NRF24 nützlicher (notfalls am Ende
dann mit Bridge zu BT). Suche doch mal nach "arduino nrf24l01"
Also auf deine Frage hin: Bluetooth und Netzwerk eher nein, auch wenn
theoretisch möglich. Da müsste man dann immer einzeln pairen und wieder
abmelden - etwas holzig.
Prima, mir fehlte der Begriff piconet.
Google zeigt dazu aber auch nicht richtig viel an.
Dann versuche ich es mit den von dir genannten
NRF24 Modulen. Dazu wurde anscheinend auch schon viel geschrieben. Ich
lese mich da Mal ein.
Vielen Dank!
Piconet ist doch Master und Slave "zeitgleich" und dann ein Mash
aufbauen... mehr als ein Slave ist per BL classic möglich... (7 Slaves)
Per BLE 4.2 oder 5.0 soll es die ersten Mash Lösungen geben?!
Ansonsten kann man bei so wenigen Teilnehmern auch über die
Advetise-Nachricht kommunizieren...
VG
Basti
Ich habe mich für die NRF24L01+ Module entschieden.
Bislang läuft der Testaufbau prima. Drei Sender liefern einmal pro
Minute die aktuelle Temperatur von einem DS18B20 an den Empfänger,
welcher dann zunächst alles auf einem LC Display ausgibt. Die Funk
Verbindung ist ausgezeichnet, auch durch mehrere Mauern hindurch.
Leider habe ich eines dieser schlechten SD-Module erwischt, die keine
weiteren Teilnehmer am I2c Bus zulassen. Daher kann ich im Moment nur
die Echtzeituhr am Empfänger zusätzlich anschließen.
Jetzt bekommt jeder Sender noch einen Temperatur und
Luftfeuchtigkeitsfühler DHT22 und einen weiteren DS18B20 um den Vor- und
Rücklauf der Heizkörper zu messen.
Das ganze soll dann behilflich sein den hydraulischen Abgleich der
Heizplatten über die Rücklauf Temperatur zu verbessern.
Derzeit laufen die Sender auf den Arduino Nano, welche ich aber den pro
Mini mit 3,3v austauschen werde. Ziel ist natürlich eine möglichst lange
Laufzeit, was ich durch eine sleep library unterstützen möchte. Die
LED's und den Spannungsregler möchte ich noch entfernen.
Kurze Frage noch dazu: kann man den pro Mini einfach mit einem Akku
18650 versorgen oder muss da noch Elektronik davor?
Hallo,
Martin schrieb:> Leider habe ich eines dieser schlechten SD-Module erwischt, die keine> weiteren Teilnehmer am I2c Bus zulassen. Daher kann ich im Moment nur> die Echtzeituhr am Empfänger zusätzlich anschließen.
falls Du mit "SD-Module" ein SD-Card-Modul meinst: die nutzen SPI, nicht
I2C!
Gruß aus Berlin
Michael
Hallo,
stimmt natürlich! Nutze ich auch so.
Die Sender lasse ich in einem vorgegebenen Zeitintervall senden, was
aber schließlich dazu führen kann, dass ein Sender z.B. die Daten sofort
und die anderen möglicherweise erst Minuten später senden werden. Für
meine Zwecke wäre es aber gut, wenn ich die Sender abfragen könnte und
so gewährleisten kann, das die Messungen zeitlich so nahe wie möglich
beieinander liegen.
Ich verstehe noch nicht, wie ich die Sender anfunken kann, damit diese
dann als Antwort die Messdaten zurück senden. Ich habe von ACK-Payload
gelesen, meinem Verständnis nach geht das aber nur in die andere
Richtung.
Kann mir bitte jemand da die entscheidenden Stichworte gegen?
Die nRF24L01+ Module funktionieren Bidirektional. Das bedeuter du kannst
die sowohl als Empfänger als auch als Sender nutzen.
Zu der Versorgung: Die Arduino Boards verfügen über ein
Spannungswandler.
Arduinos brauchen mindestens 7V vor dem Spannungswandler. Man kann sie
aber auch "hinten herum" am Anschluss "5V" direkt an die Batterie
anschliessen.
Aber:
1) Darfst du dann den USB Port nicht benutzen, sonst bekommst du einen
Kurzschluss. Abhilfe kann eine Diode in Reihe zum Akku schaffen, an der
fallen aber leider ein par hundert mV ab.
2) Musst du die Taktfrequenz auf 8Mhz herabsetzen, was wiederum einen
modifizierten Botloader erfordert.
Wenn du deine "Sender" aktiv abfragen willst, müssen sie Verbindungen
annehmen können. Dann sind sie im Sinne des Netzwerkes die Server
während dein zentraler Client die Server pollt.
Jetzt hast du ein par Fachbegriffe zum googeln.
Stefan U. schrieb:> Arduinos brauchen mindestens 7V vor dem Spannungswandler. Man kann sie> aber auch "hinten herum" am Anschluss "5V" direkt an die Batterie> anschliessen
Beim Pro Mini kann man eine externe Spannungsquelle an dem RAW Pin
anschließen entweder über 3.3 V bis 12 V bei der 3.3V Version oder über
5V bis 12V bei der 5 V Version.
Vielen Dank für eure Antworten!
Ich habe ein paar Pro Minis als 3,3V Ausführung mit 8MHz bestellt.
Daran wollte ich einen Akku ohne Spannungsregler direkt anschließen.
Hätte ja funktionieren können, aber der nrf24 benötigt wohl eine gut
geregelte Spannung. Da muss ich mir wohl etwas anderes überlegen...
Die Funkmodule betreibe ich als "Star-Formation".
Bidirektional kann ich auch nachvollziehen, aber ich bekomme es nur so
hin, das zunächst ein Sender etwas schicken muss. Was ich gerne hätte,
wäre das der Empfänger den Sender pingt und als Antwort die Messwerte
übermittelt werden.
Ich werde mir das Datenblatt nochmal ausführlich anschauen, aber dieses
technische Englisch ist mir stellenweise sehr fremd.
Martin schrieb:> Hätte ja funktionieren können, aber der nrf24 benötigt wohl eine gut> geregelte Spannung.
Ich meine man kann die 3.3 V an Vcc des Arduinos abgreifen bin mir da
aber nicht ganz sicher.
Martin schrieb:> Was ich gerne hätte, wäre das der Empfänger den Sender pingt und als> Antwort die Messwerte übermittelt werden.
So weit ich dich verstanden habe muss du den Empfänger dann als Sender
umprogrammieren und analog das selbe mit dem Sender. Du sagst deinem
Sender (Empfänger bei dir) das du gerne die Messwerte haben möchtest und
programmierst den Empfänger (Sender bei dir) so das er die Messwerte
zurück sendet und danach wieder als Empfänger dient. Deswegen der
Hinweis, dass man die nRF24L01+ Module Bidirektional verwenden kann.
Dieses ACK dient nur dazu das Die Pakete erfolgreich beim Empfänger
angekommen sind. Für die Arduino Umgebung gibt es die RF24 Bibliothek
die deinen Ansprüchen genügen sollte.
MfG
EmKo
Martin schrieb:> Kurze Frage noch dazu: kann man den pro Mini einfach mit einem> Akku 18650 versorgen oder muss da noch Elektronik davor?
Wenn Du den 3,3V-Spannungsregler herunter nimmst, ja - der AT328 sollte
mit 8MHZ-Quarz bis kurz unter 3V laufen.
Stefan U. schrieb:> Arduinos brauchen mindestens 7V vor dem Spannungswandler. Man kann sie> aber auch "hinten herum" am Anschluss "5V" direkt an die Batterie> anschliessen.
Die ProMini gibt es auch als 3,3V-Version.
> Aber:> 1) Darfst du dann den USB Port nicht benutzen, sonst bekommst du einen> Kurzschluss. Abhilfe kann eine Diode in Reihe zum Akku schaffen, an der> fallen aber leider ein par hundert mV ab.
Beschissene Falle, deshalb habe ich mir eine galvanische Trennung mit
ADuM1201 gebaut. Die schafft mir auch das Pegelproblem
5V-Programmieradapter an 3,3V-ProMini von der Backe.
> 2) Musst du die Taktfrequenz auf 8Mhz herabsetzen, was wiederum> einen modifizierten Botloader erfordert.
Der ProMini mit 3,3V / 8MHz kann direkt aus der Arduino-IDE programmiert
werden, man muß lediglich die Einstellungen "Board" und "Prozessor"
passend setzen - habe ich mir gerade erst am WE angeschaut.
Danke für eure Hilfestellungen!
Was definitiv machbar ist, dass die ACK-Packete mit Messwerten versehen
werden können. So etwas habe ich auch schon in einem Sketch gesehen.
Jedoch war das jeweils nur ein Empfänger und ein Sender. Mag vielleicht
auch von der verwendeten library abhängen. Ich studiere nochmal das
Datenblatt und schaue mir die Beispiel Sketch der library an.
Ich nutze derzeit 5 "Reading Pipes" und eine "writing Pipe" an dem
Empfänger. Vielleicht Stelle ich mich hier auch einfach zu doof an, weil
auf den bildlichen Darstellungen durch Pfeile in beide Richtungen
dargestellt wird, dass der Empfänger auch an die Sender senden kann....
Danke auch für den Hinweis mit den Minis und der Problematik 5V USB. Die
wären bei mir kaputt gegangen.