====== ESP32 ====== Der ESP32 ist der Nachfolder des ESP8266. Er bietet eine Menge mehr Möglichkeiten. Der Microcotroller ist mit Ein-/Ausgängen (GPIO), verschiedenen Busanschlüssen, 2.4 GHz WLAN und RAM bestückt. {{:projekte:esp32.jpg?300|}} {{:esp32:img_3762_1024.jpg?300|}} === Voraussetzung === Was wird benötigt? * ESP32 Development board * Micro-USB Kabel * Laptop + Netzteil {{:projekte:layout.jpg?300|}} Auf eurem Laptop müsst ihr einiges installieren um den ESP32 zu programmieren. * git (https://git-scm.com/downloads) * Python (https://www.python.org/downloads/) (Bei der Pyton Installation darauf achten den Pfad korrekt einzutragen) * ESP32 Sourcen (https://github.com/espressif/arduino-esp32) * Arduino IDE (https://www.arduino.cc/en/Main/Software) * Serieller Treiber (Silicon Labs CP210x USB UART Bridge, Wird normalerweise automatisch bei der ersten USB Verbindung installiert) === Installations Anleitung === https://www.heise.de/make/artikel/Espressif-ESP32-3256039.html?artikelseite=2 (Achtung, in dieser Anleitung wird auf das alte Repository ESP31b verwiesen. Wir empfehlen das neue ESP32 aus den Links oben zu verwenden!) https://learn.sparkfun.com/tutorials/esp32-thing-hookup-guide http://esp32-server.de/ Einfache Installation der Core für ESP32. Das geht ohne GIT Installation. {{:projekte:board.png?300|}} {{:projekte:example.png?300|}} === Windows Instructions === Darauf achten mit Administrator Rechten zu installieren und genug freien Festplattenplatz zu haben. * Python in den Pfad eintragen * In das Arduino Verzeichnis wechseln * mkdir hardware * cd hardware * mkdir espressif * cd espressif * git clone https://github.com/espressif/arduino-esp32.git esp32 * cd tools * python get.py {{:projekte:windows.jpg?350|}} {{:projekte:windowscompile.jpg?350|}} Installieren der Bibliothek Adafuit Neopixel {{:esp32:library.png?400|}} === Binäre RGB Uhr === Hier der Code für unsere Binäre LED Uhr: https://wiki.muc.ccc.de/_media/esp32:rgbclock0.zip {{:esp32:esp32_ws2812.png?400|}} === Darstellung der Uhrzeit === {{:esp32:binaryclock.png?440|}} {{:esp32:binaryclocktable.png?440|}} === Sensor für die Luftqualität === Der Sensor misst NH3 (Ammonia), NOx, alcohol, Benzene, smoke, CO2, etc. Der Analog Output (AOUT) gibt ein Analogsignal von 0.1 - 0.3 Volt. Der Digital Output (DOUT) gibt 0 oder 5V aus. Die Schmwelle lässt sich über ein Poti auf der Platine einstellen. {{:esp32:luftqualitaet.png?400|}} Der Sensor für die Luftqualität wir am Analog Eingang 6 (GPIO34) angeschlossen. Die LEDs werden an GPIO13 angeschlossen. Die Farben lassen sich über die Funktion HSLToRGB(...) in die Bestandteile R,G,B für die LED Streifen umgewandelt. {{:esp32:hsl.png?300|}} Hier der Code für den Sensor auf dem ESP: https://wiki.muc.ccc.de/_media/esp32:luftqualitaet.zip === Spannungsmessung mit dem ADC eines ESP32 Moduls === http://esp32-server.de/wp-content/uploads/ADC_Anzeige.png Ein Beispiel für die Spannungsmessung mit dem ADC eines ESP32 Moduls. Die Spannung wird auf einer Webseite durch einen Messuhr -Indikator visualisiert. Das Anzeigeinstrument ist mit HTML Canvas Gauge Realisiert. Das HTML Anzeigeinstrument funktioniert ohne Zugriff auf Internet. Die gauge.min.js Bibliothek ist lokal auf dem ESP32 gespeichert. Eigentlich lassen sich auf diese Weise HTML dashboards und verschiedenes Webinterface mit Visualization bauen. In diesem Beispiel fragt die Visualization Webseite 2-mal in die Sekunde den Messwert ab. Dies geschieht mittels AJAX-Objekt und JavaScript. Ich habe auch eine Anzeige vorgesehen die das Verbindungstatus anzeigt. Der Kreis oben links wird rot, wenn Anfrage an den ESP32 Server gesendet wird. Und er wird wieder Grau, wenn eine Antwort vom ESP32 Server zurückkommt. Wenn der Kreis rot bleibt, dann ist die Verbindung abgebrochen oder ESP32 Server antwortet nicht. Das Arduino Sketch, bei Aufruf des ESP32 IP-Adresse, macht nichts anderes als eine HTML-Webseite an den Browser zu schicken. Und beim Aufruf von ADC.txt wird ein Text mit dem ADC-Messwert gesendet. Ständige Aktualisierung und Visualisierung geschieht mittels JavaScript. Webseiten Quelltext, JavaScript, und gauge.min.js Bibliothek befinden sich in der Datei „index_html.h“ im Projektordner. Download Arduino Projekt http://esp32-server.de/wp-content/uploads/AnalogGauge_Sketsh.zip, es wird Bibliothek WebServer_tng benötigt. http://esp32-server.de/adc/