Outre le matériel, le bon logiciel pour votre projet est bien sûr tout aussi important. Un micrologiciel pratique et universellement applicable pour le microcontrôleur ESP8266 Woods and Prairies est le micrologiciel Tasmota. Cela permet de mettre en œuvre divers projets sans que vous ayez à programmer vous-même. Vous n'avez pas à "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 également absolument nécessaire pour certains capteurs utilisés, car tous les composants logiciels de chaque capteur ou actionneur ne sont pas compilés ("ajoutés au firmware") par défaut.




Les différentes options du firmware Tasmota
Dans le "user_config.h" qui est maintenant ouvert, toutes sortes d'options de réglage sont disponibles. La plupart du temps, vous n'en avez besoin que d'une fraction. Dans un souci d'exhaustivité, cependant, toutes les options sont répertoriées ici et brièvement décrites.
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.








Les paramètres de base pour la connexion au serveur MQTT peuvent être définis dans la section "MQTT". – – « MQTT_USE » active le client MQTT.
– "MQTT_HOST" spécifie l'adresse de votre serveur MQTT.
- Sous "MQTT_FINGERPRINTX", vous pouvez spécifier l'empreinte digitale pour chiffrer votre connexion MQTT. – – – « MQTT_PORT » définit le port de votre serveur MQTT.
– Dans « MQTT_USER » et « MQTT_PASS », vous pouvez définir un nom d'utilisateur et un mot de passe pour votre serveur MQTT.
- Avec "MQTT_BUTTON_RETAIN", "MQTT_POWER_RETAIN" et "MQTT_SWITCH_RETAIN", vous pouvez activer l'indicateur de rétention pour les messages MQTT respectifs. Cela signifie que les messages MQTT respectifs sont également envoyés aux clients MQTT qui n'étaient pas en ligne au moment où le message MQTT a été envoyé.
– 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 basculer quelque chose.
– Avec "MQTT_CMND_HOLD", vous pouvez définir la chaîne qui doit être envoyée si 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 définissez la structure des rubriques utilisées. Par défaut, cela se compose toujours du "préfixe" et du "sujet" respectif.
Les préfixes sont alors spécifié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 pefix spécifié sous "PUB_PREFIX" est utilisé pour publier des valeurs.
Les données de télémétrie sont envoyées via le préfixe spécifié dans "PUB_PREFIX2".
Les sujets sont alors 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 une rubrique dans laquelle 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 toujours 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 pour le changement d'heure d'été/d'hiver. Les paramètres qui commencent par "TIME_DST..." déterminent les conditions dans lesquelles l'heure d'hiver (heure d'hiver) est commutée sur l'heure d'été. Les paramètres qui commencent par "TIME_STD_...", en revanche, sont déterminants 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 : "...HEMISPHERE" 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 le calcul des heures correctes de lever et de coucher du soleil.
Il s'agit maintenant des paramètres de changement d'heure. Étant donné que le changement d'heure (du moins en Allemagne) de l'heure d'hiver à l'heure d'été a toujours lieu le dernier dimanche de mars à 02h00, vous devez régler le paramètre "TIME_DST_WEEK" sur "Last", 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 spécifier l'écart dû au fuseau horaire. Dans le cas de l'Allemagne, qui a le fuseau horaire UTC+1, c'est-à-dire a +60 minutes, +120 minutes s'appliquent ici pour l'heure d'été.
Le passage de l'heure d'été à l'heure d'hiver (toujours en Allemagne) a toujours lieu le dernier dimanche d'octobre à 03h00.
Par conséquent, vous devez 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 spécifier l'écart dû au fuseau horaire. Dans le cas de l'Allemagne, qui a le fuseau horaire UTC+1, soit +60 minutes, l'heure standard (= heure d'hiver) est donc de +60 minutes.
Avec les options "LATITUDE" et "LONGITUDE", vous pouvez 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 saisir ici les données correctes. Comment vous pouvez trouver la position de n'importe quel endroit 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 d'impulsion sous forme de multiples de 0,1 secondes. Une valeur de 5 correspond à 0,5 seconde ou 500 millisecondes. Une valeur de 0 désactive cette fonctionnalité.
"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 sûr, 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 un appui sur un bouton reconnu, le bouton concerné est ignoré pendant 50 millisecondes.
"KEY_HOLD_TIME" définit la durée pendant laquelle un bouton doit être enfoncé avant qu'il ne 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 4 secondes. L'événement "touche enfoncée" n'est déclenché qu'après 4 secondes.
"SWITCH_DEBOUNCE_TIME" définit le temps anti-rebond d'un switch connecté. Une valeur de 50 indique qu'après un changement de position d'interrupteur détecté, l'interrupteur 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 dans l'unité Fahrenheit.
"TEMP_RESOLUTION" définit la résolution avec laquelle la température est affichée. Vous pouvez choisir entre zéro et jusqu'à trois décimales. ATTENTION : La résolution respective doit bien sûr également être fournie par le capteur connecté. Sinon, cette valeur supposée plus exacte est plus une supposition qu'une valeur exacte.
"HUMIDITY_RESOLUTION" définit la résolution avec laquelle l'humidité est affichée. Vous pouvez choisir entre zéro et jusqu'à trois décimales. ATTENTION : La résolution respective doit bien sûr également être fournie par le capteur connecté. Sinon, cette valeur supposée plus exacte est plus une supposition qu'une valeur exacte.
"PRESSURE_RESOLUTION" définit la résolution avec laquelle la pression atmosphérique est affichée. Vous pouvez choisir entre zéro et jusqu'à trois décimales. ATTENTION : La résolution respective doit bien sûr également être fournie par le capteur connecté. Sinon, cette valeur supposée plus exacte est plus une supposition qu'une valeur exacte.
"ENERGY_RESOLUTION" définit la résolution avec laquelle la consommation d'énergie est affichée. Vous pouvez choisir entre zéro et jusqu'à cinq décimales. ATTENTION : La résolution respective doit bien sûr également être fournie par le capteur connecté. Sinon, cette valeur supposée plus exacte est plus une supposition qu'une valeur exacte.

Avec ces options, le comportement peut être spécifié dans le cas où aucune donnée d'accès WLAN valide n'a encore été stockée pour l'appareil Tasmota. Si "USE_WPS" est activé (c'est-à-dire que les deux // devant l'entrée correspondante sont supprimés), vous pouvez connecter votre appareil Tasmota à votre routeur à l'aide de la fonction WPS. Si "USE_SMARTCONFIG" est activé, vous pouvez entrer 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 dossier "Tasmota" sur : https://github.com/arendst/Tasmota/tree/development/tasmota
Si vous ouvrez le fichier "Tasmota.ino", vous devriez pouvoir compiler le firmware. 🙂
Cordialement
(aussi) Fabien 😀