Forum: Mikrocontroller und Digitale Elektronik ESP32 als Datenlogger


von Christian R. (docr)


Lesenswert?

Hallo zusammen,

Ich bin neu im Programmieren, und habe mir ein ESP32 gekauft um damit 
Daten zu loggen. Konkret möchte ich eine Maschine überwachen, die 
Praktischerweise für die beiden Zustände jeweils ein 24v-Signal ausgibt.
Erfassen möchte ich die Zeiträume der Zustände, also wie lange an den 
Leitern 24v anliegt und wie lange nicht.
Diese Daten würde ich gerne in eine Datenbank schreiben.
Wie eingangs erwähnt, kann ich leider noch nicht auf große Erfahrungen 
im Programmieren zurückgreifen und meine Begabung in dem Bereich ist 
eher mittelmäßig :-)
Würde gerne wissen was ich alles noch für mein Vorhaben brauche, mit 
welcher Sprache ich das ganze programmiere um relativ leicht ans Ziel zu 
kommen und wo ich die jeweiligen Tutorials finde um mich in die 
jeweilige Sprache einzuarbeiten.
Ich bin kein IT-ler, sondern Maschinenbauer, programmiers' mit C in 
Arduino ist keine Aussage mit der ich groß was anfangen kann...
Vielen Dank schonmal für eure Hilfe !

Christian

von ztrewq (Gast)


Lesenswert?

Chris L. schrieb:
> Arduino ist keine Aussage mit der ich groß was anfangen kann...
> Vielen Dank schonmal für eure Hilfe !

Puh, wo soll man da anfangen...

Kauf dir ein Breadboard, Leds, Widerstände, Buttons als Starterset und 
fang mal mit den "Blinky"-Tutorials an, Ampelschaltung etc.

Die Signale teilst du mit einem Spannungsteiler auf 3,3V runter. Kannst 
du den selbst ausrechnen?

Datenbank, hmm. Kennst du dich mit Datenbanken aus?
Wenn ja, dann nimm eine DB deiner Wahl, setze einen DB-Server auf (PC, 
Raspberry, etc.) und schreibe die Daten mit einer passenden 
Schnittstelle vom ESP32 hin. REST würde sich anbieten, da gibt es Libs 
von Arduino, ob es ODBC-Libs o.ä. gibt da bin ich überfragt.

Wenn nein, vergiss es. Zu viele Baustellen auf einmal. Dann beschreib 
lieber was genauer du machen möchtest (Anzahl Datenpunkte, wie 
auslesen), evtl. reicht es aus die Daten auf der Flash im ESP32 
abzulegen.

von Christian R. (docr)


Lesenswert?

Danke für die schnelle Antwort,

Female-Female Jumperkabel, Led's 100Ohm Widerstände und nen Lötkolben 
hab ich auch schon da um diese erste Übung zu absolvieren. (erste Frage: 
Warum braucht man trotz 3,3V nen vorwiderstand für die LED ? )

In Datenbanken habe ich mich jetzt langsam eingearbeitet...
In welcher Form die Daten am Ende vorliegen ist zweitrangig, ich könnte 
sie ja im Nachgang aus z.B. einer Excel oder Csv-Datei in die Datenbank 
schreiben.
Übertragen wollte ich Sie per Wlan.

Es geht um die Betriebsdatenerfassung einer Maschine, und diese 2 
Signale (wann sie ein bzw. aus geschaltet wurden) reichen eigentlich.
Perfekt wäre es noch wenn man mit einem Barcodescanner die Zeiten einem 
Auftrag zuordnen könnte.....

Ich habe für das Projekt mehrere Wochen und den ganzen Tag Zeit :-)

von ztrewq (Gast)


Lesenswert?

Christian R. schrieb:
> erste Frage:
> Warum braucht man trotz 3,3V nen vorwiderstand für die LED ?

Das kannst du selbst googlen, gibt genug Erklärungen im Internet. 
Alternativ: als Maschinenbauer bist du bestimmt in der Lage eine 
Kennlinie zu interpretieren, schau dir das Datenblatt an. Wir können dir 
hier nicht jede Standardfrage durchkauen.

> Übertragen wollte ich Sie per Wlan.

Ich möchte in den Urlaub fahren. Nutzen möchte ich die Straße. Welchen 
Führerschein brauche ich?

Google mal OSI 7 Schichten Modell. Da fehlt noch ein bisschen was über 
dem WLAN, die WLAN to Excel-Lib gibts noch nicht :D

Barcodescanner liefern üblicherweise die Nummer des Codes als 
Tastatureingabe. Für sowas bietet sich Excel an, wenn man nicht richtig 
programmieren kann. Auch wenn mir dieser Tipp gerade zutiefst zuwider 
ist. Excel ist keine Datenbank und alles was mit VBA programmiert wird 
ist zu 99% Müll. Aber solange es eine private Bastelei ist und nicht in 
einem Unternehmen zum Einsatz kommt kann man sich was hinpfuschen...

von Christian R. (docr)


Lesenswert?

Das Ganze soll im Zuge einer Abschlussarbeit in einem Unternehmen zum 
Einsatz kommen :-/
Ich hatte schon eine Lösung mittels Siemens Logo ausgearbeitet, diese 
habe ich schließlich verworfen, da die Datenübergabe nur mit dem 
Logo-Programm, und automatisiert dann nur mit einem anfälligem Makro zu 
realisieren gewesen wäre...

: Bearbeitet durch User
von ztrewq (Gast)


Lesenswert?

Holy shit...

Dann überleg dir erstmal ein vernünftiges Konzept. Du bist schon viel zu 
sehr im Detail. Wie hängen die Barcodes mit den Betriebszeiten zusammen 
und was ist muss-Anforderung und was kann?

Was kann der ESP32 aus deiner Sicht das die Logo nicht kann 
(Rechenleistung ist hier nicht entscheidend)?
Das WLAN Interface?
Hat die Logo Ethernet? Wenn ja, dann stehst du inhaltlich genau vor der 
selben Herausforderung wie mit der Logo. Die Logo ist wenigstens robust 
und Industrietauglich, der ESP32 ist nur Bastelhardware. So etwas baut 
man nicht in ein Produktivsystem mit dem man Geld verdienen muss ein. 
Punkt.

von Udo Lindenzwerg (Gast)


Lesenswert?

Mein Vorschlag
24v -> Esp32 Tasmota -> Mqtt -> Raspberry Pi-> Influxdb -> Grafana

von Christian R. (docr)


Lesenswert?

