Hallo und willkommen zu einem neuen Blog, bei dem wir uns mal genauer eine interessante, eingebaute Funktion des ESP32 Chips anschauen wollen. Gemeint sind die berührungsempfindlichen Pins den ESP32, die sogenannten „Touch Pins“. Mit Hilfe von einem der möglichen zehn „Touch“ sensitiven Pins bauen wir uns heute eine Niedervolt Tischlampe, sodass wir diese durch einfache Berührung der Lampe diese ein- und ausschalten können! Da wir hier aber mit berührbaren, stromleitenden Flächen arbeiten, gilt strickt bei Aufbau bzw. Nachbau dieser Anleitung:
Jeglicher! Teil der vorgestellten Schaltung, DARF! zwingend nur mit Schutzkleinspannung in Berührung kommen. (5 Volt Gleichspannung). Die zu schaltende Lampe darf maximal eine Betriebsspannung von 24 Volt Gleichspannung haben. Ferner muss die Lampe einen galvanisch vom Netz trennenden Schutzkleinspannungstransformator besitzen, der VDE geprüft ist und ein CE Zeichen trägt.
Bitte macht euch auch mit die einschlägigen VDE Vorschriften und Gefahren von elektrischem Strom vertraut, bevor ihr euch an den Nachbau der Schaltung macht.
Als Teile für unser heutiges Projekt brauchen wir neben einer Lampe mit 12 Volt LED Leuchtmittel nur folgende Bauteile:
-
1x 47 KOhm Widerstand
Die Schaltung wird wie folgt verdrahtet:
Auch der Sketch - Code für unsere Lampe gestaltet sich dank des integrierten Touch sensitiven Hardware des ESP32 recht übersichtlich. Wir nutzen die exklusiv bei dem ESP32 vorhandene API Funktion „touchRead“ für das einlesen der Integer Werte. Die gelesenen Werte sind abhängig von der angeschlossenen Sensorfläche und eben einem berühren dieser Fläche. Um hier generisch mit so viel Sensoroberflächen wie möglich arbeiten zu können, habe ich bewusst auf das Einfügen von statischen Werten verzichtet. Stattdessen arbeite ich mit Relationen. Ladet folgenden Code auf euren ESP32 hoch:
//Touch0 is T0 which is on GPIO 4. int touchvalue = 5; int touchvalue_NOT_touched = 5; bool Light = false; bool LightSwitched = false; void setup() { pinMode(21, OUTPUT); delay(150); touchvalue = touchRead(T0); delay(150); touchvalue = touchRead(T0); delay(150); touchvalue_NOT_touched = touchvalue; } void loop() { touchvalue = touchRead(T0); if ((touchvalue < (touchvalue_NOT_touched - 3)) || (touchvalue > (touchvalue_NOT_touched + 3))) { if (!LightSwitched) { Light = !Light; digitalWrite(21, Light); delay(250); LightSwitched = true; } } else { LightSwitched = false; } // Calibration, if needed if ((touchvalue >= (touchvalue_NOT_touched - 1)) && (touchvalue <= (touchvalue_NOT_touched + 1)) && (!touchvalue_NOT_touched == touchvalue) && (!LightSwitched) ) { touchvalue_NOT_touched = touchvalue; } }
Bitte achtet beim Einbau auf den korrekten Einbau des 47 K Ohm Wiederstandes, und kurzen kabeln zwischen der Sensorplatte und dem Pin G4, an dem der Sensor angeschlossen ist.
Nun wünsche ich euch viel Spaß beim nachbauen und viel Freunde bei eurer Sensorlampe. Schreibt mir eure Ideen und Wünsche in die Kommentare.