Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
lehrkraefte:blc:informatik:ffprg2-2020:mqtt [2020/09/03 10:49] Ivo Blöchliger created |
lehrkraefte:blc:informatik:ffprg2-2020:mqtt [2020/09/11 16:41] Ivo Blöchliger [Client] |
||
---|---|---|---|
Line 2: | Line 2: | ||
MQTT ist ein Protokoll, um zwischen IoT Geräten Daten via einen Server auszutauschen. | 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 nötig. | + | 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 |
- | ===== Clients | + | Die Publikation findet über eine Art Pfadangabe statt. Damit können die Daten organisiert werden. Z.B. '' |
- | * https:// | + | ===== 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 ===== | ===== Unser Server ===== | ||
Line 13: | Line 23: | ||
+ | |||
+ | ===== 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 ==== | ||