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?
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.
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!
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
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.
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:
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
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.
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.
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?
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
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.
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).