ESP32 Pico-Board. und Node-RED GUI ESP32 Addon. ESP32 und Node-RED Datenversand. Vers. 1.0

Ähnliche Dokumente
ESP32 Pico-Board. und Node-RED GUI ESP32 Addon. ESP32 und Node-RED GUI. Vers. 1.0

ESP32 Pico-Board. und Node-RED ESP32 Addon. ESP32 und Node-RED. Vers. 1.0

Naturwissenschaftliche Grundlagen der Sensorik. WiFi und MQTT. Chemnitz 16. Oktober 2017 Prof. Dr.

ESP32 Pico-Board. ADC mit MCP ESP32 Addon. ADC- mit dem MCP3008. Vers. 1.0

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

Internet Of Things Workshop. Batteriebetriebener Temperatursensor ESP8266 (Wemos D1.mini), Arduino IDE, WiFi, MQTT, DeepSleep

HelvePic32 Breadboard. Internet Data Logger

Arbeitsblatt Nr.19: RFID Kit

Arduino µcontroller. Virtuelle COMSchnittstelle

Projekt Node-Red. Mini HOWTO OPC UA Node

Erste Gehversuche mit ARDUINO #2 (DL6OAA) Verwendete Unterlagen:

Felder und Schleifen. Themen heute. Felder Schleifen Heartbleed. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Grundlagen der Anwendung und Programmierung des ESP8266. Dennis Hoffmann Mittwoch, :30 Uhr Schulungsraum SW23/147

ArduSmartPilot mit WiFi-Server und MIT App Inventor

Programmieren des ESP8266 mit OLED

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Was so passieren wird:

Insite Gold Version Installationsanleitung (QR Code)

Joy-IT Ultraschall Abstandssensor

ESP32 Pico-Board. SD-Card ESP32 Addon. SD-Card. Vers. 1.1

Node-RED Nodes für den IoT-Edge-Controller sysworxx CTR-700

analoge Ein- und Ausgänge

Wetterdaten online (BME280)

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 6

