Forum: Mikrocontroller und Digitale Elektronik Wie kann ich wireless Informationen an Mikrocontroller versenden?


von Ernst H. (Firma: Laboratorium_S1) (ernst_haft)


Lesenswert?

Hallo Forum,

ich möchte gerne Informationen von einem Computer an mehrere 
Mikrocontroller ca. 2-5 Meter weit versenden. Diese Mikrocontroller 
sollen alle von gleichem Typ sein und müssen nicht unbedingt Daten an 
den Computer zurücksenden.
Als Maximalobergrenze habe ich mir 100 (wenn machbar) Mikrocontroller 
gesetzt.
Die Mikrocontroller sollen auf Platinen mit GPIO-PINs befestigt sein.
Bisher hielt ich den Raspberry Pi Pico (RP2040) für eine gute Idee.

Wie kann ich nun Informationen (wenige Bits groß) möglichst fehlerfrei 
an die RP2040-Chips senden?

Ich dachte erst an gepulsten Infrarot (wie z.B. IR-Fernbedienung). Aber 
das erwies sich als sehr kompliziert und scheint sehr fehleranfällig zu 
sein.

Dann kam die Pico W - Version, WIFI-fähig, auf den Markt. Ist es eine 
gute Idee, WIFI zu nehmen? Kann man das flächendeckend einsetzen? Ist es 
eine schnelle Möglichkeit der Datenübertragung?
Was wären effektivere Varianten?

Viele Grüße!
Euer Ernst H.

: Verschoben durch Moderator
von Oliver S. (oliverso)


Lesenswert?

Ernst H. schrieb:
> Was wären effektivere Varianten?

Kabel.

Oliver

von Ernst H. (Firma: Laboratorium_S1) (ernst_haft)


Lesenswert?

Oliver S. schrieb:
> Ernst H. schrieb:
>> Was wären effektivere Varianten?
>
> Kabel.

Ich habe im Titel "wireless" ergänzt. ;-)
Sonst hast du vermutlich Recht.

von der_eine (Gast)


Lesenswert?

Ernst H. schrieb:
> Oliver S. schrieb:
>> Ernst H. schrieb:
>>> Was wären effektivere Varianten?
>>
>> Kabel.
>
> Ich habe im Titel "wireless" ergänzt. ;-)
> Sonst hast du vermutlich Recht.

mqtt ist dein Freund.

von Ernst H. (Firma: Laboratorium_S1) (ernst_haft)


Lesenswert?

der_eine schrieb:
> mqtt ist dein Freund.

Ist er/es ein guter und zuverlässiger Freund?

von Max M. (Gast)


Lesenswert?

Ernst H. schrieb:
> Ist es eine
> gute Idee, WIFI zu nehmen? Kann man das flächendeckend einsetzen? Ist es
> eine schnelle Möglichkeit der Datenübertragung?

Ach ne, dieses WIFI ist genausoeine kurzlebige Modeerscheinung wie 
dieses 'Internet'?

Ernst H. schrieb:
> Ist er/es ein guter und zuverlässiger Freund?
Yo Bro.

von Ernst H. (Firma: Laboratorium_S1) (ernst_haft)


Lesenswert?

Kann ich MQTT auch automatisierend benutzen?
Z.B. ein externes Gerät (mit GPIO-PINs o.ä.) erkennt, dass ein Schalter 
umgelegt wurde und sendet daraufhin dem Pico einen Befehl.

Ich habe von NODEred gehört. Ist das geeignet?

von der_eine (Gast)


Lesenswert?

Ernst H. schrieb:
> der_eine schrieb:
>> mqtt ist dein Freund.
>
> Ist er/es ein guter und zuverlässiger Freund?

Ja. Du brauchst einen einen zentralen Server. Dieser empfängt und 
verteilt die Daten zuverlässig.

Schau dir mal
https://de.wikipedia.org/wiki/MQTT
an.

Alles andere dürfte das Rad nochmals erfinden.

Gruß

Robert

von Gerald K. (geku)


Lesenswert?

Ernst H. schrieb:
> ich möchte gerne Informationen von einem Computer an mehrere
> Mikrocontroller ca. 2-5 Meter weit versenden.

Für diese Distanz wäre Bluethooth die geeignete Methode:

https://www.az-delivery.de/products/hc-05-6-pin

https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/hc-05-bluetooth-modul-einfuhrung

von Max M. (Gast)


Lesenswert?

Gerald K. schrieb:
> Für diese Distanz wäre Bluethooth die geeignete Methode:

