Forum: Mikrocontroller und Digitale Elektronik Mehrere Bluetooth Sender gleichzeitig möglich?


von Martin (Gast)


Lesenswert?

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

von Harald A. (embedded)


Lesenswert?

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.

: Bearbeitet durch User
von Martin (Gast)


Lesenswert?

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!

von Basti (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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?

von Michael U. (amiga)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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?

von EmKo (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Die Bluetooth Module HC05, HC06, und BTM222 können nur eine Verbindung 
gleichzeitig aufbauen. Und sie können nicht gleichzeitig Master und 
Slave sein.

von Stefan F. (Gast)


Lesenswert?

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.

von EmKo (Gast)


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

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.

von EmKo (Gast)


Lesenswert?

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

von Manfred (Gast)


Lesenswert?

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.

von Martin (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.