ESP32 - PC817 Optokoppler: 12V/24V DC-Eingangssignal überwachen

Um zu wissen, ob ein Ventil, eine Pumpe oder eine Heizung gerade in diesem Moment läuft, muss man in der Regel die Spannung auf der Leitung messen, die das Gerät versorgt - und diese Leitung führt 12 oder 24 Volt, nicht 3,3. Der ESP32 arbeitet mit 3,3 Volt und ist nicht 5V-tolerant, daher würde eine direkte Verbindung einer solchen Leitung mit einem seiner Pins die Platine zerstören - ein PC817-Optokoppler-Isolationsmodul löst dieses Problem, und diese Anleitung zeigt Ihnen, wie Sie es mit MicroPython auf dem ESP32 auslesen. Wir behandeln die folgenden Details:

ESP32 MicroPython PC817 Optokoppler isolierter 24V-Eingang

Erforderliche Hardware

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativ) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×PC817 Optocoupler Isolation Module 12V
1×PC817 Optocoupler Isolation Module 3-5V
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Kaufen Sie ein Modul: Die richtige Variante hängt von der Leitung ab, die Sie überwachen, und der nächste Abschnitt sagt Ihnen, welche das ist.

Überblick über PC817 Optocoupler

Der PC817 ist ein 4-poliger Chip, der ein digitales Signal mithilfe von Licht statt eines Drahtes über eine Lücke überträgt. Im Inneren befindet sich eine Infrarot-LED, die über eine isolierende Lücke hinweg einem Fototransistor gegenübersteht. Wenn Strom durch die LED fließt, schaltet ihr Licht den Transistor ein, sodass das Signal als Licht statt als Elektrizität übertragen wird - deshalb bleiben die beiden Seiten elektrisch getrennt. Der PC817 wird auch unter den Namen Fotokoppler, Opto-Isolator und Optoisolator verkauft.

Die meisten Projekte verwenden nie den nackten Chip. Was Sie tatsächlich kaufen, ist ein PC817-Optokoppler-Isolationsmodul: derselbe Chip auf einer kleinen Platine, mit bereits bestücktem Vorwiderstand, Status-LED und Schraubklemmen, erhältlich in Versionen mit 1, 2, 4 und 8 Kanälen. Genau das wird in diesem Tutorial verdrahtet, und der nackte Chip wartet am Ende auf alle, die ihn lieber von Hand aufbauen möchten.

Isolation ist genau das, was ein ESP32 braucht, wenn das zu überwachende Objekt kein 3,3-Volt-Sensor, sondern eine Industrie- oder Kfz-Leitung ist. Zwei Anwendungen, auf die dieses Tutorial abzielt:

  • Überwachung der Leitung eines 24-Volt-Bewässerungs-Magnetventils, damit der ESP32 weiß, welche Zone die Bewässerungssteuerung tatsächlich geöffnet hat.
  • Überwachung des 12-Volt-Betriebssignals eines Notstromaggregats oder eines Wechselrichters, damit der ESP32 protokollieren kann, wann das Gerät gestartet und gestoppt wurde.

Keine dieser Leitungen darf jemals direkt mit dem ESP32 in Berührung kommen. Der PC817 sitzt dazwischen und gibt nichts als Licht weiter.

Welches PC817-Optokoppler-Modul brauche ich?

Hier ist das, was Ihnen die Produktfotos nie verraten: Ein Modul deckt nicht jede Eingangsspannung ab. Der auf der Platine aufgelötete Widerstand ist für eine Spannung ausgelegt, daher werden die Module als drei separate Varianten verkauft, und Sie kaufen diejenige, die zu Ihrem Signal passt.

Zu überwachende Leitung Zu kaufendes Modul Wo Ihnen diese Leitung begegnet
24 Volt DC 24V-Modul Bewässerungsventile, SPS-Ausgänge, Maschinen- und Lkw-Verkabelung
12 Volt DC 12V-Modul Betriebssignale von Generatoren und Wechselrichtern, Alarmzentralen, Kfz-Schaltungen
3,3 oder 5 Volt DC 3-5V-Modul Der Ausgang einer anderen Platine oder eine Niederspannungs-Steuerplatine, die Sie auf Abstand halten möchten

