Hallo, ich übernehme meinen offiziellen Account @camille wieder. Der Account @CamilleB wird jetzt schlafen gehen 
@pierre-gilles Man muss Spezifikationen schreiben, bevor man mit der Entwicklung beginnt.
Ich weiß nicht, worum es geht, aber wenn du Beispiele und den erwarteten Formalismus hast, kann ich versuchen, diesen Punkt voranzubringen.
@pierre-gilles Man sollte prüfen, ob es nicht bereits Standards für die serielle Kommunikation gibt?
Hier ist, was ich über serielle Kommunikation kenne …, wenn andere Personen korrigieren oder ergänzen möchten, freue ich mich auf euer Feedback …
Zu den am häufigsten verwendeten „seriellen“ Kommunikationstechniken, die sowohl von Arduino als auch in der Industrie verwendet werden, gehört das berühmte RS232-Protokoll (1960er Jahre), das in der Elektronik ein einfaches und weit verbreitetes Protokoll ist und es immer noch ist, I²C (1980er Jahre) und sein kleiner Bruder 1-Wire werden ebenfalls in der Elektronik häufig verwendet, um Peripheriegeräte (Speicher, A/D-Wandler, D/A-Wandler, Bus-Expander …) anzusprechen, SPI (1980er Jahre), das wie I²C in der Elektronik für den Datenaustausch mit Peripheriegeräten verwendet wird, LIN und CAN für die Automobil- und Industriebranche (nicht sehr gut für unsere Bedürfnisse geeignet, meiner Meinung nach) und USB (1990er Jahre), das sich vorstellen kann und jetzt ein Computerstandard ist.
Einige Beispiele:
- Die Temperatur-/Feuchtigkeitssensoren DHT11 und DHT22, die 433-MHz-Module verwenden 1-Wire
- Das RFID-Modul RC522, das W5100-Ethernet-Shield und sein SD-Kartenleser verwenden SPI
- Das Gyroskop und der Beschleunigungssensor GY-521, die Echtzeituhr DS3231, der Barometer MPL3115A2 verwenden I²C
- Die Kommunikation/ Programmierung mit den Arduinos erfolgt über die RS232-Verbindung mittels eines USB-UART
Es ist diese letzte Verbindung, die für die Kommunikation zwischen Gladys und dem Arduino verwendet wird, wenn er per USB angeschlossen ist.
Die anderen Protokolle werden von den Sensoren/Peripheriegeräten verwendet, die vom Arduino verwaltet werden.
Als serieller Standard kenne ich nur den der Industrie, Modbus und seine kleinen Brüder Profibus, Jbus.
Das Prinzip ist einfach, ein Master (Gladys) fragt oder steuert Slaves (Arduinos) ab.
Die Nachrichten bestehen aus dem Frame für den Master: [Slave-Adresse], [Funktionscode], [Daten], [CRC] und für den Slave, falls erforderlich, aus dem Antwort-Frame: [Slave-Adresse], [Funktionscode], [Daten], [CRC].
Der Funktionscode und das CRC entsprechen einer Norm.
Es gibt Bibliotheken, die Modbus für Arduinos verwalten.
Dennoch muss ein Modbus-Master von Gladys programmiert werden, ich weiß nicht, ob das einfach zu machen ist und vor allem wünschenswert ???
Meine Meinung:
-
Das scheint mir viel Arbeit für etwas zu sein, das am Ende für einen Endbenutzer kompliziert zu verwenden sein könnte.
Trotzdem bin ich bereit, über das Thema zu diskutieren und zu sehen, ob jemand andere Vorschläge für bestehende serielle Standards hat oder ob ihr denkt, dass Modbus eine gute Idee wäre.
-
Ich bleibe bei der Einfachheit der Topics, die von MQTT verwendet werden. Wenn wir die gleichen Ideen wiederverwenden, müssten wir nur die Topics mit den Daten senden/empfangen.
Auf Gladys-Seite gibt es bereits etwas und dasselbe gilt für Arduino.
Der „setup“-Tab könnte so aussehen mit einer automatischen Erkennung der angeschlossenen Arduinos
Was den „device“-Tab betrifft, müsste nicht viel geändert werden (die gleiche Struktur wie bei MQTT beibehalten)
Gleiches gilt, sagt mir, ob ich spinne oder ob es eine gute Idee ist.
- Letzter Punkt, ich habe für einen meiner früheren Jobs ein Projekt entwickelt, bei dem es notwendig war, mehrere Slave-Module mit relativ geringen Datenströmen zu kommunizieren. Ich hatte RS232 verwendet und einfach die Philosophie von Modbus, aber viel einfacher. Das heißt, ich habe Frames mit einer Kennung für jeden Slave, Befehle und Abfragen gesendet und dann hat jeder Slave mir geantwortet.
Es gab kein CRC, weil es nicht notwendig war, und es war sehr einfach (der Beweis, ich konnte es tun
)
Daher könnte eine andere Lösung die Entwicklung unseres eigenen Standards sein, was denkt ihr?
@pierre-gilles Top
Zögere nicht, Tutorials über das zu erstellen, was du bereits in Gladys integriert hast (MQTT, Kamera)
Ich schaue, was bereits existiert, und mache mich an die Arbeit …