Die WiFI Library( bei dem meisten recent?

TCS3200 Farbsensor. Schritt 1 Anschließen des Sensors. Bild 1: TCS3200 Farbsensor

3CX Fax Server Integration

Anzeige von Statusinformationen für den Router

Erste Gehversuche mit ARDUINO (DL6OAA)

ESP als Webserver für richtige Webseiten

SBC ButtonMatrix Bedienungsanleitung. Verwendung mit einem Arduino Schritt 1 Anschließen der Matrix

Die Installation der Arduino-Entwicklungsumgebung Version 1.0

DC 5V Stepper Motor 28BYJ-48. Verwendung mit einem Arduino

Hamachi für Spiele und Freigaben nutzen

Struktur eines Sketches

DMXface ACTIVE SEND mit RS232

Einführung in die Arduino-Programmierung II

TiMaS. App einrichten

DoorBird Connect ThinKnx

Der Arduino im Physikunterricht Cheat-Sheet. Christopher Kommetter

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

LED Skalenbeleuchtung mit einem Arduino

Befehlstabelle awapswitch Anwendung

Linear Magnetic Hall Sensor KY-024

HowTo SoftEther Site-2-Site (Client-Bridge)

Um überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

4. Ditzinger Makerspace. Arduino Teil 1. Ein Projekt von Repair-Café und Stadtbücherei Ditzingen Stadtbücherei Ditzingen UG

Achtung! Voraussetzung für alle nachfolgend beschriebenen Methoden der Vorwarnung ist die Aktivierung der Vorwarnung in der Druckerkonfiguration!

Anleitung unter Windows

BOLB - Installation Homebanking Kontakte

Microcontroller im Amateurfunk

Praktikum Netzwerke. Für den Speicherort tragen Sie Ihr Netzlaufwerk und entsprechende Unterverzeichnisse ein, z.b.:

Mini-Projekt: miniirc

Dokumentation Raspberry USV+ E

Einführung Arduino - Aufbau

Erstellen eines RS-Flip-Flops mit Hilfe eines Blockdiagramms

System-Programmierung 10: Weitere Arten von I/O. CC BY-SA, Thomas Amberg, FHNW (soweit nicht anders vermerkt)

USB-Server Gigabit - Kurzanleitung

Serielle Kommunikation - Kodierung

Abbildung 4-4-1: Ein prellender Taster

BAUANLEITUNG ROBO-REGENTRUDE

µversion 2 Einführung

Schnellstart. Erste Schritte:

NetMan Desktop Manager Quickstart-Guide

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4

Datenbanken unter J++ - Teil 2

VPN mit unterschiedlichen Mac OS X- Versionen

1 Überblick. A-Z SiteReader Benachrichtigung.doc Seite 1 von 9

Client-Programm einrichten Apple Mail (OS X)

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Versuch 3: Kamera 1. In diesem Programm sind die grundlegenden Funktionen der Kamera schon implementiert. Diese Funktionen sind:

Printer DCA Installation

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Anleitung Server-Installation Capitol V14.1

devin v1.60 Bedienungsanleitung

Xesar. Inbetriebnahme Netzwerkadapter

Exchang mit Outlook 2011 für Mac

Entwicklungsumgebung für die Laborübung

Arduino LC-Display-Ansteuerung Seite 2

Microsoft Visual Studio Code mit RPG und IceBreak

Solaranzeige.de. Informationen Version 1.4 vom April 2018

Eine direkte WLAN-Verbindung mit einem anderen Gerät herstellen. Den WLAN-Modus auf TO DEVICE einstellen

Einführung in die Arduino Programmierung am Beispiel eines Roboters.

mit Winzip oder anderem Programm auf PC entpacken => xxx.img-datei mit Win32Diskimager die xxx.img-datei auf Micro-SD-Card >= 4GB schreiben

Interaktionstoolkit How To

1. Allgemein. Verschlüsselte für IPhone IOS Geräte Schritt für Schritt Anleitung

Beschreibung LED-Matrix-Anzeige

Teile und Herrsche. Themen heute. Eigene Funktionen Parameter Fallunterscheidungen Fehlersuche. Programmieren für Ingenieure Sommer 2015

Teile und Herrsche. Themen heute. Eigene Funktionen Parameter Fallunterscheidungen Fehlersuche. Programmieren für Ingenieure Sommer 2014

Simple serial time and HTTP client API Version 00.75

Dokumentation Aufbau und Inbetriebnahme LAN

Netzwerk-Analyse mit dem FEC Network Monitor

Wie registriere ich Drivve Image manuell auf einem OKI-Gerät? (OKI-Edition)

Installation der Entwicklungsumgebung

Transkript:

ESP32 Pico-Board und Node-RED GUI https://erik-bartmann.de/ ESP32 Addon ESP32 und Node-RED Datenversand Vers. 1.0 by Erik Bartmann, Juli 2018

ESP32 und Node-Daten D ieses ESP32-Addon baut auf das vorangegangene auf. Es wurden Daten von Node-RED [2] über eine TCP- Verbindung an den ESP32 versendet und dort zur Anzeige gebracht, bzw. ausgewertet. Nun wollen wir in diesem Addon den umgekehrten Weg gehen und Daten vom ESP32 zu Node-RED versenden und dort anzeigen bzw. auswerten. Das geht über eine TCP-Verbindung sehr einfach und ist schnell implementiert. Das Beispiel soll natürlich nur die Möglichkeiten aufzeigen und Lust auf mehr machen. Die Einsatzgebiete sind nahezu unbegrenzt. Detailinformationen zu Node-RED sind in meinem Buch mit dem Titel IOT- Programmierung mit Node-RED [3] zu finden. ESP32 und Node-RED Daten https://erik-bartmann.de/ Seite 2

Der Workflow W ollen wir uns zu Beginn den Weg der Daten anschauen und das am besten über eine Grafik. Unser Sender ist diesmal das ESP32-Picoboard und der Empfänger Node-RED, das ja als Server auf dem Raspberry Pi installiert ist. Das Übertragungsprotokoll ist wiederum TCP. Abbildung 1 Der Weg der Daten Was wollen wir für unser Beispiel an Daten nutzen, ohne gleich aufwendige Messwerterfassungen zu realisieren? Nun, auf dem ESP32-Pico-Discoveryboard [4] gibt es ein Potentiometer, mit dem wir analoge Spannungen simulieren können. Was würde dagegen sprechen, den erzeugten Spannungswert an einen analogen Eingang des ESP32-Picoboards zu leiten und diesen dann per TCP zu versenden. Die Verkabelung schaut dann wie folgt aus. Abbildung 2 Der Anschluss des Potentiometers am ESP32-Picoboard 3 ESP32 und Node-RED Daten

Zur Programmierung bzw. Abfrage des analogen Eingangs kommen wir natürlich jetzt noch zu sprechen. Der ESP32-Code Starten wir mit der Programmierung des Senders, also dem ESP32-Picoboard mit dem Code [5]. Der folgende Abschnitt führt die grundlegenden Deklarationen durch. #include <WiFi.h> const char* ssid = "<SSID>"; const char* password = "<Passwort>"; const char* server = "192.168.178.27"; // IP-Adresse des Node-RED-Servers const int port = 8088; // Port unsigned long previousmillis = 0; // Letzter Update-Zeitstempel const long interval = 1000; // Sende-Intervall in ms Die hier angegebene IP-Adresse muss die des Raspberry Pi sein, auf dem Node-RED läuft. Der nachfolgende Abschnitt innerhalb der setup-funktion ist wieder für die Verbindungsaufnahme zu Wifi zuständig. void setup() { Serial.begin(9600); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status()!= WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected to IP address: "); Serial.println(WiFi.localIP()); } Innerhalb der loop-funktion erfolgt die Verbindungsaufnahme via TCP-zum Server, auf dem Node-RED läuft, was im angegebenen Intervall stattfindet. Ich habe keine delay- Funktion für das Erzeugen einer Pause genutzt, weil das den kompletten Programmablauf unterbrechen würde. Die Verbindungsaufnahme erfolgt immer nur für den Zeitpunkt des Versendens von Informationen und wird unmittelbar darauf wieder geschlossen. 4 ESP32 und Node-RED Daten

void loop() { unsigned long currentmillis = millis(); if (currentmillis - previousmillis >= interval) { previousmillis = currentmillis; Serial.print("Connecting to "); Serial.println(server); WiFiClient client; // Für TCP-Connection } } if (!client.connect(server, port)) { Serial.println("Connection failed"); return; } int analogvalue = analogread(32); // Messwerterfassung Serial.println(analogValue); client.print(analogvalue); // Sende Daten zum Server client.stop(); // Schließe TCP-Verbindung Über die analogread-funktion wird der IO-Pin 32 abgefragt, der als ADC1/CH4 arbeitet. Das Versenden des Messwertes und die TCP-Unterbrechung erfolgt über die beiden folgenden Zeilen.... client.print(analogvalue); // Sende Daten zum Server client.stop(); // Schließe TCP-Verbindung... Über den Aufruf des Serial-Monitors können wir die Initiierung der Wifi-Verbindung und das Versenden des Potentiometerwertes via TCP-Verbindung verfolgen. Abbildung 3 Die Statusinformationen im Serial-Monitor 5 ESP32 und Node-RED Daten

Das einzige, was wir also in Richtung Node-RED versenden, ist der nackte Zahlenwert des Analog/Digital-Wandlers, der an Pin 32 arbeitet. Sehen wir jetzt, was auf der Seite von Node-RED erforderlich ist, um diesen Wert zu empfangen und zu verarbeiten. Wir wollen nämlich den Messwert auch grafisch über ein geeignetes Anzeigeinstrument - eine sogenannte Gauge - visualisieren. Dazu ist die Node-RED-Erweiterung Dashboard erforderlich. Die notwendige Installation ist im vorangegangenen Addon beschrieben. Was tut sich in Node-RED Der von mir erstellte Node-RED-Flow schaut dabei wie folgt aus. Abbildung 4 Der Node-RED-Flow für das Empfangen und Anzeigen der Daten Auf der linken Seite ist die TCP-Node zu sehen, die für den Empfang des Messwertes zuständig ist. Diese Node leitet ihre Informationen an zwei weitere Nodes weiter. Da ist zum einen die obere Debug-Node mit der Aufgabe, den empfangenen Zahlenwert in einem speziellen Fenster von Node-RED anzuzeigen, zum anderen haben wir die untere Gauge-Node, die es uns ermöglicht, den Zahlenwert über ein Zeigerinstrument zu visualisieren. Sehen wir uns das Ganze im Detail an. Die TCP-Node für den Empfang des Zahlenwertes ist in der Input-Palette zu finden. Abbildung 5 Die Input-Palette von Node-RED Über einen Doppelkick auf die TCP-Node nach dem Herüberziehen auf die Arbeitsfläche erscheinen die Einstellungen. 6 ESP32 und Node-RED Daten

Abbildung 6 Die TCP-Einstellungen Es ist auffällig, dass hier keine IP-Adresse und nur der erforderliche Port (8088) anzugeben ist. Die IP-Adresse ist durch die des Node-RED-Servers schon gegeben und muss nicht noch einmal explizit angegeben werden. Die Debug-Node befindet sich in der Output-Palette Abbildung 7 Die Debug-Node in der Output-Palette Sie kann Statusinformationen in einem Fenster von Node-RED zur Anzeige bringen und ist u.a. sehr gut für die Fehlersuche zu verwenden. Während des Datenempfangs kann der TCP-Verbindungsstatus sehr gut beobachtet werden. Unterhalb der TCP-Node ist dieser Status gut zu erkennen und wechselt zwischen den beiden hier gezeigten hin und her. Die Anzeige der empfangenen Daten erfolgt im Debug-Reiter von Node-RED, der sich auf der rechten Seite des Node-RED-Fensters befindet. 7 ESP32 und Node-RED Daten

Abbildung 8 Der Debug-Reiter von Node-RED Hier sind Messwert und Zeitstempel zu erkennen. Die Gauge-Node ist natürlich in der Dashboard-Palette zu finden. Abbildung 9 Die Gauge-Node in der Dashboard-Palette 8 ESP32 und Node-RED Daten

Die Konfiguration der Gauge-Node schaut wie folgt aus. Abbildung 10 Die Konfiguration der Gauge-Node Damit die Gauge-Node weiß, in welchen Wertebereich sich die Messwerte befinden, müssen die Grenzen unter Range angegeben werden. Der Analog/Digital-Wandler des ESP32-Picoboards liefert Werte von 0 bis 4095. Um die Gauge im Browser sichtbar zu machen, muss die folgende URL als Adresse eingegeben werden, wobei natürlich die von mir verwendete IP-Adresse des Raspberry PI bzw. des Node-RED-Servers ersetzt werden muss. 192.168.178.27:1880/ui 9 ESP32 und Node-RED Daten

Bei mir schaut das dann wie folgt aus. Abbildung 11 Die Gauge mit dem ermittelten Messwert Wenn jetzt am Potentiometer gedreht wird, ändert sich die Anzeige in der Gauge im Sekundentakt. Frohes Frickeln 10 ESP32 und Node-RED Daten

Das ESP32-Praxisbuch [1] https://www.elektor.de/das-esp32-praxisbuch [2] https://nodered.org/ [3] https://www.elektor.de/iot-programmierung-mit-node-red [4] https://www.erik-bartmann.de/?projekte ESP32_Discovery-Board [5] https://github.com/erikbartmann/elektoresp32/tree/master/addons/nodereddatenversand https://www.erik-bartmann.de/ 11 ESP32 und Node-RED Daten