Wählen Sie die falsche Variante, passiert eines von zwei Dingen:

  • Ein 12V-Modul, das an einer 24-Volt-Leitung hängt, bekommt ungefähr den doppelten Strom, für den sein Widerstand ausgelegt wurde, und dieser zusätzliche Strom fließt direkt durch die interne LED. Das Modul wird nicht lange halten.
  • Ein 24V-Modul an einer 12-Volt-Leitung ist das umgekehrte Problem: Die LED wird zu schwach angesteuert, sodass der Ausgang verspätet, nur manchmal oder gar nicht schaltet. Nichts brennt durch, aber es funktioniert auch nichts.

※ Notiz:

Die Wahl der richtigen Variante ist für Modulbesitzer das Gegenstück zur Dimensionierung des Vorwiderstands - es ist die einzige Kaufentscheidung auf dieser Seite, die wirklich zählt. Sobald das richtige Modul auf dem Tisch liegt, gibt es keinen Widerstand zu berechnen und keine Rechnung, bei der man sich vertun kann.

Pinbelegung

Ein einkanaliges PC817-Optokoppler-Isolationsmodul hat zwei Schraubklemmen auf der isolierten Feldseite und eine dreipolige Stiftleiste auf der ESP32-Seite. Eine Status-LED neben den Eingangsklemmen leuchtet, sobald die Eingangsseite unter Spannung steht, was sich beim Testen gut beobachten lässt.

  • IN+ - die positive Eingangsklemme. Verbinden Sie sie mit der 24-Volt-Ventilleitung, die Sie überwachen möchten.
  • IN- - die negative Eingangsklemme. Verbinden Sie sie mit der Masse desselben 24-Volt-Stromkreises, NICHT mit der ESP32-Masse.
  • VCC - die Versorgung der Ausgangsseite. Verbinden Sie sie mit dem 3V3-Pin des ESP32, der 3,3 Volt liefert.
  • GND - die Masse der Ausgangsseite. Verbinden Sie sie mit einem GND-Pin des ESP32, der 0 Volt hat.
  • OUT - der isolierte Ausgang. Verbinden Sie ihn mit einem ESP32-Eingangspin mit eingeschaltetem internen Pull-up, in diesem Tutorial GPIO19.

IN+ und IN- gehören zur Feldseite, VCC, GND und OUT gehören zur ESP32-Seite, und nichts außer der Isolationslücke im PC817 verbindet sie.

Technische Daten

Dies sind die Werte des PC817-Chips selbst - des Bauteils, das unter dem Kunststoff auf jeder der drei Modulvarianten sitzt.

Spezifikation Wert
Gehäuse 4-poliges DIP
Durchlassspannung der Eingangs-LED (Vf) ca. 1,2 V typisch, 1,4 V max.
Durchlassstrom der Eingangs-LED (If) 20 mA Dauerstrom max., 5-20 mA normaler Bereich
Ausgangsspannung (VCEO) 35 V max.
Ausgangsstrom (IC) 50 mA max.
Kollektor-Verlustleistung 150 mW
Isolationsspannung 5000 Vrms für 1 Minute
Stromübertragungsverhältnis (CTR) 50 % bis 600 % je nach Rang
Schaltgeschwindigkeit Anstiegszeit ca. 4 us, Abfallzeit ca. 3 us
Betriebstemperatur -30 C bis +100 C

Die Isolationsangabe von 5000 Vrms ist hier der entscheidende Wert. Sie ist der Grund, warum eine Spannungsspitze auf der 24-Volt-Seite keinen Weg in den ESP32 findet.

Warum der Messwert invertiert ist

Die Ausgangsseite des PC817 erzeugt keine eigene Spannung. Sie kann den ESP32-Pin lediglich mit GND verbinden oder ihn in Ruhe lassen, daher benötigt der Pin einen Pull-up, um einen definierten Pegel zu haben, wenn der Transistor aus ist. Beim ESP32 ist der interne Pull-up die einfachste Wahl, und ein 10-kOhm-Widerstand vom Pin nach 3,3 Volt erfüllt denselben Zweck.

