TOP
SSV Software Systems Register  Register
Log in to check your private messages  Log in to check your private messages
Startseite FAQ Search Mitglieder Profile  Log in 
SSV Support-Forum
IoT-Entwicklerbaukasten ...

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> Real Time Data Channels (RTDC)
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 05.11.2015, 08:42    Post subject: IoT-Entwicklerbaukasten ... Reply with quote



Siehe http://www.ssv-embedded.de/doks/manuals/fs_iot-ebk_v03_de.pdf

Damit kann innerhalb weniger Minuten die erste RTDC-Anwendung erstellt und das Ergebnis per Webbrowser-Zugriff betrachtet werden.

Die hier folgende Tabelle liefert einen Überblick zu den Bestandteilen eines IoT-Entwicklerbaukasten (Achtung: Die Farben der Kabelbrücken können je nach Verfügbarkeit variieren).



Mit dem IoT-Entwicklerbaukasten lässt sich inzwischen auch innerhalb weniger Minuten ein Modbus-TCP-basierter Smart Sensor aufbauen. Dazu wird einfach der LM35-Temperatursensor mit dem A0-Eingang des Arduino Uno verbunden und der zum Entwicklerbaukasten gehörende Beispielcode in den Uno geladen.

Gruß KDW


Last edited by kdw on 08.09.2017, 20:28; edited 8 times in total
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 13.11.2015, 23:01    Post subject: Poti anschließen … Reply with quote

Hallo Forum.

Zum Lieferumfang des IoT-Entwicklerbaukastens gehört ein Potentiometer (Poti). Dieser Poti hat drei Kontakte. Schließen Sie die beiden äußeren Kontakte an Masse und +5 VDC an. Verbinden Sie den Mittabgriff des Poti mit dem Analogeingang A0. Übertragen Sie den folgenden Code in Ihre Arduino-IDE.

Code:
// Poti an A0 einlesen ...

void setup()
{
  Serial.begin(9600);
}

void loop()
{
 
  int value = analogRead(0);
  int percent = map(value, 0, 1023, 0, 100);
  Serial.print(value);
  Serial.print(" ");
  Serial.print(percent);
  Serial.print("% ");

  float voltage = value * (5.0 / 1023.0);
  Serial.print(voltage);
  Serial.println("V");
  delay(1000);
}


Übersetzen Sie den Code und laden das Ergebnis per USB zum Arduino Uno. Öffnen Sie den seriellen Monitor. Beobachten Sie die Ausgaben über die serielle Schnittstelle. Drehen Sie am Poti. Es werden jeweils andere Spannungswerte angezeigt.

Gruß KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 05.01.2016, 18:20    Post subject: Datenobjekte ... Reply with quote

Hallo Forum.

Für die beiden „Sensoren“ (Potentiometer und Temperatursensor) des IoT-Entwicklerbaukastens existiert ein RTDC-Datenprojekt mit zwei Datenobjekten und jeweils einem Daten-Item:

Code:
{
  "do": [
    {
      "id": 77,
      "name": "EMG",
      "desc": "",
      "property": {},
      "item": [
        {
          "id": 146,
          "name": "TEMP",
          "data": [
            1452018206,
            "0"
          ],
          "type": "GAUGE",
          "desc": "",
          "property": {
            "unit": "C"
          }
        }
      ]
    },
    {
      "id": 80,
      "name": "POTI",
      "desc": "",
      "property": {},
      "item": [
        {
          "id": 149,
          "name": "U1",
          "data": [
            1452018194,
            "0"
          ],
          "type": "GAUGE",
          "desc": "",
          "property": {
            "unit": "V"
          }
        }
      ]
    }
  ]
}


Zur Visualisierung er beiden Daten-Items (EMG/TEMP und POTI/U1) wurde eine Webseite mit zwei virtuellen Instrumenten vorbereitet:



Sie können die Daten-Items EMG/TEMP und POTI/U1 auch mit Hilfe von cURL auslesen. Siehe hierzu auch http://www.ssv-comm.de/forum/viewtopic.php?t=1222. Der grundsätzliche Aufbau einer cURL-Kommandozeile für einen RTDC-GET-Request wäre:

Code:
curl -X GET -H "X-RTDC-Auth-Key: <API KEY>" "<REST API LINK>"


Um das Daten-Item EMG/TEMP zu lesen, ist

Code:
"<REST API LINK>" = "ssv-connect.de:80/rtdc/v0/?get=data&do=EMG&item=TEMP"


Das Daten-Item POTI/U1 wäre mit folgendem Kommandozeilenelement auslesbar:

Code:
"<REST API LINK>" = "ssv-connect.de:80/rtdc/v0/?get=data&do=POTI&item=U1"


In beiden Fällen ist

Code:
"ssv-connect.de:80" = "<SERVER:PORT>"


und muss jeweils durch die URL und Portnummer des jeweils benutzen RTDC-Servers ersetzt werden.

Das cURL-Kommandozeilenelement

