2016
HOME

Compact für TCP/IP und WLAN
netCompact Testbed alpha
Ergänzung zum Buch: Messen und Steuern mit dem Smartphone

TY-Shreiber über WLAN
Zeitschreiber in netCompact mit Zeitstempel vom Server
Mit Erscheinen des ESP8266 und dessen Verbreitung ist der Umgang mit TCP/IP-Verbindungen im Mess- und Steuerbereich für alle angekommen und damit könnte die alte serielle RS232-Verbindung durch WiFi und Sockets abgelöst werden.

Compact gibt es bereits in verschiedenen Varianten:

Das Zusammenspiel zwischen der neuen Compact-Variante netCompact mit entsprechender Hardware wie z.B. ESP8266 soll mit dieser ersten Version untersucht werden können. Dazu entstand in einem ersten Schritt ein Server auf einem Android-Smartphone oder Tablet, um die neue Verbindungsart mit ihren besonderen Verhaltensweisen mit netCompact zu beobachten.

Das Übertragungsverfahren bringt neue Möglichkeiten aber auch Probleme mit sich, die praktisch analysiert werden sollen. Zu diesem Zweck entstand die TCP/IP-Variante von Compact.


Client oder Server das ist hier die Frage
netCompact kommuniziert hier mit einem Smartphone als Interface im lokalen WLAN und liefert Sensordaten

Bei der RS232-Verbindung gibt es zwei Teilnehmer. Bei CompactDefinition und dessen Vorgängern waren die Aufgaben klar verteilt. Das Interface liefert dem Rechner Messdaten auf Anforderung und ein Programm wie Compact stellt diese Daten dar. Auch eventuelle Steuerungen der Ausgänge am Interface wurden vom Rechner initiiert und vom Interface der Außenwelt mitgeteilt. Bei Sockets gibt es immer einen Client und einen Server. Darum muss eine Entscheidung getroffen werden, als was netCompact die Socketwelt betritt. Ein Server kann mehrere Clients bedienen, ein Client ist immer nur mit einem Server verbunden. Ist ein Interface als Messwertgeber also ein Server, können bei dieser Verbindungsart mehrere Clients darauf zu greifen. Somit könnten mehrere Personen mit ihren Clients Messwerte bzw. Steuerungen ausführen. Daraus folgt für dieses Szenario, dass netCompact als Client ausgelegt sein muss und das Interface als Server. Das Windows-Programm trägt daher den Arbeitstitel "netCompact Client - Testbed alpha". Client weil es ein Client ist und alpha, weil es nichts Fertiges ist.

Um einen Client zu entwickeln ist es hilfreich einen leicht veränderbaren oder programmierbaren Server zu benutzen. Die Umlaufzeiten bei Arduino & Co sind da zu hoch, darum entstand zunächst ein Server für netCompact auf einem Android Smartphone in rfo-Basic!


Server Android Smartphone/Tablet als Server für netCompact
Android-Server auf dem Smartphone
Android-Server mit Verbindung

Als erster Server liefert ein Android-Smartphone Senordaten an netCompact. Mit einer einfachen Oberfläche steht eine Android-App zur Verfügung, die in rfo-Basic formuliert über einen einstellbaren Port (1080 als Vorgabe) seine Messdaten im weiter unten erläuterten Datenvormat zur Verfügung stellt. Nach Eingabe der Port-Nummer zeigt die App die eigene IP an und wartet auf einen Client. Bei einer Verbindung wird eine Begrüßung gesendet und anschließend entsprechend den Anfragen reagiert.

Das Smartphone liefert entweder zwei sehr langsame Schwingungswerte zur Überprüfung des Zeitverhaltens oder Werte des Lagesensors für zwei Dimensionen. Die Umschaltung erfolgt der Einfachheit wegen über die Digitalausgänge des simulierten Gerätes. Ist also einer der 8 Ausgangsbits angeschaltet, werden Sensordaten geliefert, sonst Schwingungsamplituden.

netCompactClient Verbindung
netCompact Connect
WiFi-Empfang mit netCompact
netCompact Verbindungsdialog

Wenn der Server mit bekanner IP läuft, kann sich netCompact mit ihm verbinden und automatisch eine Messanforderung "A1" senden. Das einmalige Senden von Zeichen erfolgt mit dem Senden-Button, wobei Zeilenvorschub und Wagenrücklauf entsprechend gesetzt werden können. Im unteren Fenster erfolgen Kontrollausgaben und eine Log-Datei ermöglicht Messprotokolle im Verzeichnis der Anwendung. Dort liegt auch eine INI-Datei, die einige Einstellungen speichert. Auf Registry-Einträge wird absichtlich verzichtet. Die Protokolldaten werden angehängt, so dass sehr schnell große Textdateien entstehen können. Diese Datei kann mit "Löschen" vernichtet werden.