Ernst H. schrieb:
> Als Maximalobergrenze habe ich mir 100 (wenn machbar) Mikrocontroller
> gesetzt.

von Wumm (Gast)


Lesenswert?

Reparatur bitte!

von Sebastian W. (wangnick)


Lesenswert?

Ernst H. schrieb:
> Die Mikrocontroller sollen auf Platinen mit GPIO-PINs befestigt sein.
> Bisher hielt ich den Raspberry Pi Pico (RP2040) für eine gute Idee.
>
> Wie kann ich nun Informationen (wenige Bits groß) möglichst fehlerfrei
> an die RP2040-Chips senden?
>
> Dann kam die Pico W - Version, WIFI-fähig, auf den Markt. Ist es eine
> gute Idee, WIFI zu nehmen?

Hallo Ernst,

eventuell macht es Sinn, die Datenübertragung zusammen mit der 
Stromversorgung zu denken. WIFI ist ein Akkufresser, vor allem wenn es 
dauernd an sein soll. Und wenn du also eh ein Kabel brauchst, dann kann 
das Kabel auch die Datenübertragung übernehmen.

Wenn es allerdings akkubetrieben sein soll, dann muss etwas 
stromsparendes her. Und wenn die Richtung der Kommunikation PC->uCs ist, 
und nicht andersherum, dann muss es etwas sein, was beim aktiven 
Lauschen stromsparend ist. Da gibt es nicht so viele Möglichkeiten.

Also: Etwas mehr Info über die Rahmenbedingungen ist nötig!

LG, Sebastian

von Ernst H. (Firma: Laboratorium_S1) (ernst_haft)


Lesenswert?

Sebastian W. schrieb:
> Also: Etwas mehr Info über die Rahmenbedingungen ist nötig!

Die Controller soll tatsächlich akkubetrieben lauschen.
Wobei ich, wenn ich das Programm etwas komplexer schreibe, auch eine Art 
"Ruhemodus" erzeugen kann, sodass die Mikrocontroller erst dann wieder 
anfangen zu lauschen, sofern einer ihrer GPIO-PINs Änderung vernahm.
Dann jedoch muss es schnell gehen mit dem Sich-wieder-neu-Verbinden.
Die Verbindung sollte innerhalb maximal 3 Sekunden wieder gegeben sein.

Ist das mit Wifi möglich?

Vielen Dank für bisherige Antworten und Hilfe sowie viele Grüße!
Euer Ernst :-D

von Gerald K. (geku)


Angehängte Dateien:

Lesenswert?

Ernst H. schrieb:
> Ist das mit Wifi möglich?

Ja, Beitrag "Re: Bauteilsuche? Stepup um 1,5V Batterien leer zu lutschen?"

Ich verwende 2 LS14500 Primary Lithium-Thionyl Chloride Primärzellen.

Die Batterien haben 3,6V und je 2,6Ah

Damit lässt sich der Melder 9 Monate betreiben.

In diesem zeitraum werden in jede Richtung ca. 6500 Telegramme 
ausgetauscht.

Eine Änderung eines Sensors weckt den MC (MSP430G2553) auf, dieser 
wiederum schaltet den WLAN Funkmodule ESP8266 an die Batterie an und 
sendet ein Telegramm an die Zentrale. Diese quittiert den richtigen 
Empfang durch Rücksendung des Telgramms inklusive etwaiger 
Steuerbefehle.

Für die Versorgung des MCs, des ESP8266 und der Sensoren wird kein 
Spannungswandler benötigt. Es wird alles direkt von den parallel 
geschalteten zwei Batterien (von 3,6V runter bis 2,6V) betrieben. Damit 
fallen Wandlerverluste weg.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Ernst H. schrieb:

> Die Controller soll tatsächlich akkubetrieben lauschen.

Wifi ist nicht auf geringen Energiebedarf optimiert, sondern auf hohen 
Durchsatz.

Es gibt aber genug andere Technologie, die viel stromsparender ist. 
Beispielsweise IEEE 802.15.4. Wird von Zigbee, Thread, ANT, 6LowWPan und 
einigen anderen als Basis verwendet. Wifi hat auf 2.4 GHz 20 oder 40 MHz 
Bandbreite. 802.15.4 hat nur 2 MHz Bandbreite, kann also pro Sekunde 
viel weniger Daten übertragen, braucht dafür aber auch viel weniger 
Energie. Faktor 10 oder 20 kommt zwar nicht genau hin, aber die 
Größenordnung geht in die Richtung...
Alternativ gibts auch 802.15.1 aka BLE, was ab Version 5 auch ein Mesh 
bilden kann.