Mit dem Pull-up:

  • 12V/24V-Signal VORHANDEN: Die LED leuchtet, der Fototransistor leitet, und der ESP32-Pin wird nach unten gezogen, sodass er LOW liest.
  • 12V/24V-Signal NICHT VORHANDEN: Die LED ist dunkel, der Fototransistor ist aus, und der Pull-up setzt sich durch, sodass der ESP32-Pin HIGH liest.

Der Messwert ist also umgekehrt zu dem, was Sie vielleicht erwarten, und der MicroPython-Code muss ihn wieder umdrehen. Das ist dieselbe Active-LOW-Gewohnheit, die Ihnen in den Tutorials ESP32 MicroPython Taster und ESP32 MicroPython Endschalter begegnet.

Noch etwas speziell zum ESP32: Wählen Sie für dieses Projekt einen normalen GPIO. GPIO34 bis GPIO39 sind reine Eingangspins und haben überhaupt keinen internen Pull-up, sodass der Modulausgang an ihnen floaten würde. Dieses Tutorial verwendet GPIO19.

Ist Ihr Modul Active LOW oder Active HIGH?

Alles oben Gesagte ist für den nackten Chip gesicherte Physik. Bei einem Modul sieht das anders aus, denn manche Hersteller fügen auf der Platine eine invertierende Stufe hinzu, sodass OUT dem Eingang folgt, statt ihm entgegengesetzt zu sein. Beide Arten sind im Handel, sie sehen auf den Fotos gleich aus, und die Produktbeschreibung sagt selten, welche Sie bekommen. Gehen Sie also von nichts aus - nehmen Sie sich eine Minute und messen Sie nach.

  • Verdrahten Sie das Modul wie unten gezeigt mit dem ESP32, lassen Sie IN+ und IN- aber vorerst unbeschaltet.
  • Öffnen Sie das Skript unten in Thonny und drücken Sie den grünen Run-Button. Es gibt am Ende jeder Zeile den Rohpegel von GPIO19 in Klammern aus.
  • Beobachten Sie die Shell unten im Thonny-Fenster und notieren Sie die Zahl, die erscheint, solange kein Signal am Eingang anliegt.
  • Legen Sie nun das Signal an IN+ und IN- an. Die Status-LED am Modul sollte leuchten.
  • Notieren Sie die Zahl, die die Shell ausgibt, während das Signal anliegt. Diese Zahl ist der aktive Pegel Ihres Moduls: 0 bedeutet Active LOW, 1 bedeutet Active HIGH.

Die Status-LED dient zur Gegenprobe. Sie ist mit der Eingangsseite verbunden und leuchtet daher genau dann, wenn das Feldsignal anliegt - wenn die LED an ist und die Shell die Leitung trotzdem als OFF meldet, müssen Sie die Polarität korrigieren, nicht die Verdrahtung.

Korrigieren Sie es dann an einer Stelle. Das Skript hat oben eine einzige Konstante, MODULE_ACTIVE_LOW, die standardmäßig auf True steht, weil sich die meisten Module so verhalten. Wenn Ihr Test ergibt, dass der aktive Pegel 1 ist, setzen Sie sie auf False, und alles Weitere kommt richtig herum heraus. Sonst muss im Skript nichts angefasst werden.

Halten Sie die beiden Massen getrennt

Das ist der eigentliche Sinn der ganzen Übung, daher sei es klar gesagt: Verbinden Sie die Masse des 12V/24V-Stromkreises NICHT mit dem GND-Pin des ESP32. Die 12-Volt- oder 24-Volt-Versorgung behält ihre eigene Masse, der ESP32 behält seine eigene Masse, und die beiden treffen sich nie. Wenn Sie sie miteinander verbinden, schaltet das Modul zwar weiterhin und der Code funktioniert noch, aber die Isolation ist weg und der ESP32 ist wieder allem ausgesetzt, was auf der Hochspannungsseite passiert.