Mit "Connect" erfolgt eine Verbindung, wobei bei Erfolg zunächst der Fortschrittsbalken mit 50% erscheint. Erst nach dem ersten Messdatum ist der Balken in voller Breite sichtbar und die Empfangsdaten erscheinen im Kontrollfenster.

][1476694592256,0025,0040,0015

Das ASCII-Datenformat ist in dieser Version wie folgt aufgebaut:

Zwei eckige Klammern als Reserve, danach der Unix-Zeitstempel mit 13 Zeichen und anschließend durch Komma getrennte Messdaten mit jeweils 4 Zeichen, wobei zur zeit nur die letzten drei Ziffern als 8-Bitwert ausgewertet werden. Um beide Messgeräte auf 2,5 Volt zu stellen und nur die rechten vier Leuchtdioden anzuschalten, muss also netCompachtClient zum Beispiel folgende Zeichenkette mit einem abschließenden Zeilenvorschub (#10) über TCP/IP gesendet werden:

][0000000000000,0127,0127,0015

Mit 13 Nullen als Zeitstempel ergibt das den 1. Januar 1970, da dort die Unix-Epoche beginnt. Damit sollte es möglich sein mit netCompactClient auch eigene Messgeber - z.B. ein ESP8266 - damit kommunizieren zu lassen. Zieht man das Fenster etwas nach unten auf, so ist das Testbed sichtbar. Hier kann das Zeitintervall manuell geändert werden. Auch sind Informationen zu Messpunkten und Messpunkt sichtbar. Die Bedienung des Schiebers erfolgt auf eigene Verantwortung insbesondere in Richtung kleiner Intervalle.


Download as it is
netCompact.exe
Windows-Exe
netCompact.apk
Android-APP

Beide Programme stehen hier zum Download bereit, um eigene Versuche zu starten. Windows meldet sich mit einer Warnung, die jedoch mit "trotzdem ..." , je nach Windows-Version umgangen werden kann. Unter Android sollten in den Einstellungen unter 'Sicherheit' der Haken bei 'Unbekannte Quellen' gesetzt sein, damit die Server-App installiert werden kann, obwohl sie nicht aus dem Play-Store stammt.


Kreisverkehr Android-Sensordaten in Windows

WiFi XY-Schreiber

Mit dem Smartphone-Server lässt sich mit dem Handy drahtlos ein Kreis zeichnen. Dazu muss einer der Haken bei den Digitalausgängen gesetzt sein, damit der Lagesensor 9 der Android-Hardware ausgelesen und übertragen wird. Wenn das Gerät mit dem Display waagerecht auf einem Tisch liegt, stehen beide Zeiger in der Mitte, wie oben dargestellt. Hält man nun das Gerät senkrecht, hochkant vor sich, so zeigt das obere Messgerät Vollausschlag und die untere Anzeige Halbausschlag. Entsprechend steht der Messschreiberpunkt auf "3 Uhr", oder bei "0 Grad". Startet man den Schreiber und dreht das Android-Gerät langsam im Uhrzeigersinn, oder auch umgekehrt, so entsteht durch die Überlagerung der beiden Bewegungen eine Kreisdarstellung.


Ausblick/Rückblick Messen Steuern Regeln
ESP8266-Modul mit LDR und RGB
Kleiner, schneller, preiswerter, mehr RAM: ESP 12F als Interface für drahtlose Messaufgaben in Compact.
Der Baustein ESP8266 war Anlass den Quelltext von Compact nochmals zu sichten und entsprechend um zu bauen, da mit diesem WiFi-Modul die Möglichkeit besteht sehr preiswerte drahtlose Messungen durchzuführen. Ob im Internet oder im lokalen WLAN spielt dabei kaum eine Rolle. Das TCP/IP Verfahren bietet einige Vor- und Nachteile, die mit dieser Software analysiert werden können.

Vor einigen Jahren gab es auf dieser Seite bereits TCP/IP-Versuche. Damals gab es kein HTML5 oder Arduino und diese Dinge mussten in Java formuliert werden. Es ging um die Steuerung eines seriellen Interfaces über TCP/IP, genau das Thema des ESP8266, der sich immer einfacher programmieren lässt ...



Weitere Software
.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt