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
- Nur Windows: Installation eines ssh-clients (z.B. putty)
- 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)).
- FileZilla installieren (auf Linux und Mac nicht nötig, aber möglich).
- Datei index.html umbenennen, z.B. in start.html (enthält ihren Namen)
- z.B. mit Filezilla oder auf der Konsole mit
mv index.html start.html
- Datei .htaccess umbennen oder löschen, damit Ihre Webseite von ausserhalb der KSBG erreichbar wird. Das kann via Konsole (ssh) oder mit Filezilla erfolgen.
- z.B. mit Filezilla oder auf der Konsole mit
mv .htaccess .htaccess.bak
Erste Webseite
Text-Editor, entweder lokal, oder direkt auf dem Server mit nano
oder mit vim
.
Erste html-Datei mit Namen index.html erstellen (und auf den Server laden)
<!DOCTYPE html> <html> <body> <h1>Titel</h1> Text. </body> </html>
Ihre Seite sollte dann online unter https://ofi.tech-lab.ch/2021/FF361/ in Ihrem Ordner sichtbar sein.
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.