Fur das alles gibts Chips und Module wie die hier:

https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-modules/device.mgm210pa22jia?tab=specs
https://www.silabs.com/wireless/zigbee/efr32mg13-series-1-modules

Dadrauf kannst Du auch Deinen eigenen Code laufen lassen.

Die drei wesentlichen Hersteller in diesem Bereich sind SiLabs, Nordic 
und TI.

Das ist normal nichts, was Bastler so anfassen, aber es ist bewährte, 
funktionierende Technik.

fchk

: Bearbeitet durch User
von DerEinzigeBernd (Gast)


Lesenswert?

Frank K. schrieb:
> Das ist normal nichts, was Bastler so anfassen

Für einige der passenden Controller von TI gibt es günstige Boards und 
einiges an Softwareunterstützung. Das sind cc2530 bzw. cc2531.

Beispiel: ebay 164736992365

Auch das dazu erforderliche Programmierinterface gibt es als günstigen 
China-Clone: ebay 274655067585 (cc debugger auswählen)

Software gibts bei TI selbst:
https://www.ti.com/product/CC2530?keyMatch=CC2530&tisearch=search-everything&usecase=GPN#software-development

von Frank K. (fchk)


Lesenswert?

DerEinzigeBernd schrieb:
> Frank K. schrieb:
>> Das ist normal nichts, was Bastler so anfassen
>
> Für einige der passenden Controller von TI gibt es günstige Boards und
> einiges an Softwareunterstützung. Das sind cc2530 bzw. cc2531.
>
> Beispiel: ebay 164736992365
>
> Auch das dazu erforderliche Programmierinterface gibt es als günstigen
> China-Clone: ebay 274655067585 (cc debugger auswählen)

Und den für die TI-Libs erforderlichen IAR EW8051 Compiler holst Du Dir 
gecrackt vom Russenserver?

Ich würde da eher auf was ARM-basiertes setzen (CC26xx).

fchk

von Christian M. (christian_m280)


Lesenswert?

Ernst H. schrieb:
> Ich dachte erst an gepulsten Infrarot (wie z.B. IR-Fernbedienung). Aber
> das erwies sich als sehr kompliziert und scheint sehr fehleranfällig zu
> sein.

Was war denn das Problem? Das scheint mir am prädestiniertesten zu sein! 
Simpel und störunanfällig! Hast Du es denn gemacht wie bei einer 
Fernbedienung? https://www.sprut.de/electronic/ir/rc5.htm

Gruss Chregu

von der_eine (Gast)


Lesenswert?

Frank K. schrieb:
> Und den für die TI-Libs erforderlichen IAR EW8051 Compiler holst Du Dir
> gecrackt vom Russenserver?

Servus,

alternativ nimmt an entweder die kostenlose 30-Tage eval-Version, oder 
man kommt mit der 4k-Kickstart aus.

Gruß

Robert

von Εrnst B. (ernst)


Lesenswert?

Als Billig-Lösung seien noch die nRF24-Dinger genannt. Platinchen damit 
gibt's immer noch günstig aus China, und die umgekehrte Richtung
(also µC mit Sensor sendet Daten an den PC) geht sehr sehr stromsparend.
In die Richtung: AVR + nRF24-Modul + Umweltsensor laufen Jahrelang an 
einer CR2032, obwohl sie minütlich Daten versenden.

Leider brauchen die bei Empfangsbereitschaft doch relativ viel Strom, 
d.H. da müsstest du tricksen. z.B. µC fragt regelmäßig aktiv nach, ob 
der PC Daten für ihn hat, wartet nur kurz auf die Antwort, und legt das 
Funkmodul danach wieder schlafen.

von Wolfgang (Gast)


Lesenswert?

Ernst H. schrieb:
> Als Maximalobergrenze habe ich mir 100 (wenn machbar) Mikrocontroller
> gesetzt.

100 ist eine komische Zahl. Wie kommst du darauf?

Bei kleinen Mikrocontrollern wäre eine Adresse in Form eines Bytes 
naheliegend, also z.B. 0x01 bis 0xFF und die 0x00 vielleicht als 
Broadcast an alle.

von Harry L. (mysth)


Lesenswert?