Die Logo hat ebenfalls das Problem der Datenübergabe, man kann es mit 
dem Access-Tool machen, dann hat man die Daten in Excel in Echtzeit, und 
könnte die sich sicherlich irgendwie schnappen...
Fällt aber raus da das Access-Tool immer jeweils nur mit einer SPS 
kommunizieren kann.
Die Logo hat auch die Möglichkeit, die Daten mittels Datalog auszugeben, 
Programm dazu ist auch ganz schnell gemacht, aber......
Um das Datalog auszulesen muss man zwingend mit der Software arbeiten. 
Dazu war meine Lösung es mittels Makro abrufen zu lassen und dieses in 
der Windows Aufgabenplanung auszuführen.
Die Lösung des automatischen auslesen ist so aber wohl zu unsicher, 
Windows kann da jederzeit zwischengrätschen.
Hinzu kommt dass die Logo zum Auslesen des Datalogger in Stopp gesetzt 
werden muss. Das hat aber zur Folge, dass alle Zähler wieder bei 0 
anfangen, womit die Stückzahlerfassung unzuverlässig wird.
Die Barcodes sollen verwendet werden um die Aufträge den jeweiligen 
Maschinen bzw den Zeiten zuzuordnen. Das geht mit der Sps auch nicht.

Ich dachte ich bekommen von dem ESP32 ein Signal mit Zeitstempel wann da 
an dem Eingang Spannung an liegt, und könnte vllt auch gleich den 
Barcode mit rein schreiben.

Aber anscheinend war es etwas Naiv zu glauben, man könnte das mal eben 
so umsetzen.

Ich bau jetzt mal die Schaltung mit den blinkenden LED's auf, vllt 
bildet sich ja da eine magische innere Verbindung zum ESP aus, und ich 
kriege das doch irgendwie gewuppt :-D


Danke Udo, das schau ich mir morgen als erstes mal an

von Stefan F. (Gast)


Lesenswert?

Warum hast du den ESP32 ausgeguckt?

Da du dich weder mit der Programmierung noch mit Elektronik von 
Mikrocontrollern auskennst, würde ich davon die Finger lassen. Das wird 
sonst ein Fass ohne Boden.

Hast du überhaupt schon einmal programmiert? Wenn nicht, warum dann 
ausgerechnet jetzt? Als Abschlussarbeit würde ich mich dringend darum 
bemühen, etwas zu machen, wo ich mich zumindest ein bisschen auskenne.

Spricht etwas dagegen, Raspberry Pi (oder Ähnliche Mini Computer) zu 
verwenden? Der wäre 20x einfacher zu programmieren und man kann auf jede 
Menge fertige Bibliotheken setzen, z.B. den ODBC Treiber für die 
Datenbank. Das willst du nicht ernsthaft alles selber neu erfinden.

Was die LEDs angeht, die Frage wird so oft gestellt, dass ich dazu einen 
Aufsatz geschrieben habe: http://stefanfrings.de/LED/index.html

von Christian R. (docr)


Lesenswert?

ESP32 wirkte attraktiv weil ich dachte dank Wlan ohne 
Zusatzgerätschaften auszukommen.
Ich hab ja auch Java im Studium gemacht, aber dann auch gemerkt dass mir 
andere Sachen eher liegen.
Die Lösung muss -anscheinend von mir- umsetzbar sein. Hätte mir als 
Maschinenbauer auch eine andere Aufgabenstellung gewünscht.
Aber jetzt steht ja anscheinend die Aufgabe in der Form an.
Im Zweifel fertig werden sag ich immer :-D

von Stefan F. (Gast)


Lesenswert?

Dann setze mal lieber auf den Rapsberry Pi, den kannst du auch in Java 
programmieren. WLAN hat er auch. Und für die Eingänge gibt es praktische 
Produkte wie dieses Boad: 
https://www.horter-shop.de/de/i2c-hutschienen-module/232-bausatz-i2c-digital-input-modul-mit-optokoppler-4260404260851.html

Eventuell reicht es auch, das ganz stupide als Shell Script zu 
implementieren.

von Christian R. (docr)


Lesenswert?

Vielleicht gehe ich wirklich zu sehr ins Detail und sollte erst einmal 
ein umfangreiches Konzept ausarbeiten.

Wenn ich deine Aussage dann richtig interpretiere wäre es 
Zeitverschwendung sich jetzt mit dem EDP32 auseinander zu setzen.

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Wenn ich deine Aussage dann richtig interpretiere wäre es
> Zeitverschwendung sich jetzt mit dem EDP32 auseinander zu setzen.

Ich denke du hast die Zeit nicht. Oder kannst du es dir leisten, ein 
halbes Jahr alleine in das erlernen der Programmiersprache zu stecken? 
Die Verbindung zur Datenbank hast du damit noch lange nicht.

von Jan L. (ranzcopter)


Lesenswert?

Christian R. schrieb:
> Wenn ich deine Aussage dann richtig interpretiere wäre es
> Zeitverschwendung sich jetzt mit dem EDP32 auseinander zu setzen.

sehe ich nicht so - wenn man nicht gerade 2 linke Hände dafür hat, 
dauert es mit Sicherheit keinen Tag, um sich die Arduino-IDE (die btw 
mal für Nichtptogrammierer erfunden wurde) zu installieren, dort 
ESP32-Board zu ergänzen, die Thingspeak-Library zu installieren, und 
eines der mitgelieferten Thingspeak-Beispiele anzupassen.
Bliebe natürlich noch der ‚Technikteil‘ mit der 24V-Erfassung - aber da 
gibt‘s ja zig Vorschläge zum Abkupfern, ich täte Optokoppler nehmen...

von Stefan F. (Gast)


Lesenswert?

Er hat aber "C in Arduino" ausdrücklich ausgeschlossen.

von Christian R. (docr)


Lesenswert?

grundsätzlich ausschliessen kann man ja eigentlich nichts.


Wäre C denn einfach zu lernen ?

von Jan L. (ranzcopter)


Lesenswert?

Stefan ⛄ F. schrieb:
> Er hat aber "C in Arduino" ausdrücklich ausgeschlossen.

passt doch, Arduino ist ja C++ ;-)

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Wäre C denn einfach zu lernen ?

Diese sehr individuelle Frage kannst nur du beantworten nachdem du es 
versucht hast.

Anleitungen dazu wirst du selbst finden.

von usuru (Gast)


Lesenswert?

Es gibt für den ESP32 auch ein Micropython , damit ist die 
Programmierung doch wesentlich vereinfacht 
http://docs.micropython.org/en/latest/esp32/quickref.html

von Christian R. (docr)


Lesenswert?

p2 = Pin(2, Pin.IN)     # create input pin on GPIO2
print(p2.value())       # get value, 0 or 1

ist das nicht schon meine Information ?

von Joachim B. (jar)


Lesenswert?

Christian R. schrieb:
> Wenn ich deine Aussage dann richtig interpretiere wäre es
> Zeitverschwendung sich jetzt mit dem EDP32 auseinander zu setzen.

es ist egal ob du dich mit einem ESP32 vergnügst oder mit dem PI,beide 
haben nur 3,3V an den Ports und vertragen auch nicht mehr!

Der PI kommt sogar mit weniger Strom aus den GPIO und ist viel sensibler 
weil ihm interne Schutzschaltungen fehlen.
Ein ESP Port kann immerhin lt. Datenblatt 12mA liefern der PI sicher nur 
3-16mA die aber freigeschaltet werden müssen lt. einer Publikation, aber 
das hat noch keiner im Kernel gemacht! aber dafür wurden schon verdammt 
viele PI von unwissenden Bastlern geschrottet was man in Foren so liest!
Ich würde dann doch eher mit dem ESP anfangen, ist billiger, braucht 
keine SD die kaputtgeschrieben wird auf der swap und ein RO Dateisystem 
willst du nicht gleich zu Anfang aufspielen.