Code:
<API KEY>


muss jeweils durch den zu Ihrem RTDC-Datenprojekt gehörenden Schlüsselwert für X-RTDC-Auth-Key ersetzt werden. Zum Beispiel:

Code:
a8a14123-d031-5432-9fac-ff8e3073e5cf


Analog zum zuvor beschriebenen HTTP-GET-Request kann per cURL-Kommandozeile z. B. auch ein HTTP-POST-Request möglich, mit dem als RTDC-REST-API „CREATE“ ein weiteres Daten-Item erzeugt werden kann. Hierzu ein Beispiel. Per

Code:
curl -X POST -H "X-RTDC-Auth-Key: <API KEY1>" -H "X-RTDC-Access-Key: <API KEY2>" -d @<DATEINAME> "<REST API LINK>"


und einer Textdatei mit dem folgenden JSON-Inhalt

Code:
{"do":[{"name":"POTI","item":[{"name":"I1","desc":"Strom 0 - 100mA","type":"GAUGE","property":{"unit":"mA"}}]}]}


wird im Datenobjekt POTI das Daten-Item I1 erzeugt. Der Name der Textdatei mit dem JSON-String wird als <DATEINAME> in der cURL-Kommandozeile benutzt.

Durch die REST-CREATE-Operation hat unser RTDC-Datenprojekt nun die hier folgende Struktur:

Code:
{
  "do": [
    {
      "id": 77,
      "name": "EMG",
      "desc": "",
      "property": {},
      "item": [
        {
          "id": 146,
          "name": "TEMP",
          "data": [
            1452019456,
            "45.6"
          ],
          "type": "GAUGE",
          "desc": "",
          "property": {
            "unit": "C"
          }
        }
      ]
    },
    {
      "id": 80,
      "name": "POTI",
      "desc": "",
      "property": {},
      "item": [
        {
          "id": 149,
          "name": "U1",
          "data": [
            1452019455,
            "4.56"
          ],
          "type": "GAUGE",
          "desc": "",
          "property": {
            "unit": "V"
          }
        },
        {
          "id": 535,
          "name": "I1",
          "data": [
            1452071409,
            ""
          ],
          "type": "GAUGE",
          "desc": "Strom 0 - 100mA",
          "property": {
            "unit": "mA"
          }
        }
      ]
    }
  ]
}


Beachten Sie bitte das neu erzeugte Daten-Item POTI/I1.

Gruß KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 06.01.2016, 12:21    Post subject: Weitere Sensoren … Reply with quote

Hallo Forum.

Hin und wieder erreicht uns die Frage, ob man weitere Sensoren (z. B. einen Sensor mit 0 – 10V-Ausgang) an den Arduino Uno des IoT-Entwicklerbaukasten anschließen kann.

Grundsätzlich ist das problemlos möglich. Es sind allerdings gute Ardunio-Kenntnisse und Erfahrungen mit einfachen elektronischen Schaltungen erforderlich. Da den analogen Eingängen des Arduino Uno nur eine Spannung aus dem Bereich 0 – 5 V zugeführt werden darf, wäre zum Beispiel eine entsprechende Eingangsbeschaltung (z. B. ein Spannungsteiler) notwendig. Wenn man dieses Problem einmal „googled“, findet man zahlreiche Beispiele und konkrete Vorschläge. Aber Vorsicht: Ein kleiner Schaltungsfehler kann zur Zerstörung des Arduino Uno führen. Sollten aus welchen Gründen auch immer die 10 V direkt auf einen analogen 0 - 5 V-Eingang gelangen, ist die Uno-Hardware anschließend wohl nicht mehr zu gebrauchen.

Gruß KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 09.09.2017, 07:55    Post subject: Node-RED-Dashboard … Reply with quote

Hallo Forum.

Die Sensordaten aus den Beispielen des IoT-Entwicklerbaukastens lassen sich zum Beispiel auch an ein IGW/936 weiterleiten. Dafür wird zum Beispiel ein Modbus-Slave auf dem Arduino-Maker-Board implementiert, der die Messwerte an den analogen Eingängen des Arduino über Modbus-Register zur Verfügung stellt.

Unter Node-RED auf dem IGW/936 wird ein Modbus-Master für den Zugriff auf das oder die betreffenden Arduino-Modbus-Register konfiguriert.



Das Ergebnis lässt sich wahlweise mit Hilfe des IGW/936-Node-RED-Dashboards visualisieren, also per Webbrowser auf einem PC im LAN grafisch darstellen, oder über den OPC UA-Server des IGW/936 an einen externen OPC UA-Client weiterleiten.



VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 26.11.2017, 17:46    Post subject: Smart Sensor ... Reply with quote

Hallo Forum.

Der IoT-Entwicklerbaukasten kommt auch im neuen IGW/936-OPC UA-Starterkit zum Einsatz.

Siehe http://www.ssv-comm.de/forum/viewtopic.php?t=1403

