This is an old revision of the document!
Freifach Programmieren für Fortgeschrittene
Folgende Punkte sind vorgesehen:
- Programmierung des ESP32 in C++ oder Python, Grundlagen von Mikroelektronik
- Vorbereitung auf die Informatik-Olympiade. Wer schon üben möchte: Aufgaben der ersten Runde vom letzten Jahr
- Weitere Wünsche der Teilnehmer.
Projektideen
- LED-Display, steuerbar über WiFi, z.B. so was: https://hackaday.com/2019/08/24/led-triangle-looks-cool-someone-tell-alt-j/
- Weitere kleine Anzeigen, die Live-Daten anzeigen, bzw. Knöpfe, um bestimmte Aktionen auszulösen.
- Mess-Station, die über WiFi Daten übermittelt (z.B. Temperatur, Luftfeuchtigkeit, Lärmpegel, Helligkeit, Wifi-Qualität, CO2-Gehalt, TVOC, Windgeschwindigkeit und -richtung,…)
- WiFi zu IR Übersetzer
Fernunterricht 8./15. Januar
Einstieg Web-Entwicklung:
Einrichten
- Zugriff via sftp, scp oder ssh auf Port 40199 auf tech-lab.ch
- Passwort ändern:
- Sich per ssh verbinden, das Kommand
passwd
eingeben und bestätigen (es wird bei der Eingabe der Passwörter gar nichts angezeigt). - (Mac, Linux, direkt auf der Konsole: ssh -p 40199 user.name@tech-lab.ch, Windows putty oder anderer SSH-client installieren (sollte jetzt auch native gehen, habe ich gehört)).
- Datei .htaccess umbennen oder löschen, damit Ihre Webseite von ausserhalb der KSBG erreichbar wird. Das kann via Konsole (ssh) oder mit Filezilla erfolgen.
Auftrag für Freitag 4. Dezember (Unterrichtsausfall)
Programmieren Sie ein Dobble-Kartenset
SOI
MQTT
IoT-Kommunikations-Protokoll.
Elektronik-Grundlagen
ESP32 in C++
NTP
API
OTA
- Zusatzaufgabe zum obigen Beispiel: Warum ist die Login-Seite auf dem ESP32 komplett nutzlos (und gefährlich)?
Webserver auf dem ESP32
Upload der SPIFFS-Dateien: https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/tag/1.0 In den Ordner /home/techlab/Arudino/tools/. entpacken (den Ordner tools anlegen, falls nötig).
mDNS
Siehe auch https://techtutorialsx.com/2020/04/18/esp32-advertise-service-with-mdns/
#include <ESPmDNS.h> // Im setup(), wenn die WiFi-Verbindung steht: if(!MDNS.begin("hanslisIOT")) { Serial.println("Error starting mDNS"); return; } // nicht sicher, ob die folgende Zeile nötig ist, macht aber Sinn... MDNS.addService("http", "tcp", 80); // Starten des Webservers...
Jetzt sollte im lokalen Netzwerk der ESP32 mit http://hanslisIOT/ erreichbar sein.