TOP
SSV Software Systems Registrieren  Registrieren
Einloggen, um private Nachrichten zu lesen  Einloggen, um private Nachrichten zu lesen
Startseite FAQ Suchen Mitglieder Profil  Login 
SSV Support-Forum
IoT-Entwicklerbaukasten ...

 
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> Real Time Data Channels (RTDC)
<<< Vorheriges Thema - Nächstes Thema >>>  
Beiträge der letzten Zeit anzeigen:   
Autor Nachricht
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 05.11.2015, 08:42    Titel: IoT-Entwicklerbaukasten ... Antworten mit Zitat



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


Zuletzt bearbeitet von kdw am 08.09.2017, 20:28, insgesamt 8-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 13.11.2015, 23:01    Titel: Poti anschließen … Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 05.01.2016, 18:20    Titel: Datenobjekte ... Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 06.01.2016, 12:21    Titel: Weitere Sensoren … Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 09.09.2017, 07:55    Titel: Node-RED-Dashboard … Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 26.11.2017, 17:46    Titel: Smart Sensor ... Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kdw



Anmeldedatum: 05.05.2006
Beiträge: 1183

BeitragVerfasst am: 25.05.2018, 10:54    Titel: Next: Machine Learning … Antworten mit Zitat

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
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    SSV-Forum Foren-Übersicht >>> Real Time Data Channels (RTDC) Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht teilnehmen.

SSV Software Systems GmbH

Dünenweg 5
30419 Hannover

Tel.: +49(0)511 / 40 000-0
Fax: +49(0)511 / 40 000-40

sales@ssv-embedded.de

 

Impressum    ·    Datenschutz    ·    AGB

© 2018 SSV Software Systems GmbH. Alle Rechte vorbehalten.

ISO 9001:2015