Verdrahtungsdiagramm

Verdrahtung des PC817-Optokoppler-Isolationsmoduls

Mit der richtigen Variante in der Hand gibt es nichts zu berechnen. Die 24-Volt-Ventilleitung geht an IN+, die Masse derselben 24-Volt-Versorgung geht an IN-, und diese Masse bleibt am Modul und erreicht nie den ESP32. Auf der anderen Seite der Isolationslücke gehen VCC, GND und OUT an den ESP32.

  • So verbinden Sie den ESP32 und das PC817-Optokoppler-Isolationsmodul mithilfe eines Steckbretts. Versorgen Sie VCC des Moduls über den 3V3-Pin des ESP32, der 3,3 Volt liefert, denn der ESP32 ist eine 3,3-Volt-Platine und nicht 5V-tolerant.
ESP32 MicroPython PC817 Optokoppler-Isolationsmodul Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • So verbinden Sie den ESP32 und das PC817-Optokoppler-Isolationsmodul mithilfe einer Schraubklemmen-Breakout-Platine, die die aufgeräumtere Wahl ist, sobald die 24-Volt-Feldverdrahtung aus echtem Kabel statt aus Jumperkabeln besteht.
So verbinden Sie ESP32 und PC817 Optokoppler-Isolationsmodul

Wenn Ihr Modul mehr als einen Kanal hat, erhält jeder Kanal sein eigenes Paar Eingangsklemmen und seinen eigenen OUT-Pin, und jeder Kanal auf der Platine ist für dieselbe Eingangsspannung ausgelegt.

Das PC817-Modul parallel verdrahten, um den Ein/Aus-Zustand eines Geräts zu überwachen

Die obige Verdrahtung setzt voraus, dass eine Signalleitung auf Sie wartet. Meistens ist das nicht der Fall - was Sie haben, ist ein Gerät, das bereits installiert ist und bereits funktioniert, und Sie möchten wissen, ob es in dieser Sekunde läuft. Die Lösung besteht darin, den Moduleingang parallel zu diesem Gerät anzuschließen und jede vorhandene Leitung dort zu lassen, wo sie ist.

Nehmen Sie das 24-Volt-Bewässerungs-Magnetventil, auf das dieses Tutorial immer wieder zurückkommt. Die Bewässerungssteuerung speist die Ventilspule über ihr eigenes Kabel, und Sie durchtrennen nichts davon. Sie fügen nur zwei Drähte hinzu, und beide landen auf den Schraubklemmen eines 24V-Moduls:

  • Von der geschalteten Klemme der Ventilspule zu IN+.
  • Von der Rückleiterklemme derselben Spule zu IN-.

Hier muss kein Widerstand hinzugefügt werden - das Modul trägt bereits denjenigen, der zu 24 Volt passt, und genau deshalb musste die Variante stimmen. Der Abgriff zieht etwa 10 mA. Neben dem, was eine Magnetspule zieht, ist das nichts, sodass das Ventil weiterhin genau so öffnet und schließt wie immer. Dies ist eine reine Lesemessung, die an einen laufenden Stromkreis angeschlossen wird.

WARNING

Verdrahten Sie das Modul niemals in Reihe mit dem Ventil. In Reihe müsste der gesamte Spulenstrom durch die winzige interne LED fließen, und der Chip wird in dem Moment zerstört, in dem die Steuerung die Zone einschaltet. Der Optokoppler-Eingang wird parallel zum Gerät angeschlossen, niemals in Reihe.

