Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:ffprg2-2020:mqtt [2020/09/06 06:50] – [Clients] Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg2-2020:mqtt [2020/09/11 14:41] (current) – [Client] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== MQTT ====== | ||
| + | MQTT ist ein Protokoll, um zwischen IoT Geräten Daten via einen Server auszutauschen. | ||
| + | |||
| + | Daten können dort publiziert werden. Wenn sich dort ein client einträgt (subscribe) wird dieser bei einer Änderung benachrichtigt. Es ist also kein Polling (ständiges Nachfragen) nötig. | ||
| + | |||
| + | Die Publikation findet über eine Art Pfadangabe statt. Damit können die Daten organisiert werden. Z.B. '' | ||
| + | ===== Client ===== | ||
| + | * Wir werden hier MQTTfx verwenden: https:// | ||
| + | * Auf den Laptops kann das Programm via Terminal durch Eingabe von '' | ||
| + | * //Hinweis: Das .deb-Packet installiert sich in / | ||
| + | |||
| + | Weitere Clients finden sich z.B. hier: https:// | ||
| + | |||
| + | Es gibt auch Apps für Android (und sicher auch iO$). Ich verwende auf Android MQTT Dash, womit sich auch gleich passende Interfaces definieren lassen. | ||
| + | |||
| + | Für iOS funktioniert MQTT Terminal Pro. | ||
| + | |||
| + | **ACHTUNG** Funktioniert nicht auf KSBG-Wild. St. Galler Wireless, tech-labc, mobile Daten sind ok. | ||
| + | |||
| + | ===== Unser Server ===== | ||
| + | * tech-lab.ch, | ||
| + | * Username, Passwort erforderlich (werden kommuniziert). | ||
| + | |||
| + | |||
| + | |||
| + | ===== Erster Code und erste Aufgabe ===== | ||
| + | Dieser Code übermittelt den Wert des intern verbauten Hall-Sensors (Magnetfeldmessung) auf das Topic '' | ||
| + | |||
| + | Die " | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | * Entpacken Sie die Datei (inklusive Ordner) und öffenen Sie den Sketch mit der Arduino-IDE | ||
| + | * Passen Sie die Datei secrets.h an (username und passwort für den MQTT-Server) | ||
| + | * Laden Sie das Programm auf den ESP32. | ||
| + | * Kontrollieren Sie die Ausgabe im Serial Monitor. | ||
| + | * Starten Sie mqttfx (im Terminal) und verbinden Sie sich mit dem MQTT-Server | ||
| + | * Publizieren Sie 1 oder 0 (ohne Zeilenumbruch!) im topic '' | ||
| + | * Studieren sie den Code | ||
| + | |||
| + | ===== Weitere Aufgaben und Ideen ===== | ||
| + | ==== 7-Segment-Anzeige ==== | ||
| + | * Stellen Sie die Zahl dar, die z.B. im topic '' | ||
| + | ==== Anderen ESP per Knopfdruck steuern ==== | ||
| + | Auf einem ESP soll ein Knopf gedrückt werden (Boot auf GPIO-0, Touch oder " | ||
| + | |||
| + | <code c++> | ||
| + | if (!digitalRead(0)) { // Boot-Knopf (oder anderer Druckknopf auf anderem Pin ist unten | ||
| + | // tu was | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | **Achtung**: | ||
| + | |||
| + | <code c++> | ||
| + | // Touch-Fähige pins: 2, | ||
| + | if (touchRead(2)< | ||
| + | // Tu was | ||
| + | } | ||
| + | </ | ||
| + | **Achtung**: | ||
| + | |||
| + | ==== Temperatur, Helligkeit oder sonstigen Messwert publizieren ==== | ||
| + | |||