von Christian R. (docr)


Lesenswert?

erst einmal Danke für die zahlreichen Rückmeldungen !

Ich werde jetzt mal das Blink-Tutorial machen, und mich anschließend auf 
die Suche begeben um heraus zu finden, wie ich die Zustände an 2 
Eingängen überwachen kann (mehr ist es ja schlussendlich nicht).

Bin auch auf die Optokoppler Lösung gestoßen, welche kostengünstigen 
würden sich denn da Anbieten ? Die genaue Funktionsweise von so einem 
Optokoppler ist mir noch nicht so ganz klar. Schaltet der den zweiten 
Stromkreis wenn am ersten Spannung anliegt ?


Bei einigen Maschinen ist kein zweiter Betriebsstundenzähler vorhanden, 
man kann also nicht so ohne weiteres Abgreifen ob das Automatikprogram 
der Maschine läuft oder nicht. Da dachte ich, man könnte so etwas wie 
eine "Stromzange" nehmen, gibt ja so Geräte um Strom zu messen ohne die 
Leitung aufzutrennen. So eine Zange dann um eine Phase der Hauptspindel 
würde Signalisieren wann die Maschine läuft. Das funktioniert Über die 
magnetische Flussdichte glaube ich. Stromwandler werden die mein ich 
genannt. Jedenfalls ist da eine Spule, und je nach Stromstärke liegt 
dann proportional eine (sehr geringe) Spannung an. Kann man auch mit so 
einem mV-Signal einen Optokoppler schalten ?

von Rekorder (Gast)


Lesenswert?

Oh weh...

von Christian W. (orikson)


Lesenswert?

Ganz abgesehen davon, dass ich dir auch eher zum Raspberry Pi raten 
würde, eine ganz andere Frage: Hast du dort, wo dein 
"Datenerfassungs-System" arbeiten wird, überhaupt eine vernünftige und 
stabile WLan Verbindung ohne große Störungen (z.B. schwere Maschinen)? 
ESP32 haben nicht umbedingt eine tolle WLan Antenne, es gibt aber auch 
Typen mit externer Antenne. Nicht dass es schon daran scheitert...

von Philipp K. (philipp_k59)


Lesenswert?

Christian R. schrieb:
> Ich hatte schon eine Lösung mittels Siemens Logo ausgearbeitet, diese
> habe ich schließlich verworfen, da die Datenübergabe nur mit dem
> Logo-Programm, und automatisiert dann nur mit einem anfälligem Makro zu
> realisieren gewesen wäre...

Kann man das nicht bei den neuen Logos auf die SD Schreiben oder sogar 
im Netzwerk verfügbar machen?

von Christian R. (docr)


Lesenswert?

Es handelt sich bei diesem Versuch ja erst einmal um eine 
Machbarkeitsstudie, sollte sich heraus stellen dass noch z.B. weitere 
Wlan Router benötigt werden dann ist das halt teil der Lösung. Bei der 
Sps-Lösung hätten ja auch Lan kabel gezogen werden müssen.

Die neuen Logos haben die sogenannte Datalog-Funktion, und die dann 
erstellte Csv-Datei lässt sich über die Logo Software auslesen, oder auf 
die SD-Karte schreiben.
Mein bisheriger Stand ist, dass Daten auf der SD Karte nicht mehr über 
das Netzwerk zu erreichen sind - d.h. die SD-Karte muss entnommen und 
dann ausgelesen werden. Hat mich auch sehr überrascht.
Und da die SPS zum Auslesen auf das Programm angewiesen ist, und dafür 
die Logo angehalten werden muss, was zur Folge hat dass alle Zähler 
gelöscht werden, fällt diese Lösung leider raus.

von Rekorder (Gast)


Lesenswert?

Warum fühlen sich eigentlich in letzter Zeit ständig Maschinenbauer 
berufen in ihren Abschlußarbeiten Elektronik und Programmierprojekte zu 
machen. Hier fehlt es offensichtlich wieder an jeglichen Grundlagen.

Deine Texte lesen sich für uns ungefähr so:
Ich will einen Kran bauen aber ich mag mich nicht mit Metallbearbeitung 
befassen. Ist ein M6 oder ein M8 Gewinde besser geeignet, ich möchte es 
in einen Holzbalken schneiden. Ich wollte Balsaholz nehmen weil das so 
schön leicht ist. Tragen soll mein Kran 2 Tonnen. Ich hab gehört das 
kann man mit FEM berechnen. Habt ihr einen Link zu einem Tutorial das 
mir in einer Stunde FEM erklärt? So schwer kann das ja nicht sein, ist 
ja nur ein Kran den ich berechnen will, sowas gibt es ja schon.

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Bin auch auf die Optokoppler Lösung gestoßen, welche kostengünstigen
> würden sich denn da Anbieten ?

Du hast ganz andere Sorgen, als dir um die paar Cent Preis-Unterschied 
Gedanken zu machen. Nimm einfach den erst besten, der dir über den Weg 
läuft. Zum Beispiel PC817.

> Die genaue Funktionsweise von so einem Optokoppler
> ist mir noch nicht so ganz klar.

Muss man dir alles vorkauen? https://de.wikipedia.org/wiki/Optokoppler

> Da dachte ich, man könnte so etwas wie
> eine "Stromzange" nehmen

Stopp mal bitte. Eins nach dem anderen. Du kannst nicht auf 5 Hochzeiten 
gleichzeitig tanzen.

von Christian R. (docr)


Lesenswert?

Ja das kann ich mir gut vorstellen :-D
Hätte ich die Wahl würde ich mich auch lieber mit Dingen beschäftigen wo 
ich Talent zu habe oder zumindest ein fundiertes Grundwissen vorhanden 
ist.

Jetzt bleibt mir nichts anderes übrig als mich da irgendwie durch zu 
wurschteln.

Seh ich das richtig dass ich für Python das ESP auf eine andere Firmware 
flashen muss und mich so von Arduino komplett verabschiede ?

Komme schon in dem LED-Blink Tutorial nicht weiter; in manchen wird von 
erforderlichen Treibern berichtet, die meisten gehen da garnicht drauf 
ein.
Jedenfalls seh ich das ESP mit und ohne Treiber nicht im Gerätemanager, 
wahrscheinlich habe ich ein nicht voll belegtes Micro-USB Kabel 
erwischt....
Geht ja schon gut los

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Seh ich das richtig dass ich für Python das ESP auf eine andere Firmware
> flashen muss und mich so von Arduino komplett verabschiede ?

Ja.

von Christian R. (docr)


Lesenswert?

Mit dem richtigen Kabel klappts dann auch mit der Verbindung.

Habe den Code aus diesem Tutorial eingefügt
https://smarthome-blogger.de/tutorial/esp32-tutorial/