Zwei weitere Dinge müssen auf der Eingangsseite stimmen. Zuerst die Polarität: IN+ und IN- speisen eine LED, und diese leitet nur in eine Richtung, sodass ein Vertauschen nichts beschädigt, der Eingang aber einfach nie einschaltet - finden Sie heraus, welche Seite des Abgriffs positiv ist, bevor Sie einen Draht abisolieren. Zweitens ist die Spule induktiv, und ein Magnetventil, Relais, Schütz oder Motor erzeugt beim Abschalten eine große Gegenspannungsspitze. Die Eingangs-LED des PC817 ist in Sperrrichtung nur für 6 V ausgelegt, sodass diese Spitze sie zerstören kann. Setzen Sie eine gewöhnliche Diode antiparallel direkt über die beiden Eingangsklemmen - Kathode der Diode an IN+, Anode der Diode an IN-. Im Normalbetrieb ist sie in Sperrrichtung gepolt und tut überhaupt nichts; bei einer Spitze leitet sie und begrenzt die Sperrspannung auf deutlich unter ein Volt. Eine 1N4148 reicht für einen kleinen Abgriff wie diesen, eine 1N4007 für einen stärkeren.

Ein falscher Messwert ist auch in die andere Richtung möglich. Manche SPS-Transistorausgänge, Triac-Ausgänge und LED-Lampentreiber lassen auch im ausgeschalteten Zustand etwas Leckstrom durch, und genug Leckstrom hält die interne LED schwach am Leuchten, sodass der ESP32 das Ventil weiterhin als eingeschaltet meldet, obwohl die Steuerung es bereits geschlossen hat. Das Symptom ist ein Messwert, der nie in den inaktiven Zustand zurückkehrt. Setzen Sie einen Ableitwiderstand von etwa 4,7 kOhm bis 10 kOhm über IN+ und IN-, und der Leckstrom fließt durch diesen statt durch die LED. Und eine Grenze, die Sie vor dem Start kennen sollten: Der PC817-Eingang ist eine einzelne LED, er reagiert also nur auf eine Polarität und ist das falsche Bauteil für die Erfassung einer AC-Leitung, die einen Optokoppler benötigt, dessen Eingangsstufe zwei antiparallele LEDs enthält.

Da der Abgriff parallel zum Gerät und nicht parallel zum Befehl der Steuerung liegt, liest der ESP32 den tatsächlichen Zustand des Geräts - einschließlich der Fälle, in denen etwas anderes die Zone eingeschaltet hat, und der Fälle, in denen die Steuerung sie angefordert hat und nichts angesprungen ist. Genau das macht das Skript zu einem Betriebsstundenzähler für jedes Ventil, zu einem "Ist die Pumpe tatsächlich angelaufen?"-Alarm oder zu einem Leerlaufprotokoll für eine Maschine. Seien Sie aber ehrlich darüber, was es beweist: Es sagt Ihnen, dass das Gerät unter Spannung steht, nicht dass es funktioniert, und ein festgefressener Motor oder ein durchgebranntes Heizelement zieht trotzdem Strom und wird trotzdem als ON gelesen.

Optional: Aufbau aus dem nackten PC817-Chip

Sie löten lieber selbst? Der rohe 4-polige PC817 erfüllt denselben Zweck, sobald Sie den Vorwiderstand einsetzen, was sich lohnt, wenn die Eingangsspannung fest ist. Ein Punkt oder eine Kerbe markiert Pin 1, und die Nummerierung verläuft gegen den Uhrzeigersinn: Pin 1 Anode und Pin 2 Kathode der LED auf der Feldseite, Pin 3 Emitter und Pin 4 Kollektor des Fototransistors auf der ESP32-Seite.

PC817 Optokoppler Pinbelegung

Dimensionieren Sie den Widerstand mit R = (Vin - 1.2) / 0.01 für etwa 10 mA: 220 Ohm bei 3,3 Volt, 390 Ohm bei 5 Volt, 1 kOhm bei 12 Volt und 2,2 kOhm bei 24 Volt als 1/2-W-Bauteil. Lassen Sie an einer 24-Volt-Leitung einen 1-kOhm-Widerstand stecken, fließen etwa 22,8 mA, mehr als das 20-mA-Limit des Chips.

Verdrahten Sie dann den Widerstand zwischen dem Signal und Pin 1, Pin 2 mit der Masse dieses externen Stromkreises, Pin 3 mit einem GND-Pin des ESP32, der 0 Volt hat, und Pin 4 mit GPIO19. Der Code unten läuft unverändert.

