Ich bin gerade dabei, ein IoT-Gerät mit ESP8266 zu erstellen. Das Gerät wird irgendwann ein paar Motoren enthalten, und ich möchte diese Motoren mit MQTT steuern. Ich möchte das Gerät so billig wie möglich machen, daher möchte ich Dinge wie Displays und Tastaturen vermeiden.
Wenn das Gerät eingeschaltet wird, soll es eine Verbindung zum lokalen WLAN und dann zu einem MQTT-Broker herstellen. Aber woher weiß es über die lokale SSID, zu der eine Verbindung hergestellt werden soll, und was ist mit Benutzername und Passwort? Da das Gerät kein Display oder keine Tastatur hat, gibt es keine Möglichkeit, diese Dinge einzugeben. Und woher weiß der Benutzer, ob das Gerät eine Verbindung herstellen konnte oder nicht? Für die Fehlerbehebung wäre es schön, wenn das Gerät zumindest eine Möglichkeit hätte, das Problem anzuzeigen.
Die Lösung, an die ich gedacht habe, besteht darin, eine Taste und eine LED am Gerät zu haben. Die Schaltfläche würde mit "config" oder ähnlich markiert sein. Wenn die Taste gedrückt wird, wird das Gerät als WiFi-Zugangspunkt mit einer vordefinierten SSID betrieben. Es wird einen Webserver haben, so dass der Benutzer mit einem Laptop oder Telefon eine Verbindung zu diesem vordefinierten Zugangspunkt herstellen und die lokalen Netzwerkeinstellungen (SSID, Benutzername und Passwort) sowie die Adresse für den MQTT-Broker eingeben kann. Die LED wird zur Anzeige des Betriebsmodus und auch als Fehleranzeige verwendet. Wenn zum Beispiel die LED konstant leuchtet, ist alles angeschlossen. Langes Blinken bedeutet, dass sie sich im Konfigurationsmodus befindet. Kurzes Blinken bedeutet, dass ein Fehler vorliegt oder ähnliches.
Meine Frage ist, ist die Lösung, die ich vorgeschlagen habe, eine Standardmethode, um Dinge zu tun, wenn es um dieses Problem geht? Dh wird es sich für den Benutzer wie ein vertrauter Fluss anfühlen, oder wäre ein anderer Weg besser? Nachdem ich ein bisschen gesucht habe, habe ich zB dies gefunden , was ein ähnlicher Benutzerfluss zu sein scheint. Möchten Sie immer noch hören, welche Erfahrungen Sie damit gemacht haben und wie Sie es lösen würden?
Wenn sich herausstellt, dass dies ein guter und nützlicher Weg ist, um dieses Problem zu lösen, und da es sich um eine Art generische Lösung handelt, wäre es schön, das Rad nicht zu stark neu zu erfinden. Ich denke, dass es eine Bibliothek geben könnte, die all dies tun könnte. Die Bibliothek wird mit dem Eingangspin für die Taste und dem Ausgangspin für die LED konfiguriert und kümmert sich dann um den Rest. Es könnte auf der PubSubClient- Bibliothek aufbauen und auf dem Tutorial ESP8266: Herstellen einer Verbindung zum MQTT-Broker basieren . Gibt es also eine Bibliothek, die dies oder ähnliches tut? Wenn nicht, nehme ich einen Stich und erstelle meinen eigenen, würde aber gerne zuerst erfahren, was da draußen ist.
Vielen Dank!
Es gibt auch das Projekt luftdaten.info , bei dem es sich um einen Open-Source-Partikelsensor mit eigener Firmware handelt. Sie machen etwas Ähnliches wie das, was Sie vorgeschlagen haben, nur ohne die Konfigurationsschaltfläche. Sie tun dies, indem sie den Webserver standardmäßig starten, wenn das Gerät eingeschaltet ist. Nach einem bestimmten Schwellenwert (ich glaube, es liegt irgendwo zwischen 3 und 10 Minuten) wird der interne Webserver heruntergefahren - daher ist bis zum nächsten Aus- und Einschalten keine Konfiguration mehr möglich.
Diese Lösung ist für bestimmte Szenarien möglicherweise zu unsicher, Sie möchten sie jedoch möglicherweise dennoch kennen.
Bearbeiten:
Um die Erstkonfiguration in das Gerät zu übertragen, gehen Sie wie folgt vor:
Wenn das Gerät gestartet wird, versucht es, das konfigurierte WLAN zu erreichen (beim ersten Start ist kein WLAN konfiguriert). Wenn keine Verbindung zum vorkonfigurierten WLAN hergestellt werden kann, wird eine statische IP festgelegt und das eigene drahtlose Netzwerk ohne Kennwort überspannt, über das über die statische IP-Adresse eine Verbindung hergestellt und die Erstkonfiguration vorgenommen werden kann.
quelle