2 Abweichungen:

-ich musste den Reset-Taster zum connecten nicht drücken

-nach erfolgreichem Übertragen des Programms leuchten beide LED's 
durchgängig. Hm.

Dann den Code dieses Tutorials eingefügt
https://www.mikrocontroller-elektronik.de/nodemcu-esp8266-tutorial-wlan-board-arduino-ide/
mit der Rückmeldung

'D0' was not declared in this scope
Hm.

Aus diesem Tutorial
https://steemit.com/esp32/@armageddit/einfuehrung-2-blinken-der-onbord-led
Beispieldatei Blink aufgerufen, befehl int LED_BUILTIN = 2; noch 
eingefügt und die Onboard-LED leuchtet wie gewünscht :-)

Aus erstem Link const int greenLedPin = 22; übernommen und in 
Beispiel-Datei eingefügt und die angeschlossene LED blinkt wie sie soll.

von Rekorder (Gast)


Lesenswert?

Ohje.

Du hast folgende Themenblöcke zu bewältigen (mindestens auf 
Bastelniveau):
- Grundlagen der E-Technik
- Programmieren lernen
- Grundlagen Mikrocontroller / Arduino
- Datenübertragung über TCP/IP
- Grundlagen Datenbanken

Das kann man nicht über einen Thread im Forum vermitteln, das füllt ein 
ganzes Semester an Vorlesungen. Rechne bei deinem Vorwissen - für jedes 
Thema! - mal zwischen 3 und 12 Wochen Vollzeit nur für die Einarbeitung. 
Dann bist du auf einem Stand mit dem du vielleicht die Aufgabe irgendwie 
erfüllen kannst. Murks wird es am Ende trotzdem sein.

Also, vergrab dich jetzt mal ein paar Wochen in Webseiten und Bücher und 
dann komm wieder und stelle deine übrigen Fragen.

von Christian R. (docr)


Lesenswert?

Ich trete hier ja nicht an euch mit einer full-service Erwartungshaltung 
heran.

Aber anscheinend gibt es hier doch Leute die es ganz interessant finden 
und Spass daran haben mir mit dem ein oder anderen Tipp weiter zu 
helfen.

Mir ist schon bewusst dass ich nicht in ein paar Tagen über die 
Kenntnisse verfüge um mir zu jeder Problematik ein Programm aus dem 
Ärmel zu schütteln, aber ich will ja auch nicht in 2 Wochen zum 
Consultant werden.
Es geht um das Lesen und Weitergeben von 2 inputs, da bin ich der 
Meinung dass man es mit Lernbereitschaft, Zeitaufwand und etwas Hilfe 
von erfahrenen Leuten schon irgendwie hinbekommen kann. Und - es ist 
jetzt auch nicht der Fall dass ich groß die Wahl hätte.
Dass ich mich jetzt als Maschinenbauer mit einer artfremden 
Aufgabenstellung anfreunde hat auch nicht zuletzt damit zutun dass man 
in dieser Situation froh sein kann, wenn man überhaupt ein Unternehmen 
findet, was jetzt einen Praktikanten bespassen möchte.
Also probier ich jetzt mit Micropython irgendwie ein Signal in welcher 
Form auch immer am Rechner ankommen zu lassen und seh dann weiter.
Und ja, auf die Datenbankgeschichte freu ich mich natürlich auch schon 
gewaltig :-/

von Rekorder (Gast)


Lesenswert?

Mein Tipp:
Nimm eine Dokumenten-DB, z. B. MongoDB

Da hast du benutzfreundliche Schnittstellen, keine Lizenzkosten und 
musst dich erstmal nicht so im Detail um Themen wie Datenbankstruktur 
und Indizies kümmern. Eine relationale DB wäre technisch wohl einen Tick 
besser geeignet für deinen Fall, haben aber auch höhere Einstiegshürden.

von bingo (Gast)


Lesenswert?

Ich hab mal schnell per USB einen ESP32 mit Micropython an meinen PC 
angeschlossen und ein Terminalprogramm gestartet (hier minicom, der 
ESP32 hängt mit 115200 Baud an /dev/ttyUSB1, das geht aber mit 
Windows-Terminalprogramm genauso, nur musst Du halt COM1: COM2: etc 
benutzen). Nach 1x <enter> drücken, kommt der Python-Prompt >>>
1
Willkommen zu minicom 2.7.1
2
3
>>> import time
4
>>> from machine import Pin
5
>>> p2 = Pin(2, Pin.OUT)
6
>>> while 1:
7
...     p2.on()
8
...     time.sleep(1)
9
...     p2.off()
10
...     time.sleep(1)

Die blaue LED blinkt 1 Sekunde lang, dann 1 Sekunde aus, dann 1 Sekunde 
an ...

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Es geht um das Lesen und Weitergeben von 2 inputs, da bin ich der
> Meinung dass man es mit Lernbereitschaft, Zeitaufwand und etwas Hilfe
> von erfahrenen Leuten schon irgendwie hinbekommen kann.

Es gibt da nur zwei Möglichkeiten:

a) Du lernst die Grundlagen und schreibst das Programm selbst
oder
b) Du lässt es machen und stehst dann auch dazu.

Es geht um viel mehr als nur das Lesen von zwei Inputs. Es geht nämlich 
darum, diese zuverlässig in einem sinnvollen Format in eine noch nicht 
genannte Datenbank zu übertragen. Und das ganze muss auch irgendwie 
getriggert werden, z.B. über einen Timer. Der programmiert sich auch 
nicht von selbst.

Wie man Eingänge liest, hast du bereits in einem Tutorial gefunden. 
Jetzt musst du den nächsten Schritt gehen, also entweder die Sache mit 
der Datenbank oder dem Timer. Ich würde den Timer zuerst programmieren.

von bingo (Gast)


Lesenswert?


von Dr. MCU (Gast)


Lesenswert?


von Christian R. (docr)


Lesenswert?

häng gerade noch an den Zusatzaufgaben von

https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/projekte-mit-micropython-und-dem-esp8266-esp32-teil-1

habe das Gefühl dass irgendwas mit meinem esp32 nicht stimmt.

button=Pin(5,Pin.IN)

und obwohl an Pin5 nichts anliegt ist

button.value() = 1

Dies hat zur Folge dass oben aufgeführtes Programm bei mir auch ohne den 
10k Widerstand funktioniert, ich also mit dem Knopf einfach nur Masse 
auf Pin 5 Schalte und die Lampe blinkt. Kann ja nicht so gewollt sein.

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> obwohl an Pin5 nichts anliegt ...
> Kann ja nicht so gewollt sein.

Doch, das muss so sein.

Ein Pin an dem "nichts" anliegt hat eine zufällige Spannung. Dass kann 
HIGH oder LOW sein oder ständig wechseln, denn offene Eingänge sind 
sowohl für statische Ladungen als auch für Radiowellen äußerst 
empfänglich.

von Christian R. (docr)


Angehängte Dateien:

Lesenswert?

Danke für die schnelle Antwort,
ich bin davon ausgegangen dass ein Eingang = 0 ist solange nichts 
anliegt...

