ESP und MicroPython
Inhalt
MicroPython auf ESP32, ESP8266, Raspberry Pi
µPyCraft und die ersten Kontakte zu MicroPython
Ein Geigerzähler mit Halbleitersensor
Robotcar – 3. Steuern per Handy
Spiele – Masterring 1 - Farbenraten
Spiele – Ringmaster 2 – geheime Zahl erraten
Spiele – Hangman auf dem OLED-Display
Datenlogger – Demonstration der Speichermöglichkeiten
Erstellen von großen oder eigenen Zeichensätzen für
das OLED-Display
Mückenstopp und Marderschreck – Der Tongeber
Mückenstopp und Marderschreck – Die Handy-App
Projekte mit Peltier-Elementen - 8 Ampere-Regler als
Stromversorgung
Projekte mit Peltier-Elementen – Thermisches
Wattmeter
Projekte mit Peltier-Elementen – Das Kühlaggregat
Projekte mit Peltier-Elementen – Das Kühlaggregat 2
Projekte mit Peltier-Elementen – Die Steuerung
Temperaturwächter fürs Gartenhaus
Frostwächter im Garten – Messwerterfassung und Server
Frostwächter im Garten – Messwerterfassung und Server
Frostwächter im Garten – Messwerterfassung und Server
MQTT mit ESP32/ESP8266 und Raspberry Pi
Der DHT-Client, Temperatur, Luftfeuchte und
Lüftermotor
Heizungssteuerung und ESP32-Kontrolleinheit
Zugriffe absichern – User Authentifizierung und
Jobkontrolle
Module, die in den Projekten verwendet werden
Die_Entwicklungsumgebung_Thonny
Woher bekomme ich die Programmierumgebung?
Wie wird µPyCraft installiert?
Welche Werkzeuge beinhaltet die IDE?
Wie wird die Firmware gebrannt?
IO-Pins
Das erste Programm
Was ist OOP?
Einblick in den Aufbau von MicroPython
Die WLAN-Interfaces AP und STA
Netzwerk einrichten
Kontakt zum WLAN-Router aufnehmen
Wie arbeitet eine TCP-Verbindung?
Der erste Webserver – Hallo Welt!
Der Server schaltet eine LED
Ein erstes Glossar
So installieren Sie Thonny
Der Aufbau der IDE
Analoge Signale messen
Das LDR-Modul
Die ADC-Modi des ESP32
Vom Volt zum Byte
Der Unterschied zwischen ESP8266 und ESP32
Berührungsempfindliche Schalter – Touchpads
Was ist eine Klasse?
Die Touchpad-Klasse
Der ESP8266 bedient keine Touchpads – Ersatz?
Einordnung des neuen Raspberry Pi pico
Wozu sind MicroPython-Module gut?
Versuche mit Funktionen und Variablen – Lokalität vs. Globalität
Import ist nicht gleich Import
Eigene Module und Klassen
Klassen und Instanzen
Timereinsatz und Piepen – der Piezosummer
Die Klasse BEEP
OLEDs am I2C-Bus
Die Module ssd1306 und oled
OLED-Test mit Touchpads
Eine eigene Platine für Sensor und Verstärker
Woher bekomme ich Proben?
Zerfallssignale am ADC-Port
Autostart und Stand-Alone-Betrieb
Der ESP8266 im Vergleich zum ESP32
ESP-Tool zum Brennen der Firmware
Anpassen an die W10-Umgebung
Vererbung von Klassen und Überschreiben
Renovierung guter Bekannter
Vererbung
Netzanmeldung im neuen Gewand
Der Server wird erwachsen
Das Webinterface und CSS
Der ESP32 als Accesspoint
Das LCD-Key-Pad – Anzeige und Steuerung
SIM808 – Das vielseitige Verbindungs-Modul
Was macht MicroPython so besonders?
Thonny als IDE
Tastenabfrage mit dem LCD-Key-Pad
Eine Klasse für das LCD
Tricks und Infos zu MicroPython
Was ist ein Konstruktor?
Ein paralleles LCD am I2C-Bus
Ein BMP280 am I2C-Bus
6 Tasten an einem analogen Eingang
Gebrauch der sim-Karte
SMS empfangen und versenden
Abfragen externer Sensoren durch SMS
Schalter per SMS umlegen
UDP als schnelles Übertragungsprotokoll zu den Sensoreinheiten
Packetsender.exe als Server oder Client
die Gesprächsfunktion des SIM808 nutzen
Eine 4x4-Tastatur-Matrix am I2C-Bus
Die 4x4-Tastatur "parallel" abfragen
Die Teleklingel font
Drahtloses Schalten von Lampen, Stereoanlage etc. in Abwesenheit
ESP8266-01 als Satelliten mit Relais
ESP32 als Vermittler zwischen Satelliten und SIM808
Flashen des ESP8266-01 auf dem USB-Adapter
Der Fehler 98: EADDRINUSE – Lösung
Neopixelringe ansteuern
Flashen eines ESP8266-01 auf dem USB-Adapter
Programmierung eines Joysticks
Ungenauigkeit der ADC-Eingänge kompensieren
Externer ADC AD1115 glänzt mit besserer Genauigkeit
Das Neigungsmodul GY521
Der mechanische Aufbau
Montage der Sensoren
Modifizieren des Motor-Control-Shields for Arduino
Lenken ohne Lenkrad
Wie arbeiten Interrupts?
Der App-Inventor 2 Baukasten
Bildschirmobjekte zusammenstellen
Objekt-Eigenschaften bearbeiten
Die UDP-Erweiterung einbinden
Programmieren mit Bausteinen
Der AI-Companion auf dem Handy
Download der fertigen App
Arbeiten mit dem AI2 Schritt für Schritt
Das Bausteinsystem
Life-Kontrolle mit dem Handy
Transfer der fertigen App
Die Thonny IDE – Installation, erste Schritte
Wie arbeitet der Neopixelring?
Eine Neopixelklasse mit verschiedenen Lichtfolgen
OLED ansteuern
Eine 4x4-Tastenmatrix am ESP32
Neopixelring als magisches Auge
Zufallszahlen erzeugen
Wie arbeitet der Neopixelring?
3 Neopixelringe ansteuern
OLED-Display über I2C ansteuern
Zufallszahlen erzeugen
Wie arbeitet der Neopixelring?
Ringzähler
Eine alphabetische "Tastatur" auf dem OLED-Display
Cursor erzeugen
grafische Elemente auf dem OLED-Display
Eine 4x4-Tastenmatrix am ESP32
Lokale und globale Variablen und Funktionen
Closures – Funktionen mit Gedächtnis
Der Portexpander MCP23017
Luftdruck und Temperatur messen mit dem BMP280
Echtzeit-Modul DS3231
Schreiben und lesen von Dateien im ESP32/ESP8266-Flash
Formatstrings sorgen für einheitliche Darstellung
Wie benutzt man ein externes EEPROM?
Ansprechen einer SD-Karte
Tiefschlafmodus beim ESP32 und ESP8266
Windows TTF-Zeichensätze clonen
eigene Zeichen definieren
Zeichen in OLED-Ausgaben verwenden
Erzeugen von PWM-Signalen
Piezomodul ansteuern
Booster mit 6-fach CMOS Schmitt-Trigger CD40106
UDP-Fernsteuerung
Packetsender.exe als Server und Client
Wahl zwischen AP- und STA-Modus
Herstellen einer Android-App
Entwicklung mit dem Handy kontrollieren
Die fertige App auf das Handy laden
Aktive Kühlung durch CPU-Lüfter mit Reglerschaltung
KY013 – NTC als Temperaturfühler
LED-Modul zur Spannungsanzeige
Strommessung mit Hall-Modul (ACS712T-ELC20A)
OLED-Display mit großem Zeichensatz
ESP8266 als Amperemeter
Große Zeichen erzeugen
Wärmestrom und Wärmeleistung
Ein thermisches Wattmeter
Peltierelement als Wattmeter-Sensor eichen
Wärmeströme messen
Wie funktioniert ein thermoelektrischer Wandler?
Wie baut man eine effiziente Wärmeschleuse?
Der ESP32 steuert einen Buckconverter.
Wohin mit der Abwärme?
Ein Eigenbau-Optokoppler
CMOS-N-Kanal-Transistor ersetzt Relais
OLED-Display zeigt Temperaturen, Spannungen und Stromstärken an.
Der 12A-Buck-Converter
Algorithmus zur Korrektur der Spannungsmessung
Decorators
Temperaturmessung mit DS18B20
Lüfter-Schaltstufe
Hallsensoren zur Stromstärkemessung
Das Touchscreen-TFT-Display
Geeignete Controller
TFT-Treiber ILI934xnew
Touchpad-Treiber XPT2046_syn
Touchpad kalibrieren
Große Zeichensätze
Mechanischer und elektrischer Aufbau des Bäumchens
Verdrahtung zum ESP32
Anordnung der LED-Gruppen
Das OLED-Dispplay
Beleuchtung langsam hochfahren
Zauberbäumchen – Der Reed-Kontakt
Lärmsensor – Das Microfonmodul
Bäumchenklau – Bewegungs- und Neigungssensor GY 521
Weihnachtsatmosphäre – Temperatur und Luftfeuchte AM2302
Weihnachtsverlosung – RFID-Leser und Tokens für 13,2MHz
Weihnachtsbaum und Webserver
Mininetzteil 230VAC zu 5VDC
Stepup-Converter 5VDC zu 12VDC
Temperatursensoren DS18B20
ESP8266 als UDP-Server
OLED-Anzeige für Temperatur und Funkdaten
Trägerplatine für Netzteil und Boostconverter
Mininetzteil 230VAC zu 5VDC
Stepup-Converter 5VDC zu 12VDC
Temperatursensoren DS18B20
ESP8266 als UDP-Server
OLED-Anzeige für Temperatur und Funkdaten
Fühler für Bodenfeuchtigkeit
Trägerplatine für ESP8266 und Relais
Konfigurationsdaten in Datei im Flash ablegen
Linux-Rechner/Raspberry Pi sammelt Daten vom ESP8266
Zeitgeber Cronjob
Webserver auf der Linuxkiste steuert den Frostwächter
Direkte Steuerung des Wächters im WLAN mit Handy-App
Umgang mit dem App-Inventor 2
Sound- und Sprachausgabe
UDP-Erweiterung für die Handy-App
Was macht MQTT?
Broker und Clients
Raspberry Pi aufsetzen und einrichten
Mosquitto-Broker installieren
Node RED installieren
XMING auf Windows installieren
Putty als Terminal für X11 einrichten
Der ESP8266 als MQTT-Client
Eine Closure als Timer
Mit MicroPython eine Verbindung zum WLAN-Router aufbauen
ESP8266 schaltet Relais über MQTT
ESP8266 liest DS18B20 aus
Publishen und Subscriben
ESP32 als Schaltzentrale mit Tasten und LDC
Das Node RED Dashboard
Erstellen eines GUI zur Heizungssteuerung
Importieren eines Dashboards
Erweiterung der Grafischen Oberfläche
Authentifizierung der Benutzer
ACL – Die Access-Liste legt fest, wer was darf
Ein Mini MP3-Player spielt als Ersatz für die Türklingel Melodien ab
Der Broker loggt Klingelereignisse mit
Eine Handy-App steuert den Türgong und fragt ihn ab
Es kann sein, dass in manchen Projekten ältere Versionen eines Moduls verwendet wurden. In der Regel wurde aber auf Abwärts-Kompatibilität geachtet.
Schreiben und Lesen von I2C-EEPROMs |
|
Snippet zum Einrichten des Onboard-Accesspoints |
|
Joystickkoordinaten vom ESP32 abfragen mit Linearitätskorrektur |
|
Bedienung des Analogdigitalwandlers ADS1115 |
|
Bedienung des Analogdigitalwandlers ADS1115 incl. Methoden zur Joystickabfrage |
|
Klasse zur Steuerung der Signale einer RGB-LED und eines aktiven Tweeters |
|
Interface für den Sensor BME280 Temperatur, Luftdruck, rel. Luftfeuchte |
|
Interface für den Sensor BME280 Temperatur, Luftdruck |
|
Interface für den Sensor BME280 Temperatur, Luftdruck |
|
Abfrage von Tasten, warten auf Taste, warten auf loslassen, Display ist optional |
|
Klasse zur Erzeugung eigener Zeichensätze |
|
Methoden zur Real-Time-Clock DS1302 |
|
Methoden zur Real-Time-Clock DS3231 |
|
Methoden zum Arbeiten mit dem SIM808-GPS-Modul |
|
Interface für das Accelerometer MPU6050 |
|
Methoden für ein LCD mit Parallelanschluss oder I2C-Adapter |
|
Methoden zum Datenaustausch über I2C |
|
Tatenabfrage für das LCD-Key-Pad und einer 4x4-Tastaturmatrix indexed (ESP32) oder reversal (MCP23017) |
|
Modul zur Erfassung von Kernstrahlung mit einer PIN-Diode |
|
Klasse zur Bedienung eines LCDs; Die Methoden sind gleichlautend mit denen der Klasse OLED. |
|
Modul zur Arbeit mit dem Portexpander MCP23017 benutzt i2cbus.py |
|
Methoden zur Programmierung von Neopixel-Ringen u.ä. |
|
RFID-Tag - Leser |
|
MQTT-Treiber für ESP8266 und ESP32 von Rui Santos |
|
Klasse zum Arbeiten mit dem Funkmodul NRF24L01 |
|
Ansteuerung eines OLED-Displays ab 19.07.2021 ältere Version oled_2021-06-17.py |
|
Interface zum Servo-Modul PCA9685 |
|
Methoden zu Steuerung eines Robot Car |
|
SD-Card-Interface |
|
Interface für OLEDs mit dem Controller sh1106 I2C (1,3'') |
|
Methoden zum Ansteuern des SHT21-Moduls; Temperatur und Luftfeuchte |
|
Interface für OLEDs mit dem Controller ssd1306 – I2C (0,96'';) |
|
Interface für Touchpads an den Touch-Eingängen des ESP32 |
|
Emuliert das Modul touch.py mit Tasten für den ESP8266 |
|
Extended Tsten- und Touchpadmodul; benötigt button.py oder touch |
Installation und erste Schritte
16x2 LCD + 6 Tasten
Interessante Funktionen mit Gedächtnis
zu allen Themen der Blogreihe
Einführung in MIT-AppInventor2, Apps fürs Handy (Android) selber machen