Je suis en train de construire un appareil IoT en utilisant ESP8266. L'appareil contiendra éventuellement quelques moteurs, et je voudrais contrôler ces moteurs à l'aide de MQTT. Je voudrais rendre l'appareil aussi bon marché que possible, donc je voudrais éviter des choses comme les écrans et les claviers.
Ainsi, lorsque l'appareil est tourné, il est censé se connecter au WiFi local, puis à un courtier MQTT. Mais comment connaît-il le SSID local auquel se connecter et qu'en est-il du nom d'utilisateur et du mot de passe? Étant donné que l'appareil n'a ni écran ni clavier, il n'y a aucun moyen de saisir ces éléments. Et comment l'utilisateur sait-il si l'appareil a pu se connecter ou non? Pour le dépannage, ce serait bien si l'appareil avait au moins un moyen d'indiquer quel pourrait être le problème.
La solution à laquelle j'ai pensé est d'avoir un bouton et une LED sur l'appareil. Le bouton serait marqué "config" ou similaire. Lorsque le bouton est enfoncé, l'appareil commencera à fonctionner comme un point d'accès WiFi avec un SSID prédéfini. Il aura un serveur Web, afin que l'utilisateur puisse se connecter avec un ordinateur portable ou un téléphone à ce point d'accès prédéfini et entrer les paramètres du réseau local (SSID, nom d'utilisateur et mot de passe) ainsi que l'adresse du courtier MQTT. La LED sera utilisée pour indiquer le mode de fonctionnement et également comme indication d'erreur. Par exemple, lorsque la LED est allumée en continu, tout est connecté, des clignotements longs signifient qu'elle est en mode de configuration, des clignotements courts signifient qu'il y a une erreur ou quelque chose de similaire.
Ma question est la suivante: la solution que j'ai proposée est-elle une manière standard de faire les choses en ce qui concerne ce problème? C'est-à-dire que cela ressemblera à un flux familier à l'utilisateur, ou une autre façon serait-elle meilleure? Après avoir fait un peu de recherche, j'ai trouvé par exemple ceci , qui semble être un flux d'utilisateurs similaire. Seriez-vous toujours intéressé à savoir quelle expérience vous en avez et à savoir comment vous le résoudriez?
S'il s'avère que c'est un bon et utile moyen de résoudre ce problème, et puisqu'il s'agit d'une sorte de solution générique, il serait bien de ne pas trop réinventer la roue. Je pense qu'il pourrait y avoir une bibliothèque qui pourrait faire tout cela. La bibliothèque serait configurée avec la broche d'entrée pour le bouton et la broche de sortie pour la LED, puis s'occuperait du reste. Il pourrait être construit sur la bibliothèque PubSubClient et basé sur le tutoriel ESP8266: Connexion au courtier MQTT . Y a-t-il donc une bibliothèque qui fait ceci ou quelque chose de similaire? Sinon, je vais essayer de créer le mien, mais j'aimerais d'abord savoir ce qui existe.
Merci!
Il y a aussi le projet luftdaten.info qui est un capteur de particules open source avec son propre firmware. Ils font une chose similaire à ce que vous avez proposé, mais sans le bouton de configuration. Ils le font, en démarrant le serveur Web par défaut, lorsque l'appareil est allumé. Après un certain seuil (je pense que cela se situe entre 3 et 10 minutes), le serveur Web interne sera arrêté - donc plus de configuration n'est possible avant le prochain cycle d'alimentation.
Cette solution peut être trop peu sûre pour certains scénarios, mais vous voudrez peut-être tout de même en savoir plus.
Éditer:
Pour obtenir la configuration initiale dans l'appareil, la procédure suivante est en place:
Lorsque l'appareil est démarré, il essaie d'atteindre le WLAN configuré (il n'y a pas de WLAN configuré au premier démarrage). S'il ne parvient pas à se connecter au WLAN préconfiguré, il définit une adresse IP statique et s'étend sur son propre réseau sans fil sans mot de passe, où l'on peut se connecter et effectuer la configuration initiale via l'adresse IP statique.
la source