Das Programm läuft bei mir so mit der Schaltung im Anhang.

Stefan ⛄ F. schrieb:
> Dass kann
> HIGH oder LOW sein oder ständig wechseln

Also hat kein Eingang den ich nicht Erde ein gesichertes false ?

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Also hat kein Eingang den ich nicht Erde ein gesichertes false ?

Ich verstehe diesen Satz nicht.

Wie gesagt haben offene Eingänge keine definierte Spannung. Da ist alles 
möglich.

Deswegen benutzt man Taster immer in Kombination mit einem Pull-Up oder 
Pull-Down Widerstand. Manche Chips haben das intern, per Software 
einstellbar. Ob das beim ESP32 so ist, weiß ich nicht.

von John Doe (Gast)


Lesenswert?

Christian R. schrieb:
> button=Pin(5,Pin.IN)
1
button=Pin(5,Pin.IN,Pin.PULL_UP)

von John Doe (Gast)


Lesenswert?

Pullups sind aber nicht bei jedem Pin dran, z.B. Pins 34-39 haben keine.
Also Datenblatt lesen.

von Stefan F. (Gast)


Lesenswert?

Außerdem sind die internen Pull-Up Widerstände für zuverlässige Funktion 
und Langlebigkeit der Taster zu hochohmig. Da muss mehr Strom fließen, 
typischerweise 1 - 10 mA.

von Christian W. (orikson)


Lesenswert?

Christian R. schrieb:
> ich bin davon ausgegangen dass ein Eingang = 0 ist solange nichts
> anliegt...
>
> Also hat kein Eingang den ich nicht Erde ein gesichertes false ?

Das wären dann die Grundlagen der Elektrotechnik, die oben genannt 
wurden. Pull-Up- oder Pull-Down-Widerstand wäre hier hilfreich.

Bitte verabschiede dich in dem Zusammenhang auch vom Ausdruck "erden". 
Das ist nicht zwangsläufig das gleiche wie das in diesem Fall nötige 
"auf GND hängen" bzw. "auf ein festes Potential legen"

von Christian R. (docr)


Angehängte Dateien:

Lesenswert?

Ich habe das mal so aufgebaut, wie ich mir einen Pulldown-Widerstand 
vorstelle, allerdings funktioniert es erst wenn ich den Widerstand von 
10k auf 7k ohm runter drehe

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Ich habe das mal so aufgebaut

Ich sehe da keine Beschriftung an dem ESP Board, das ist sehr 
hinderlich.

Zeichen lieber einen Schaltplan, anstatt diesen Fritzing Scheiß - gerne 
mit Bleistift auf Papier und dann abfotografieren.

Nach den Unterlagen die mir vorliegen, hast du den Taster zwischen den 
Enable-Eingang GPIO16 geklemmt. Und dein 10kΩ Widerstand geht an GPIO23.

Das ist schon so sinnfrei, da kann man nicht einmal erahnen, was 
beabsichtigt war.

Du solltest dich vorher mal mit deinem Board befassen. Und zwar nicht 
nur mit der Pinbelegung, sondern auch mit den besonderen Eigenschaften 
der Pins und wie diese auf dem Board beschaltet sind. Einige haben 
nämlich auf dem Board bereits Pull-Up bzw. Pull-Down widerstände. Und 
einige müssen beim Einschalten/Reset einen ganz bestimmten Pegel haben, 
damit das Board überhaupt startet. Einige sind beim Start zeitweise als 
Ausgang aktiv.

Und noch was: Wenn ein Aufbau mit Mikrocontroller nicht wie gewünscht 
funktioniert, kann das auch am Programm liegen. Das solltest du zeigen. 
Dazu gehört eine Beschreibung, was du erwartet hast und was stattdessen 
passiert.

In deinem Fall ist offensichtlich, dass man auch die Spannungen an den 
betroffenen Pins messen kann, also sollte man das auch tun. Denn wenn 
die Spannungen schon nicht stimmen, kann die Software nicht 
funktionieren - egal wie perfekt sie ist.

von Christian R. (docr)


Angehängte Dateien:

Lesenswert?

Pin 5 hängt über den Widerstand an GND, und der Taster schaltet 3v 
direkt auf den Eingang 5.
Hier das Programm

from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
button=Pin(5,Pin.IN,Pin.PULL_DOWN)
while True:
    taste = button.value()
    if taste:
        print (taste)
        i = 0
        while i <=10:
            led.value(not led.value())
            sleep(0.5)
            i += 1

Ohne die Funktion Pin.PULL_DOWN muss ich den Widerstand auf 7k Ohm 
runter drehen damit es wie gewünscht funktioniert (Wenn Taster gedrückt 
soll er anfangen zu blinken)
mit Pin.PULL_DOWN kann ich den Widerstand sogar noch hoch drehen bis 17k 
Ohm und es funktioniert bis dahin.
(nicht funktionieren heisst in meinem fall es blinkt durchgehend)

von Christian R. (docr)


Lesenswert?

sch**** es lag an einer Lötstelle,

ich hab noch kein breadboard, sry.

Sehr schön, dass hat mich über 2 std gekostet :-D

Jetzt funktioniert es wie es soll.

: Bearbeitet durch User
von Rekorder (Gast)


Lesenswert?

Nächster Tipp:

Kümmere dich aus eigenem Interesse um eine ordentliche Codeformatierung, 
sprechende Variablennamen und korrekte Einrückung. Sonst verstehst du 
deinen Code bald selbst nicht mehr.

Fürs Forum gibt es übrigens Code Tags damit der Code ordentlich 
dargestellt wird.

von Andreas M. (amesser)


Lesenswert?

Darüber bin ich auch schon gestolpert. Bei diesem ESP32 Board ist GPIO5 
auf dem Board mit einem 10k Pull-Up an +3.3V geklemmt.
D.h. Du hast effektiv an GPIO5 einen Spannungsteiler aus:

- dem on-board 10k Widerstand nach 3.3V
- deinem Pull-Down auf dem Bread-Board gegen GND
- (wenn aktiviert dem internen Pull-Down von xx kOhm)

Deswegen funktioniert es erst wenn dein Pull-Down kleiner als ein 
bestimmter Wert ist...

Benutze besser einen anderen GPIO ( Auch nicht GPIO2, daran hängt die 
On-Board LED)

Der Schaltplan zu dem Board ist hier: 
https://docs.zohopublic.com/file/kohvpddd1cff937ec4de5a828ac624e60a74d

: Bearbeitet durch User
von Christian R. (docr)


Lesenswert?

Andreas M. schrieb:
> Deswegen funktioniert es erst wenn dein Pull-Down kleiner als ein
> bestimmter Wert ist...

Ich bin jetzt etwas ins straucheln gekommen, nachdem ich das phänomen 
hatte, dass es nur mit 7k ohm funktioniert, wollte ich mal die 
spannungen messen - und zack ging es auf einmal.
Ich habe auch ein anderes board, bei mir ist Pin 2 die interne LED.
Hab jetzt den PIN.IN mal auf 21 gelegt, funktioniert auch wie es soll.



