Kommunikation - Installation
Die internetbasierte Kommunikation hat eine herausragende Bedeutung in IoT-Applikationen.
MQTT
Der Mosquitto-Broker ist einer besonders einfach zu nutzender MQTT-Broker für Windows und Linux.
Download (Eclipse-Foundation)
Zielverzeichnis sei emphohlen: c:\IoT
snap install mosquitto
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
Konfiguration
Die Konfiguration wird mit der ASCII-Datei mosquitto.conf
vorgenommen.
Die wichtigsten Konfigurationen sind
- Bindung an eine IP-Adresse
- Bindung an eine Ethernet-Schnittstelle
Die Konfiguration wird beim Start des Brokers aus der Datei ./mosquitto/mosquitto.conf
gelesen. Diese ASCII-Text-Datei kann mit einem Texteditor, wie z.B. dem VSC, angepasst werden.
mosquitto.conf (Auszüge)
...
# listener port-number [ip address/host name/unix socket path]
#listener
#listener 172.18.45.149:1883
#listener 192.168.0.164:1883
...
# Example: bind_interface eth0
#bind_interface
...
Starten
Für Entwicklungsarbeiten sollte der Broker nicht als Windows-Dienst bzw. Linux-Service installiert werden. Man kann den Broker auch von der Kommandozeile aus starten:
C:\IoT\mosquitto\mosquitto.exe
sudo systemctl restart mosquitto
MQTT-Explorer
Ein besonders starkes Tool ist der MQTT-Explorer von Thomas Nordquist. Er stellt es frei zur Verfügung. Mit dem MQTT-Explorer lassen sich die Publish- und Subscribe-Aktivitäten des Brokers sehr gut beobachten. Die Bedienung ist intuitiv!
Hier Link stehen die Installationen für Windows, Linux etc. zur Verfügung.
OPC-UA
OPC-UA ist eine Client-Server-basierte Kommunikation, die über verschiedene Systeme bereit gestellt werden:
- Speicherprogrammierbare Steuerungen (SPS)
- Geräte der Feldebene (Antriebe, Sensoren, ...)
- Gerte der Bedienebene (HMI, ..)
Um die Kommunikation beobachten zu können, braucht es einen "Sample-Client". Ein frei verfügbarer Client ist der UaExpert von "Unifiend Automation". Um ihn gherunterladne zu können, muss man sich registrien.
Hier Link geht's zum Download für Windows und Linux.
Neben den Python-Clients (anonymous-Mode) kann auch mit dem aktuellen OPC-Server Version 4.4.x von Beckhoff gearbeitet werden. Dabei ist die Erzeugung eines Accounts für den Client zu beachten. Einfacher ist allerdings die Nutzung der TwinCAT-OPC-Servers mit der Version 4.1.x, da hier ein anonymer Zugang realisiert werden kann.
Eigene Clients und Server lassen sich mit Python realisieren. Dazu ist das Package asyncua
zu installieren ( PYPI)
pip install asyncua
Info
Im Laborbetrieb kann innerhalb des Labornetzes auf den Server 172.18.45.5
zugegriffen werden. Er stellt mehrere OPC-UA-Server auf unterschiedlichen Ports zur Verfügung.
RestAPI
Die RestAPI (Rest=Representational State Transfer, API= Application Programming Interface) nutzt HTTP-Methoden, um Daten zwischen einem Server und einem Client-Gerät auszutauschen. Dabei können die Daten vom Client zum Server und vom Server zum Client in unterschiedlichen Formaten übertragen werden (json, xml, http,...). Wenn der Client im Browser luft, dann wird diese Schnittstelle mit Javascript realisiert. Der Server kann dann z.b. ein Python-Script sein, das spezielle Packages nutzt.
Auf der RestAPI basieren oft Web Services. Es lassen sich sehr universelle Schnittstellen zwischen verschiedenen Prozessen realisieren. Bei einer Umsetzung mit Python kann z.B. das Standard-Package requests
genutzt werden oder ein Framework, wie z.B. FastApi
, eingesetzt werden. Beispiele werden im Zusammenspiel mit Node-Red als Frontend und einem py-Backend zur Datenbank vorgestellt.