Outre le matériel, le logiciel adapté à votre projet est bien entendu tout aussi important. Un firmware pratique et universellement applicable pour le microcontrôleur forêt et prairie ESP8266 est le firmware Tasmota. Cela vous permet de mettre en œuvre divers projets sans avoir à effectuer de programmation vous-même. De plus, vous n’êtes pas obligé de « réinventer la roue » à chaque fois. 🙂
Avant de pouvoir l'utiliser avec votre microcontrôleur, il doit bien sûr d'abord lui être transféré. Comment cela fonctionne et ce que vous devez prendre en compte est décrit dans l'article suivant.
Consignes de sécurité
Je sais que les notes suivantes sont toujours un peu ennuyeuses et semblent inutiles. Malheureusement, de nombreuses personnes qui savaient "mieux" ont perdu des yeux, des doigts ou d'autres choses à cause d'une négligence ou se sont blessées. La perte de données est presque négligeable en comparaison, mais même celles-ci peuvent être vraiment ennuyeuses. Par conséquent, veuillez prendre cinq minutes pour lire les consignes de sécurité. Parce que même le projet le plus cool ne vaut pas une blessure ou d'autres problèmes.
https://www.nerdiy.de/sicherheitshinweise/
Liens d'affiliation/publicitaires
Les liens vers des boutiques en ligne répertoriés ici sont des liens dits d'affiliation. Si vous cliquez sur un tel lien d'affiliation et effectuez un achat via ce lien, Nerdiy.de recevra une commission de la boutique en ligne ou du fournisseur concerné. Le prix ne change pas pour vous. Si vous effectuez vos achats via ces liens, vous aidez Nerdiy.de à pouvoir proposer d'autres projets utiles à l'avenir. 🙂
Conditions préalables
Articles utiles :
Avant de commencer cet article, vous devez avoir installé et configuré l'IDE Arduino. Vous trouverez des informations à ce sujet dans l'article suivant.
Installer des programmes - un exemple
ArduinoIDE - Trucs et astuces
Matériel requis :
Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.
Outil requis :
Dans la liste suivante, vous trouverez tous les outils dont vous avez besoin pour mettre en œuvre cet article.
Copiez la version actuelle de Tasmota depuis GitHub
Avant de pouvoir commencer à configurer et à programmer le firmware Tasmota, vous devez d'abord le télécharger depuis le GitHub.
Les fichiers du firmware se trouvent à l'adresse : https://github.com/arendst/Sonoff-Tasmota
Comment vous pouvez télécharger des fichiers à partir d'un GitHub est dans l'article GitHub - Comment copier des fichiers d'un GitHub vers mon ordinateur décrites.
Après avoir téléchargé les fichiers du micrologiciel compressés, vous devez toujours les décompresser. Vous trouverez des conseils à ce sujet dans l'article WinRar ? WinZip ? Gagner quoi ? - Chérie, j'ai réduit les fichiers
Configurer le micrologiciel Tasmota
De nombreux paramètres du micrologiciel Tasmota peuvent également être ajustés pendant le fonctionnement. Néanmoins, je trouve plus facile d'importer ces paramètres directement avec un firmware correctement configuré.
De plus, cela est absolument nécessaire pour certains capteurs utilisés, car tous les composants logiciels ne sont pas compilés par défaut (« ajoutés au firmware ») pour chaque capteur ou actionneur.
Les différentes options du firmware Tasmota
Dans le « user_config.h » maintenant ouvert, il y a toutes sortes d’options de configuration. La plupart du temps, vous n’en avez besoin que d’une fraction. Par souci d'exhaustivité, toutes les options sont répertoriées et brièvement décrites ici.
Pour que vous n'ayez pas à parcourir toutes les options individuellement, j'ai surligné en vert les options que vous devez absolument modifier. Par exemple, il existe des mots de passe ou des URL que vous devez configurer individuellement ou au moins vérifier. Vérifiez donc ces options avant de transférer le firmware sur votre appareil Tasmota.
Dans la section « MQTT », vous pouvez définir les paramètres de base pour la connexion au serveur MQTT. – – « MQTT_USE » active le client MQTT.
– « MQTT_HOST » définit l'adresse de votre serveur MQTT.
– Sous « MQTT_FINGERPRINTX », vous pouvez définir l'empreinte digitale pour crypter votre connexion MQTT. – – – « MQTT_PORT » définit le port de votre serveur MQTT.
– Dans « MQTT_USER » et « MQTT_PASS », vous pouvez définir le nom d'utilisateur et le mot de passe de votre serveur MQTT.
– Avec « MQTT_BUTTON_RETAIN », « MQTT_POWER_RETAIN » et « MQTT_SWITCH_RETAIN », vous pouvez activer l'indicateur de conservation pour les messages MQTT respectifs. Cela signifie que les messages MQTT respectifs sont également envoyés aux clients MQTT qui n'étaient pas encore en ligne au moment de l'envoi du message MQTT.
– Avec « MQTT_STATUS_OFF », vous pouvez définir la chaîne utilisée dans les commandes pour désactiver quelque chose.
– Avec « MQTT_STATUS_ON », vous pouvez définir la chaîne utilisée dans les commandes pour activer quelque chose.
– Avec « MQTT_CMND_TOGGLE », vous pouvez définir la chaîne utilisée dans les commandes pour changer quelque chose.
– Avec « MQTT_CMND_HOLD », vous pouvez définir la chaîne qui doit être envoyée lorsqu'un bouton est enfoncé plus longtemps que spécifié dans KEY_HOLD_TIME.
Divers détails sur les sujets MQTT utilisés peuvent être spécifiés dans cette section.
Avec « MQTT_FULLOPIC » vous précisez la structure des sujets utilisés. Par défaut, il s'agit toujours du « préfixe » et du « sujet » correspondant.
Les préfixes sont ensuite précisés sous « SUB_PREFIX », « PUB_PREFIX » et « PUB_PREFIX2 ».
Votre appareil Tasmota utilise le préfixe spécifié sous « SUB_PREFIX » comme abonnement, c'est-à-dire pour recevoir des valeurs et des commandes.
Le péfixe spécifié sous « PUB_PREFIX » est utilisé pour publier les valeurs.
Les données de télémétrie sont envoyées via le préfixe spécifié dans « PUB_PREFIX2 ».
Les sujets sont ensuite définis sous « MQTT_TOPIC », « MQTT_GRTOPIC », « MQTT_BUTTON_TOPIC », « MQTT_SWITCH_TOPIC ».
« MQTT_TOPIC » représente le sujet individuel de l'appareil Tasmota. Une partie de l'adresse MAC de votre appareil Tasmota est toujours ajoutée.
« MQTT_GRTOPIC » représente un sujet dans lequel vous pouvez combiner plusieurs appareils Tasmota dans un groupe.
Avec « MQTT_BUTTON_TOPIC » et « MQTT_SWITCH_TOPIC », vous pouvez définir des sujets spéciaux pour tous les boutons et commutateurs connectés.
Avec « MQTT_CLIENT_ID », vous pouvez spécifier le nom ou l'ID du client MQTT.
Vous pouvez généralement laisser toutes ces valeurs telles quelles.
Avec ces options et les options de la section suivante, vous pouvez définir les critères de changement d'heure d'été/d'hiver. Les paramètres commençant par « TIME_DST… » déterminent dans quelles conditions le passage de l'heure d'hiver (heure d'hiver) à l'heure d'été s'effectue. Les paramètres qui commencent par « TIME_STD_… » sont en revanche cruciaux dans le cas contraire, c'est-à-dire le passage de l'heure d'été à l'heure d'hiver. Les paramètres sont par ailleurs identiques pour les deux zones : « …HÉMISPHÈRE » détermine sur quelle partie du globe vous vous trouvez. Cette option n'est en fait pas nécessaire pour le changement d'heure mais plutôt pour calculer les heures correctes de lever et de coucher du soleil.
Il est maintenant temps de définir les paramètres du changement d'heure. Étant donné que le changement d'heure (au moins en Allemagne) de l'heure d'hiver à l'heure d'été a toujours lieu le dernier dimanche de mars à 2h00 du matin, vous devez régler le paramètre « TIME_DST_WEEK » sur « Last » et le paramètre « TIME_DST_DAY » sur « Sun » (= dimanche). , réglez le paramètre « TIME_DST_MONTH » sur « Mar » (= Mars) et le paramètre « TIME_DST_HOUR » sur deux. Avec le paramètre « TIME_DST_OFFSET », vous spécifiez ensuite quel décalage horaire se produit dans ce cas. Vous devez également préciser l’écart dû au fuseau horaire. Dans le cas de l’Allemagne, où le fuseau horaire est UTC+1, soit +60 minutes, l’heure d’été est de +120 minutes.
Le passage de l'heure d'été à l'heure d'hiver (toujours en Allemagne) a toujours lieu le dernier dimanche d'octobre à 03h00.
Vous devez donc régler le paramètre « TIME_STD_WEEK » sur « Last », le paramètre « TIME_STD_DAY » sur « Sun » (= dimanche), le paramètre « TIME_STD_MONTH » sur « Oct » (= octobre) et le paramètre « TIME_STD_HOUR » sur trois. . Avec le paramètre « TIME_STD_OFFSET », vous spécifiez ensuite quel décalage horaire se produit dans ce cas. Vous devez également préciser l’écart dû au fuseau horaire. Dans le cas de l'Allemagne, où le fuseau horaire est UTC+1, soit +60 minutes, l'heure standard (=heure d'hiver) s'applique ici à +60 minutes.
Vous pouvez utiliser les options « LATITUDE » et « LONGITUDE » pour définir la position de l'appareil Tasmota. Ceci est nécessaire pour calculer les heures correctes de lever et de coucher du soleil. Si vous souhaitez utiliser cette fonction, il est important de fournir ici les données correctes. Comment connaître la position de n'importe quel lieu est dans l'article Trouvez la latitude et la longitude de n'importe quel endroit avec GoogleMaps décrit. Assurez-vous de spécifier la position (comme indiqué) dans le système décimal. Comment faire cela est également décrit dans l'article mentionné.
« APP_TIMEZONE » définit le fuseau horaire.
« APP_LEDSTATE » définit la fonction des LED intégrées (dans de nombreux appareils Sonoff).
« APP_PULSETIME » définit la durée de l'impulsion en multiples de 0,1 seconde. Une valeur de 5 correspond à 0,5 seconde ou 500 millisecondes. Une valeur de 0 désactive cette fonction.
« APP_POWERON_STATE » définit l'état des relais configurés après la mise sous tension. Les paramètres suivants sont disponibles : POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON
« APP_BLINKTIME » définit la durée d'impulsion d'un relais « clignotant »
« APP_SLEEP » définit une période de temps comprise entre 1 et 250 millisecondes pendant laquelle l'ESP8266 est mis en mode veille. De cette façon, vous pouvez économiser de l'énergie. Bien entendu, dans le pire des cas, l'ESP8266 ne réagit que 250 millisecondes plus tard.
« KEY_DEBOUNCE_TIME » définit le temps anti-rebond d'un bouton connecté. Une valeur de 50 indique qu'après une pression sur une touche détectée, le bouton concerné est ignoré pendant 50 millisecondes.
« KEY_HOLD_TIME » définit la durée pendant laquelle un bouton doit être enfoncé jusqu'à ce qu'il soit reconnu comme un bouton enfoncé en permanence. La valeur spécifiée est à nouveau multipliée par 0,1 seconde. Une valeur de 40 correspond à une période de temps de 4 secondes. L’événement « bouton enfoncé » n’est déclenché qu’au bout de 4 secondes.
« SWITCH_DEBOUNCE_TIME » définit le temps anti-rebond d'un commutateur connecté. Une valeur de 50 indique qu'après la détection d'un changement de position du commutateur, le commutateur en question est ignoré pendant 50 millisecondes.
« SWITCH_MODE » définit le comportement du relais configuré par rapport à un interrupteur connecté. Les options suivantes sont possibles :
BASCULER; FOLLOW, FOLLOW_INV, PUSHBUTTON, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLE
« WS2812_LEDS » définit le nombre de LED WS2812 connectées.
« TEMP_CONVERSION » active (=1) ou désactive (=0) la conversion de la température en unité Fahrenheit.
« TEMP_RESOLUTION » définit la résolution avec laquelle la température est affichée. Vous pouvez choisir entre aucun et jusqu'à trois décimales. ATTENTION : La résolution respective doit bien entendu également être fournie par le capteur connecté. Autrement, cette valeur soi-disant plus précise est plus une conjecture qu’une précision.
« HUMIDITY_RESOLUTION » définit la résolution avec laquelle l'humidité est affichée. Vous pouvez choisir entre aucun et jusqu'à trois décimales. ATTENTION : La résolution respective doit bien entendu également être fournie par le capteur connecté. Autrement, cette valeur soi-disant plus précise est plus une conjecture qu’une précision.
« PRESSURE_RESOLUTION » définit la résolution avec laquelle la pression atmosphérique est affichée. Vous pouvez choisir entre aucun et jusqu'à trois décimales. ATTENTION : La résolution respective doit bien entendu également être fournie par le capteur connecté. Autrement, cette valeur soi-disant plus précise est plus une conjecture qu’une précision.
« ENERGY_RESOLUTION » définit la résolution avec laquelle la consommation d'énergie est affichée. Vous pouvez choisir entre aucun et jusqu'à cinq décimales. ATTENTION : La résolution respective doit bien entendu également être fournie par le capteur connecté. Autrement, cette valeur soi-disant plus précise est plus une conjecture qu’une précision.
Ces options peuvent être utilisées pour déterminer le comportement dans le cas où aucune donnée d'accès WLAN valide n'est encore stockée pour l'appareil Tasmota. Si « USE_WPS » est activé (c'est-à-dire que les deux // avant l'entrée correspondante sont supprimés), vous avez la possibilité de connecter votre appareil Tasmota à votre routeur à l'aide de la fonction WPS. Si « USE_SMARTCONFIG » est activé, vous pouvez saisir les données d'accès avec le Application Android ESP8266 Configuration intelligente configurer.
L'option « USE_RF_FLASH », si elle est activée sur un pont RF SONOFF 433Mhz, permet de programmer le coprocesseur connecté via l'interface web du firmware Tasmota. Vous pouvez en savoir plus à ce sujet dans l'article Tasmota - Puce RF Flash Sonoff RF Bridge (EFM8BB1) avec micrologiciel Portisch trouver.
Démarrer le processus de programmation
Après avoir adapté ou configuré le firmware selon vos souhaits, il est maintenant temps de le transférer sur l'ESP8266 de votre appareil Tasmota. Dans cet exemple, une carte adaptateur ESP8266 normale du WEMOS D1-Mini est programmée avec le firmware Tasmota.
Amusez-vous avec le projet
J'espère que tout a fonctionné comme décrit. Si ce n'est pas le cas ou si vous avez des questions ou des suggestions, faites-le moi savoir dans les commentaires. Je les ajouterai à l'article si nécessaire.
Les idées de nouveaux projets sont toujours les bienvenues. 🙂
PS Beaucoup de ces projets - en particulier les projets matériels - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si vous pensez que c'est cool que je partage l'information avec vous, je serais heureux d'un petit don au fonds du café. 🙂
Dans la version actuelle du micrologiciel tasmota de github, le dossier sonoff décrit ci-dessus n'existe plus. La compilation ne fonctionne pas. Qu'est-ce que je fais mal?
Bien à vous
Fabien
Salut Fabien,
vous avez raison, la structure des dossiers a un peu changé.
Essayez-le avec le dossier « Tasmota » sous : https://github.com/arendst/Tasmota/tree/development/tasmota
Si vous ouvrez le fichier « Tasmota.ino », vous devriez pouvoir compiler le firmware. 🙂
Cordialement
(aussi) Fabien 😀