Jetzt weiss ich warum es auf einmal funktioniert wie es soll:

der Pin.in hat auch ohne über einen Widerstand an GND zu sein auf ein 
mal den Wert False 0.o

Das war die ganze zeit vorher nicht so.

von Rekorder (Gast)


Lesenswert?

Google: Mosfet, schwebendes Potential am Gate

von Peter D. (peda)


Lesenswert?

Christian R. schrieb:
> Diese Daten würde ich gerne in eine Datenbank schreiben.

Dann brauchst Du ein OS, welches eine Datei anlegen kann und deren 
Inhalt ein Server über ein Medium auslesen kann, wärend natürlich 
weiterhin in die Datei geschrieben wird. Jede Änderung der Signale legt 
dann den Timestamp und die Art der Änderung als eine Zeile ab. Der 
Server liest sie dann über ein Script in das Datenbankprogramm ein.
Ein Raspberry Pi klingt dafür als geeignet. Die Signale könnte man über 
Spannungsteiler über die RS232 erfassen, z.B. über CTS und DSR. Der Job 
kann dann als Script implementiert werden.
Man müßte außerdem die Synchronisation absichern, damit nicht Einträge 
doppelt erfolgen oder verloren gehen.

Für einen Anfänger ohne jegliche Grundlagen dürfte das aber mehrere 
Nummern zu komplex werden. Ich würde daran bestimmt auch mehrere Tage zu 
knabbern haben.

von Christian R. (docr)


Lesenswert?

jetzt geht garnichts mehr.
Im pycraft wird der Comport nicht mehr angezeigt, ich seh das Board auch 
nicht mehr im Geräte-Manager.
Wenn ich die EN-Taste drücke leuchtet die rote led, sonst geht nichts 
mehr.

Zwischen GND und 3v3 messe ich 1,45v, wenn ich die EN Taste drücke 2,5v

: Bearbeitet durch User
von Christian R. (docr)


Angehängte Dateien:

Lesenswert?

...nachdem ich ja das board gestern geschrottet hatte,
habe ich direkt ein neues bestellt. Ein baugleiches.
Und noch ein Breadboard und diverse Widerstände damit ich mal auf einen 
übersichtlichen Aufbau und weg von meinen Drehwiderständen komme.

Oh Wunder: es kam alles heute schon an.

Wie immer: passt nicht. Breadboard hat die falsche Größe, und anstatt 
eines ESP32 haben se mir ein ESP8266 geschickt. Herzlichen Glückwunsch.

Nach 10min ist meine Angepisstheit auf unter 80% gesunken, und ich 
dachte mir ok, jetzt reparierst du das alte ESP32.

Ich wusste ja das was mit der Spannung nicht passt, also habe ich auf 
doof beim ESP8266 5v-Suchen gespielt, und dann am ESP32 verglichen. Ich 
bin fündig geworden; an dem schwarzen Bauteil mit einem breitem Abgang 
nach links, und 3 Abgängen nach rechts kamen popelige 3 Volt an anstatt 
der 5v beim ESP8266.

Nach kurzem Versuch mit dem normalem Lötkolben hab ich dann aufgegeben 
eine ordentliche Brücke einzulöten.

Ich wollte eine passendere Stelle haben, wo man besser pfuschen kann. 
Und die habe ich dann gefunden: direkt über dem Micro-Usb Anschluss. 
Also ein Stück Draht dort hingelegt wie im Bild, so dass das erfreuende 
dümdüm kommt, und dann kurz mit dem Lötkolben den Draht angehustet.

Somit bin ich wieder im Rennen.

Da ich die Zeit ohne Hardware mit Suchen verbringen konnte, bin ich auf 
ein Tutorial gestoßen was meinem Ziel sehr nahe kommt:

https://randomnerdtutorials.com/esp32-esp8266-plot-chart-web-server/

Also wieder weg von Micropython, und mit Arduino anfangen.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Christian R. schrieb:
> ...nachdem ich ja das board gestern geschrottet hatte,
> habe ich direkt ein neues bestellt. Ein baugleiches.

> anstatt eines ESP32 haben se mir ein ESP8266 geschickt.

Ich muss nochmal auf meinen Hinweis zurück kommen, dass die Pinbelegung 
deines Boardes völlig anders ist, als deine Fritzing Zeichnung 
behauptet. Wenn man das alles Wild durcheinander wirft, muss es früher 
oder später kaputt gehen!

Vielleicht wird es dir klar wenn du mal deine eigenen Bilder direkt 
nebeneinander siehst. Achte auf die Beschriftung der Pins!

von Christian R. (docr)


Angehängte Dateien:

Lesenswert?

Ja, da habe ich schon drauf geachtet.

Er hat in dem Tutorial halt ein anderes, und ich konnte so schön mit 
paint in seinem bild rumschieben.

Ich glaube ich hatte es kaputt gemacht indem ich mit nem Fliegenbein GND 
und VIN kurz geschlossen habe.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Er hat in dem Tutorial halt ein anderes, und ich konnte so schön mit
> paint in seinem bild rumschieben.

Wenn du hier nach einem Plan von deinem Aufbau gefragt wirst, dann 
wollen wir den Plan von deinem Aufbau sehen, nicht irgend etwas 
gephotoshopptes, dass ungefähr ein bisschen ähnlich ist!

Das gleiche gilt für Quelltexte.

Mit deiner Leichtfertigkeit hast du unsere Zeit vergeudet und unsere 
Hilfsbereitschaft missbraucht. Mach das noch ein paar mal, dann hilft 
dir niemand mehr.

Wenn es denn mit dem ESP8266 Board weiter geht, fange besser einen neuen 
Thread an. Und stelle da gleich von Anfang an Fotos, Quelltext und 
Schaltplan zur Verfügung.

von Fred (Gast)


Lesenswert?


von Christian R. (docr)


Lesenswert?

Stefan ⛄ F. schrieb:
> dann
> wollen wir den Plan von deinem Aufbau sehen

sry, ich hatte es einfach an meinem Board an die gleich bezeichneten 
pins angeschlossen, mir war nicht bewusst dass es trotzdem ein 
Unterschied sein kann.

Derzeit versuche ich mir einen Webserver mittels virtueller maschine 
einzurichten, einfach windows server auf vmware zu installieren 
funktioniert schonmal nicht. Hab nach wie vor die Idee die 
Kommunikationswege aus diesem Tutorial zu nutzen:
https://randomnerdtutorials.com/esp32-esp8266-plot-chart-web-server/



Fred schrieb:
> Erster! Fertig :-)

Siehe meinen Kommentar unter dem Projekt vom 14.4. ;-)

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Derzeit versuche ich mir einen Webserver mittels virtueller maschine
> einzurichten, einfach windows server auf vmware zu installieren
> funktioniert schonmal nicht.

Da musst du dich mit der Netzwerk-Konfiguration befassen. Deine VM muss 
von außen erreichbar gemacht werden, dass ist in der 
Standard-Konfiguration nicht.

von Joachim B. (jar)