ESP32 MicroPython Code - PC817 Optokoppler

Es wird keine Bibliothek benötigt. Das Auslesen eines PC817-Moduls ist gewöhnliche Digitaleingangs-Arbeit, daher ist ein Pin-Objekt mit Pin.PULL_UP der gesamte Treiber. Das Skript unten überwacht den isolierten Eingang und gibt nur dann eine Zeile aus, wenn sich der Zustand ändert, was die Thonny-Shell übersichtlich hält, wenn das Ventil eine Weile offen bleibt. Jede Zeile endet mit dem Rohpegel von GPIO19, was den obigen Polaritätstest möglich macht.

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-micropython/esp32-micropython-pc817-optocoupler-monitor-12v-24v-dc-input-signal */ from machine import Pin import utime PC817_PIN = 19 # The ESP32 pin GPIO19 connected to the PC817 module OUT pin # Most PC817 optocoupler modules pull OUT down to 0 when the input signal is present. # Some modules invert it on-board, so OUT follows the input instead. # If your module works the other way round, change this to False. MODULE_ACTIVE_LOW = True # Pin.PULL_UP turns on the ESP32 internal pull-up resistor. # The pull-up holds the pin HIGH while the PC817 phototransistor is off. # When the external 12V/24V signal is present, the phototransistor conducts # and drags the pin down to 0, so the reading is inverted. opto = Pin(PC817_PIN, Pin.IN, Pin.PULL_UP) last_state = None while True: raw = opto.value() # the level on GPIO19 as it is, before any inversion signal_active = (raw == 0) if MODULE_ACTIVE_LOW else (raw == 1) # Print only when the isolated input changes, so the Shell stays readable if signal_active != last_state: if signal_active: print("24V valve line: ENERGIZED (GPIO19 = {})".format(raw)) else: print("24V valve line: OFF (GPIO19 = {})".format(raw)) last_state = signal_active utime.sleep(0.2)

Schnelle Schritte

Hier finden Sie eine Anleitung, wie Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE einrichten und ausführen:

  • Verdrahten Sie das Modul wie im obigen Modul-Schaltplan gezeigt mit dem ESP32 und prüfen Sie noch einmal, dass die 12V/24V-Masse nirgendwo in der Nähe von ESP32 GND ist, bevor Sie etwas einschalten.
  • Stellen Sie sicher, dass Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board geladen ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte für eine Schritt-für-Schritt-Anleitung.
  • Verbinden Sie das ESP32-Board mit einem USB-Kabel mit Ihrem Computer.
  • Öffnen Sie Thonny IDE auf Ihrem Computer.
  • Gehen Sie in Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32).
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Thonny IDE erkennt ihn normalerweise automatisch, aber möglicherweise müssen Sie ihn manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf den Save-Button oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf den grünen Run-Button (oder drücken Sie F5), um das Skript auszuführen.
  • Schalten Sie die 24-Volt-Ventilleitung ein, lassen Sie sie einige Sekunden eingeschaltet und schalten Sie sie dann wieder aus.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot 24V valve line: OFF (GPIO19 = 1) 24V valve line: ENERGIZED (GPIO19 = 0) 24V valve line: OFF (GPIO19 = 1) 24V valve line: ENERGIZED (GPIO19 = 0) 24V valve line: OFF (GPIO19 = 1)
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

Wenn die Shell das Gegenteil dessen meldet, was die Status-LED des Moduls anzeigt, ist das der Active-HIGH-Fall von vorhin - setzen Sie MODULE_ACTIVE_LOW auf False und führen Sie das Skript erneut aus.

Da das Skript unter dem Namen main.py auf dem MicroPython-Gerät gespeichert wurde, startet es jedes Mal von selbst, wenn der ESP32 eingeschaltet wird, auch ohne angeschlossenen Computer. Das macht daraus eine eigenständige isolierte Eingangsüberwachung - kombinieren Sie es mit dem Tutorial ESP32 MicroPython Relais, und der ESP32 kann auf die 24-Volt-Leitung reagieren, statt sie nur zu melden.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!