Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Konzeptentwicklung
Hochschule Karlsruhe Logo Informationstechnik
Entwicklung und Updates Ventilator
Sommersemester 2021
teel1011
hier1011

Konzeptentwicklung

Fernzugriff auf einen Computer (2 Konzepte)

Beide Konzepte nutzen eine Software mit dem Remote Desktop Protocol (RDP) von Microsoft.
Der Vorteil hierbei ist die breite Verfügbarkeit der Software bzw. Clients. Jeder Windows-PC besitzt den RDP-Client bereits.  Das Fernsteuern kann auf jedem anderen System, sogar auf Handys oder Tablets durchgeführt werden. Um einen Remote Zugriff zu erstellen/ konfigurieren wird jedoch die Pro- oder Enterprise-Version von Windows 10 benötigt.

1-Windows Remote Unterstützung

Die erste Lösung von Windows ist  eine sehr leichte und schnell umzusetzende Lösung und bietet Zugriff auf einen entfernten PC: "Windows Remote Unterstützung". Diese ist in jedem Windows-Rechner mit aktueller Betriebssystemversion vorhanden. Erfordert allerdings bei jedem Verbindungsaufbau eine zweite Person am fernzusteuernden PC.

Für die Einrichtung auf dem zu steuernden PC wird unter über Systemsteuerung > System und Sicherheit > System > Remoteeinstellungen die Remoteunterstützung aktivert.


 Abb.: Aktivieren von Remoteunterstützung

Als nächsten Schritt wird die Windows-Remoteunterstützung wie unten im Bild zu sehen gestartet, indem "msra" in der Windows-Suchleiste eingegeben wird. Im anschließend auftauchenden Abfragefenster wird die Option ausgewählt eine vertrauenswürdige Person zur Unterstützung einzuladen.


Abb.: Starten des Programms Windows-Remoteunterstützung

Jetzt wird eine Einladung erstellt indem "Einladung als Datei speichern" im nächsten Abfragefenster ausgewählt wird. Diese Datei wird auf dem Client-PC geschickt.


Abb.: Erstellen der Einladung

Zu dieser Datei brauch der Client-PC das Zugangspasswort, dass automatisch nach dem Erstellen der Einladung auftaucht. Danach hat kann der Anwender eine Verbindung zum fernzusteuerenden PC aufbauen


Abb.: Beispiel für das Zugangspasswort

Zu guter letzter wird die Erlaubnis für den vollen Zugriff auf den Client-PC erlaubt.


Abb.: Abfragefenster für die vollen Zugriff

Auf dem ferngesteuerten PC ist  der ESP32 angeschlossen. Nun lässt sich der ESP32 über Remote-Control programmieren und debuggen.

2-Microsoft Remote Desktop

Windows bietet noch eine, für unseren Projekt, besser geeignete Lösung für den Fernzugriff auf einen Rechner: "Microsoft Remote Desktop". Da hier keine Einladung vom Rechner vor Ort notwendig ist, kann unabhängiger gearbeitet werden.
Wir sind erst in Ausarbeitungsphase auf diese Lösung Aufmerksam geworden. Da die Ausarbeitung besondere Einstellungen/ Software am Internetrouter benötigt, konnten wir aus Zeitgründen diese nicht mit Laborbedingungen testen. Der Einsatz im lokalen Netz ist jedoch praxistauglich.

Für die Einrichtung wird unter den Windows-Einstellungen im Menü System der Befehl "Remotedesktop aktiviert"


Abb.: Windows- Einstellungen für Remotedesktop

Um den PC fernzusteuern wird auf einem anderen Computer der Remote-Desktop-Client geöffnet. Hier gibt der Benutzer die IP-Adresse und anschließend das Passwort vom fernzusteuerenden Pc ein.


Abb.: Remote-Dessktop-Client

Wie in der ersten Variante lässt sich nur der ESP32 über Remote programmieren

 ArduinoOTA - Verbindung zwischen PC und ESP32
 
Ziel ist es über eine Funkschnittstelle (WLAN) ein Programm vom PC auf den ESP32 hochzuladen. Hierfür wird "Over The Air programming" benötigt. Auf dem ferngesteuerten PC muss hierfür Python installiert werden. Genauso wird in der ArduinoIDE die Bibliothek ArduinoOTA mithilfe des Biblotheksverwalters installiert. In diesem Fall wird ArduinoOTA ohne einen Webserver programmiert.


Abb.: Einbinden der ArduinoOTA Bibliothek

Jedes Programm, dass hochladen werden soll braucht nun ein OTA-Gerüst und muss dementsprechend angepasst werden. Dazu gehört eine OTA-Setup-Methode um eine Verbindung zum WLAN herzustellen. Anfangs muss das Programm über eine serielle Schnittstelle hochgeladne werden. Anschließend  muss beim Hochladen  darauf geachtet werden immer das OTA-Gerüst in seinem Programm zu haben, da sonst  die WLAN-Verbindung mithilfe von OTA verloren geht.


Abb.: Programmausschnitt OTA-Gerüst


Remote Debugging - Debugging über WLAN (2 Konzepte)

Ohne serielle Schnittstelle kann über die ArduinoIDE nicht debuggt werden bzw. kein serieller Monitor aufgerufen werden. Um das Remote- Debugging über eine WLAN-Verbindung zu ermöglichen gibt es zwei Bibliotheken von github: RemoteDebug oder Webserial. RemoteDebug nutzt zur Ferverbindung mit einem Server telnet während Webserial einen Webserver für die Verbindung nutzt. Als erstes wird RemoteDebug vorgestellt.

1-RemoteDebug:
Hierfür wird die dementsprechende Bibliothek mithilfe vo ArduinoIDE eingebunden werden.


Abb.: Einbinden der RemoteDebug Bibliothek

´
Genauso wie bei ArduinoOTA muss das Programm mit dem RemoteDebug-Code angepasst werden. Danach wird telnet eingerichtet. Dieses wird auf allen Betriebssystemen unterstützt und muss auf Windows nur aktiviert werden.


Abb.: Aktivieren telnet unter Windows

Jetzt kann der Anwender, wenn auf dem ESP32 das Programmg gestartet wurde, über ein Windows Command Fenster debuggen. Hierfür wird telenet gestartet und mit dem Befehl "o <ESP32 IP-Adresse einfügen>" eine Verbindung zum ESP32 hergestellt. Das cmd- Fenster fungiert nun als serielle Monitor über eine WLAN- Verbindung.


Abb.: Debug Oberfläche mithilfe von tenet und RemoteDebug


WebSerial:
Nach Absprache hat diese Bibliothek ein Kommilitone mit einem ähnlichen Projekt diese Bibliothek bearbeit. Deswegen wird hier auf WebSerial nicht eingegangen. Link zum Projekt: eMR- Remote Entwicklung

Erstellen einer Programmschablone:

Schablone mit RemoteDebug:
 
Um ArduinoOTA und Remote Debugging schnell nutzen zu können, wurde ein Programm erstellt in dem der Programmierer seine eigenen Code einfügt und automatisch das Programm über WLAN hochladen kann. Zudem ist Remote Debugging aktiviert. Hierfür muss beachtet werden, dass die oben genannten Biblotheken einfügt wurden als auch die für dieses Projekt selber erstellte Bibliothek.


Abb.: Aussehen der Programm Schablone mit RemoteDebug

Schablone mit WebSerial:

Synchron zu der ersten Schablone haben wir auch eine für Webserial erstellt, die in der Ausarbeitung genauer gezeigt wird.



  Mit Unterstützung von Prof. J. Walter Sommersemester 2021