Lesenswert?

Christian R. schrieb:
> sry, ich hatte es einfach an meinem Board an die gleich bezeichneten
> pins angeschlossen

ach und DU denkst DU bist fehlerfrei?
Wie sollen Andere deine Arbeit beurteilen wenn DU DEINE ARBEIT nicht 
zeigst?

Wenn man Hilfe sucht weil Eigenes nicht funktioniert dann zeigt man doch 
nicht Fremdes was möglicherweise funktionieren könnte!

Zeigt man Fremdes lautet die Frage: "kann das funktionieren?"

Ich möchte jetzt nicht so negativ rüberkommen wie es sich liest, aber 
ich wundere mich schon etwas, vor allem wenn jemand Abschlußarbeit 
schreibt.

Beim 4 oder mehr Augenprinzip geht es doch gerade darum mehr Augen über 
die zu prüfende Arbeit schauen zu lassen und nicht irgendeine andere 
Arbeit.

: Bearbeitet durch User
von Christian (Gast)


Lesenswert?

Ich habe doch exakt diese schaltung aufgebaut, also an den jeweiligen 
Pins verbunden.
Und dann die Schaltung mit Paint an dem Board skizziert, und die 
Verbindungen an den Stellen eingezeichnet wo dieses Board halt die Pins 
hat. Hatte nur die Vorlage eines Schaltplans mit halt diesem Board, und 
dadrin hab ich ja mit Paint rumgefuscht.
Ich hab dieses Schaltplanprogramm ja nicht.
Ein Foto von meinem Kabel Wirrwarr hätt auch nicht weitergeholfen.
Nächste mal zeichne ich das direkt ordentlich mit meinem Board.

Windows Server hab ich jetzt auf VMware zum laufen bekommen. Nächste 
Riesen Baustelle das korrekt einzurichten.

von Christian R. (docr)


Lesenswert?

Ich bin einer Lösung immer noch nicht näher gekommen.

Es gibt auch kein einziges Tutorial wo man Werte in eine Datenbank 
schreibt, ohne dass man reichlich firlefanz benötigt;
eine eigene Domäne, Raspberry Pi als Server und und und.
Für mich völlig unverständlich wie es möglich ist mit dem ESP32 eine 
eigene Webseite zu erstellen, wo Graphen usw abgebildet werden um die 
Werte grafisch darzustellen, aber es so unglaublich schwer sein soll die 
Daten einfach lokal zu speichern.
Von dem Gedanken, direkt in eine Datenbank zu schreiben, bin ich ja 
schon weg; es reicht mir ja wenn die Daten in egal welcher Weise 
gespeichert werden.

Wäre da für Tipps echt Dankbar.

Bitte nicht in der Form "Nimm ThingSpeak API auf einem webserver der auf 
einem Raspberry Pi läuft und hol mit Node-RED per MQTT die Daten"

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Es gibt auch kein einziges Tutorial wo man Werte in eine Datenbank
> schreibt, ohne dass man reichlich firlefanz benötigt;

Aber der Fred hat dir doch so eine Anleitung empfohlen!
Hier nochmal der Link: 
http://steinlaus.de/super-simpler-esp32-nach-mysql-datenlogger/

Dafür brauchst du keine Domäne, sondern eine Netzwerk-Verbindung 
zwischen dem ESP und der DB-Server.

Einfacher kann es mit einer SQL Datenbank nicht gehen. Wenn du das so 
nicht willst, solltest du vielleicht mal präzisieren, was du unter einer 
Datenbank verstehst.

Niemand hält dich davon ab. Daten in eigene Arrays/Strukturen direkt auf 
dem ESP Modul im RAM oder FLASH zu speichern. Und niemand hält dich 
davon ab, daraus Grafik zu generieren. Ich persönlich finde dazu SVG 
interessant. Um SVG zu erzeugen, muss man im Grunde genommen nur Texte 
(Kommandos) aneinander Reihen, denn nichts anderes ist eine SVG Datei. 
Aber du kannst das Erstellen der Grafiken (aus Rohdaten) natürlich auch 
einem Browser-Seitigen Javascript mit dem Canvas Objekt überlassen.

Es ist nur so: Eine gewisse Komplexität geht von deinem Vorhaben aus. 
Früher hätte man Balken aus Block-Zeichen auf einem LCD ausgegeben. Aber 
in Zeiten wo jedes Kind mit Smartphone in der Tasche aufwächst, will man 
es natürlich schicker haben.

von Gatson (Gast)


Lesenswert?


von Ztrewq (Gast)


Lesenswert?

Dieser Thread ist echt Gold :D

von Stefan F. (Gast)


Lesenswert?

Vielleicht sollte man noch erwähnen, dass der ESP Module keine Internet 
Server sind.

Solche embedded Systeme gehören nicht ins Internet! Die bieten Nichtmal 
ansatzweise das Sicherheitsniveau, dass unter Linux in den vergangenen 
30 Jahren aufgebaut wurde.

Also ist der Umweg über einen separaten Webserver durchaus vernünftig.

von Andreas M. (amesser)


Lesenswert?

Stefan ⛄ F. schrieb:
> Solche embedded Systeme gehören nicht ins Internet! Die bieten Nichtmal
> ansatzweise das Sicherheitsniveau, dass unter Linux in den vergangenen
> 30 Jahren aufgebaut wurde.

Aha, wie kommst Du darauf? In Zukunft sollen sogar ganze Fabrikanlagen - 
das sind auch alles Embedded Systeme - ans Internet oder zumindest in IT 
Netze gehangen. Linux kann da gar nicht die Echtzeitanforderungen 
erfüllen, da sind Jitterzeiten im niedrigen Einstelligen µs Bereich 
angesagt.

Und was genau hat das mit ESP32 zu tun? Das ist ne reine 
Softwaregeschichte, mann muss ja nicht das ESP-IDF benutzen.

von Stefan F. (Gast)


Lesenswert?

Andreas M. schrieb:
> Aha, wie kommst Du darauf?

Weil ich zufällig beide Welten programmiere und Presse-Meldungen zum 
Thema verfolge.

Beispiele: 
https://www.security-insider.de/so-leicht-ist-es-ein-iot-geraet-zu-hacken-a-660683/
https://www.sueddeutsche.de/digital/it-sicherheit-hacker-wasserwerk-florida-1.5205113
https://www.golem.de/news/smart-lock-forscher-hacken-tuerschloesser-mit-einfachen-mitteln-1907-142294.html

Ich habe nichts dagegen, Mikrocontroller zu vernetzen. Aber bitte fernab 
vom Internet. Sie sollten auch nicht von Arbeitsplatz Rechnern aus 
erreichbar sein, die Zugang zum Internet haben.

> Und was genau hat das mit ESP32 zu tun? Das ist ne reine
> Softwaregeschichte, mann muss ja nicht das ESP-IDF benutzen.