Die Bausteine des Entwicklerbaukastens dienen für das IGW/936 als Smart Sensor.

VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 25.05.2018, 10:54    Post subject: Next: Machine Learning … Reply with quote

Hallo Forum.

Seit 2015 verwende ich den IoT-Entwicklerbaukasten für meine IoT-Workshops, wie zum Beispiel das zweitägige Intensivseminar „Internet der Dinge (IoT), das ich in Zusammenarbeit mit dem WEKA-Verlag und weiteren Partnern abhalte. In diesem Jahr werde ich auch auf den Themenbereich „Datenanalysen und Machine Learning“ eingehen. Entscheidend für ein IoT-Projekt ist ja letztendlich, welcher quantifizierbaren Nutzen aus den IoT-Daten gezogen wird. Siehe hierzu:

https://www.training-for-professionals.de/veranstaltungen/internet-der-dinge-iot.html

Der Werkzeugkasten, der im Rahmen des Workshops zum Einsatz kommt, um mit Hilfe des IoT-Entwicklerbaukasten erzeugte „Sensordaten“ zu analysieren, ist Scientific Python. Dazu gehören eine Python 3.x-Programmier- und Laufzeitumgebung plus verschiedene ausgesuchte Spezialbibliotheken (z. B. NumPy, Pandas, Scikit-Learn, Matplotlib).



Als Entwicklungsumgebung dient Anaconda, eine leistungsfähige und weit verbreitete Open Source Distribution für die Programmiersprachen Python und R. Die integrative Oberfläche Anaconda Navigator enthält u. a. die Python-IDE Spyder, den Kommandozeileninterpreter IPython und das webbasierte Frontend Jupyter. Anaconda läuft auf PCs mit unterschiedlichen Betriebssystemen.

Die eigentliche Rohdatenanalyse und die Informationsgewinnung erfolgt z. B. innerhalb von Spyder. Dabei werden die jeweils benötigten Daten zunächst von Form einer CSV-Datei eingelesen und in NumPy-Arrays oder Pandas-Dataframes gespeichert. Dann werden verschiedene Algorithmen und Methoden eingesetzt, um die gewünschten Informationen zu gewinnen.



Spyder ist eine IDE (Integrated Development Environment), in der sich interaktiv Python-Quellcodes entwickeln und testen lassen. Besonders wichtig dabei ist, dass einzelne Python-Codezeilen im Single-Step-Modus oder als Code-Block ausgeführt werden können und nach jeder einzelnen Codezeile z. B. die Veränderung der Daten darstellbar ist. Mit Matplotlib erstellte Grafiken werden direkt innerhalb von Spyder ausgegeben. Darüber hinaus besteht aus Spyder heraus der direkte Zugriff auf umfangreiche Online-Hilfen zu Python und den Spezialbibliotheken.



Jupyter ist eine Weboberfläche, die mit einem Kernel als Webserver kommuniziert. Unter Jupyter werden sogenannte Notebooks bearbeitet, in denen Codezeilen, Bilder und Textdokumentation in Zellen zusammengefügt werden. Python-Code-Zellen lassen sich direkt ausführen, die Ergebnisse werden innerhalb des Browserfensters angezeigt und in das Notebook übernommen. Jupyter-Notebooks werden als einzelne Datei gespeichert. Sie lassen sich sehr einfach weitergeben und in einer anderen Zielumgebung nutzen. Insofern dient Jupyter im Sensor-2-Information-Prozess auch zu Ergebnispräsentation.



Zu Jupyter gehört in Anaconda auch eine QT Console (Jupyter QtConsole). Dieses Werkzeug ist aus meiner Sicht der effizienteste Weg, um Codefragmente auszutesten. Für mich ich ist es immer besonders hilfreich, wenn ich die „Daten sehen kann“. Das geht mit der Jupyter QtConsole sehr einfach. Man muss nur wenige Zeilen tippen. Im einfachsten Fall z. B. drei Zeilen:

Code:
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot ([1, 5, 7, 10, 2, 9, 0])




Es lassen sich aber auch per Cut&Paste komplette Codefragmente aus anderen Werkzeugen in die Console kopieren und testen.

VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 15.02.2020, 21:44    Post subject: Reply with quote

Hallo Forum.

Da inzwischen sowohl die Sicherheitsanforderungen (z. B. Cloud- und IoT-Plattformanbindungen per TLS) als auch das maschinelle Lernen zu praktisch jeder IoT-Anwendung gehören, würden wir für neue Entwicklungsvorhaben statt des hier beschriebenen IoT-Entwicklerbaukastens dann doch den DNP/AISS1 empfehlen. Siehe

https://ssv-comm.de/forum/viewtopic.php?t=1450

VG KDW
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 11.03.2020, 15:31    Post subject: YouTube-Video: IoT-Retrofit ... Reply with quote

Siehe https://www.youtube.com/watch?v=PvcxF7oIpuw

VG KDW
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> Real Time Data Channels (RTDC) All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2023 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015