Wolfgang schrieb:
> Ernst H. schrieb:
>> Als Maximalobergrenze habe ich mir 100 (wenn machbar) Mikrocontroller
>> gesetzt.
>
> 100 ist eine komische Zahl. Wie kommst du darauf?
>
> Bei kleinen Mikrocontrollern wäre eine Adresse in Form eines Bytes
> naheliegend, also z.B. 0x01 bis 0xFF und die 0x00 vielleicht als
> Broadcast an alle.

100 WiFi-Clients an einem typischen Plastik-HomeRouter wird nicht 
funktionieren.

von olaf (Gast)


Lesenswert?

> Ich dachte erst an gepulsten Infrarot (wie z.B. IR-Fernbedienung). Aber
> das erwies sich als sehr kompliziert und scheint sehr fehleranfällig zu
> sein.

Das ist weder fehleranfaellig noch kompliziert. Aber ein klein wenig
Muehe muss man schon reinstecken.

Es gibt noch die JDY40:
Beitrag "JDY-40 ein neuer Geniestreich aus China?"

Die wuerde ich als idiotensicher bezeichnen. Also nur Datenblatt lesen 
noetig.

Olaf

von Wolfgang (Gast)


Lesenswert?

Harry L. schrieb:
> 100 WiFi-Clients an einem typischen Plastik-HomeRouter wird nicht
> funktionieren.

Damit ist WiFi doch längst raus. WiFi kommt auch in keinem Fall mit 
einer 1 Byte Adresse aus.
Mein Kommentar bezog sich auf jegliche Art von Adressierung.

von Ernst H. (Firma: Laboratorium_S1) (ernst_haft)


Lesenswert?

Wolfgang schrieb:
> 100 ist eine komische Zahl. Wie kommst du darauf?

Harry L. schrieb:
> 100 WiFi-Clients an einem typischen Plastik-HomeRouter wird nicht
> funktionieren.

Die Zahl ist tatsächlich etwas missverständlich. Falsch zugleich ist sie 
ebenso. Korrekterweise muss es lauten wie folgt:
Es soll eine beliebige Anzahl an möglichen Clients, von denen 
maximal ca. 32 zur selben Zeit aktiv mit dem Sender verbunden sein 
sollen, in dem geplanten System verwendet werden.
Würden 32 aktive Clients funktionieren?

Christian M. schrieb:
> Was war denn das Problem? Das scheint mir am prädestiniertesten zu sein!

Das Problem an IR war zum einen der nötige Sichtkontakt zwischen Sender 
und Empfänger(n), der nicht gewehrleistet werden konnte, zum anderen 
aber die richtige Codierung und passende Umsetzung.

Viele Grüße und vielen Dank für bisher eingesandte Antworten!
Euer Ernst

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Ernst H. schrieb:
> Würden 32 aktive Clients funktionieren?

An einem gewöhnliche WLAN Router für Consumer ist auch das schon zu 
viel.

von someone (Gast)


Lesenswert?

Jetzt wollen wir erstmal schauen, wie du 100 Stück in wenigen Metern 
Umkreis verteilst. WLAN ist die richtige Technologie, da sie auch die 
Gesamtkosten reduziert. Natürlich gibt es bessere Möglichkeiten, aber 
das wird teurer. Wenn ein Access Point nicht reicht, dann nimmt man eben 
mehrere, die sind so billig, dass sich das trotzdem lohnt.
Andere Möglichkeiten wären günstige Funkmodule mit ASK/OOK auf 433 MHz 
oder 2.4 GHz, nur hast du da wieder sehr viel Aufwand mit der Software, 
um die ankommenden Daten zu decodieren. Bei WLAN schreiben andere Leute 
die Software und du kannst einfach nur die Bibliotheken einsetzen. Wenn 
Infrarot-Übertragung schon ein Problem war, kann ich das nur empfehlen.
Allerdings solltest du Folgendes beachten: Es kostet relativ viel 
Energie, einen Empfänger empfangsbereit zu halten. Die Akkulaufzeit wird 
also entsprechend leiden. Bei WLAN ist das natürlich extrem, die 
Infrarot-Lösung wäre diesbezüglich sicher deutlich besser.

von Steve van de Grens (roehrmond)


Lesenswert?

someone schrieb:
> Wenn ein Access Point nicht reicht, dann nimmt man eben
> mehrere, die sind so billig, dass sich das trotzdem lohnt.

Ja, stimmt auch wieder.

von Harald A. (embedded)


Lesenswert?

Eine schöne und zugleich leichte Aufgabe für Mesh-Funkmodule. Gibt es 
unter anderem von Radiocrafts, neo.cortec und Würth Elektronik 
(untereinander eher nicht kompatibel).

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.