Das hat damit zu tun, dass der TO Empfehlungen gelesen hat, seinen ESP32 
samt eigener Domäne ins öffentliche Internet zu hängen. Davon rate 
dringend ich ab (auch ohne Domäne). Du hast recht, dass das eine Frage 
der Software ist. Der TO wird nicht imstande sein, seinen ESP32 wirklich 
sicher auszulegen. Auch mir selbst traue ich so etwas nicht zu. Die 
begrenzten HW Ressourcen und Bibliotheken setzen dem schlicht zu enge 
Grenzen.

von Stefan F. (Gast)


Lesenswert?


von Christian R. (docr)


Lesenswert?

Stefan ⛄ F. schrieb:
> Sie sollten auch nicht von Arbeitsplatz Rechnern aus
> erreichbar sein, die Zugang zum Internet haben.

Ja, es spricht nichts dagegen das ganze als autarkes System mit einem 
Ausgaberechner als eigenes Netzwerk laufen zu lassen.

Muss man sich halt die Daten einmal in der Woche mit nem Stick rüber 
holen, um sie in die Datenbank, mit der geplant wird, zu integrieren.

Ich peppe mein dürftiges Grundwissen jetzt hiermit etwas auf

https://plantprogrammer.de/esp32-rfid-and-mqtt/

RFID zum Zuordnen der Daten ist ja auch nicht uninteressant.

von Stefan F. (Gast)


Lesenswert?

Christian R. schrieb:
> Ja, es spricht nichts dagegen das ganze als autarkes System mit einem
> Ausgaberechner als eigenes Netzwerk laufen zu lassen.

Kommt halt immer auf die Anwendung an. Die Feuchtigkeit meiner Blumen 
darf ruhig gehackt werden. Aber wenn diese ESP ferngesteuert missbraucht 
werden, um meine ABUS Schließanlage von innen heraus anzugreifen, dann 
ist Schluss it lustig.

von Andreas M. (amesser)


Lesenswert?

Stefan ⛄ F. schrieb:
> [...]
> Ich habe nichts dagegen, Mikrocontroller zu vernetzen. Aber bitte fernab
> vom Internet. Sie sollten auch nicht von Arbeitsplatz Rechnern aus
> erreichbar sein, die Zugang zum Internet haben.

Witzig, Siemens und Konsorten sehen das Ganz anders. Nicht zum Spaß 
verpassen die Ihren SPSen Stück für Stück MQTT oder OPCUA. Und unsere 
Kunden wollen in Ihren Sensoren/Aktoren auch immer öfter MQTT neben der 
eigentlichen Funktionalität haben. Wir haben auch Projekte wo am 
Netzwerk der Mikrocontroller and an dem dann ein Linux...

Stefan ⛄ F. schrieb:
> dringend ich ab (auch ohne Domäne). Du hast recht, dass das eine Frage
> der Software ist. Der TO wird nicht imstande sein, seinen ESP32 wirklich
> sicher auszulegen. Auch mir selbst traue ich so etwas nicht zu. Die

Ich dachte dem Ingschenör ist nichts zu schwör. Aber ja, das Wissen geht 
in Deutschalnd leider immer weiter verloren.

Stefan ⛄ F. schrieb:
> begrenzten HW Ressourcen und Bibliotheken setzen dem schlicht zu enge
> Grenzen.

Das ist kein Hinderniss. Bei Profinet gibt es z.B. klare Anforderungen 
was so ein Gerät an "DoS" aushalten muss bevor es versagt. Bei Siemens 
kannst Du z.B. mit 100% Netzlast auf die Geräte einprügeln, das 
interessiert die nicht die Bohne, der Automatisierungsbus läuft da 
einfach weiter. In den Geräten sind auch nur ARM Kerne in einer 
Mikrocontroller Architektur. (Wir schaffen das bei unseren Geräten nicht 
ganz)

von Stefan F. (Gast)


Lesenswert?

Andreas M. schrieb:
> Witzig, Siemens und Konsorten sehen das Ganz anders.

Die produzieren halt, was die Kunden wollen. Vernetzung zu ermöglichen 
ist relativ einfach. Dies sicher zu machen bzw. extern abzusichern ist 
der schwierige Teil.

> Und unsere Kunden wollen in Ihren Sensoren/Aktoren auch immer
> öfter MQTT neben der eigentlichen Funktionalität haben.

Das ist unabhängig davon, wie direkt oder indirekt das ganze am Internet 
hängt.

von Ztrewq (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
>> Witzig, Siemens und Konsorten sehen das Ganz anders.
>
> Die produzieren halt, was die Kunden wollen. Vernetzung zu ermöglichen
> ist relativ einfach. Dies sicher zu machen bzw. extern abzusichern ist
> der schwierige Teil.

Ich bin mir sicher, hinsichtlich Embedded Security kann man an den TO 
(der weder ohmsesch Gesetz noch das OSI Modell kennt) die gleichen 
Maßstäbe anlegen wie an Siemens :D

von Christian R. (Gast)


Lesenswert?

kleines Update:
Die Datenerfassung funktioniert.
ESP32 wird mit Optokoppler an den Betriebsstundenzähler angeschlossen, 
und published die Änderungen via MQTT. Ein eigens dafür als Server 
fungierender Laptop ist im selben Wlan Netzwerk, und empfängt die 
Nachricht via iobroker. Der schreibt es dann mit SQL-Adapter in eine 
SQL-Express Datenbank.
Jetzt mach ich mich daran, so ein ESP32-Cam Modul als QR-Code Reader zu 
verwenden, um die Auftragszuordnung umzusetzen.

Sicherheit - Naja. Also es sind keine sensiblen Daten, und ich denke es 
ist halt so sicher wie jedes andere Wlan Netzwerk auch. Das Ganze läuft 
ja eh autark, also müssten die bösen Jungs schon mit nem Laptop auf dem 
Hof stehen.
Wie es dann aussieht wenn das System umzieht und in das normale Netzwerk 
integriert wird, muss man dann sehen. Evtl bleibt es auch autark.

von Opus (Gast)


Lesenswert?

Hallo

Ich habe die Kommunikation mit Interesse verfolgt.
Professionelle Systeme sind unverschämt teuer ( natürlich berechtigt 
wenn man an die Entwicklungskosten- und Dauer denkt ).
Aber der Nutzen rechtfertigt für meinen Fall die Mega Investition leider 
nicht.

Ich arbeite ebenfalls hobbymäßig an „einer Art von MDE  MES  BDE und 
bin aus Kostengründen auch immer wieder am ESP 32 hängen geblieben - zu 
viele Unwegbsrkeiten. ( 24 V input, 24 V Arbeitsstrom, 
Industrietauglichkeit, Anzahl der Schreibzyklen, geeignete Gehäuse- und 
Montagemöglichkeiten, Protokolle etc….. ).
Habe genau deshalb den ESP- Gedanken verworfen und auf PLC- Basis, 
CANBUS und geeigneter Visualisierung ein tolles System hin bekommen das 
mit 20 Maschinen schon seit 12 Monaten absolut stabil läuft.
Da ich von dem teueren Cotroller weg möchte ist der ESP immer noch 
interessant.
Wie ist nun Dein Projekt geworden ?
Warst Du erfolgreich ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.