HowTo: Tasmota - Construire une lampe de maison intelligente à ampoule rétro

Comme dans ça Projet d'enceinte rétro c'est un de mes petits passe-temps de donner un nouvel usage aux vieilles choses. Si vous pouvez également améliorer l'ancienne technologie et la rendre plus économe en énergie, par exemple, c'est une excellente cerise sur le gâteau.

C'est ce qui s'est passé récemment lorsque je suis tombé sur une boîte de vieilles ampoules. Je ne voulais plus les utiliser, car je suis maintenant à la poursuite de cette nouvelle tendance qui consiste à vraiment utiliser le radiateur pour chauffer.

Mais j'ai aussi pensé qu'il était dommage de simplement jeter les vieilles lampes. J'ai donc décidé de donner aux vieilles ampoules "stupides" un nouveau fonctionnement interne intelligent. Au moins une lampe décorative respectable devrait pouvoir être construite avec.
J'ai décrit dans l'article suivant comment cela fonctionne et ce que vous devez prendre en compte lors de la réplication.


Consignes de sécurité

Je sais que les conseils suivants sont toujours un peu pénibles et qu'ils semblent inutiles. Mais malheureusement, de nombreuses personnes qui savaient "mieux" ont déjà perdu des yeux, des doigts ou d'autres choses ou se sont blessées par imprudence. En comparaison, une perte de données ne vaut presque pas la peine d'être mentionnée, mais cela peut aussi être très énervant. C'est pourquoi nous vous demandons de prendre cinq minutes pour lire les consignes de sécurité. Car même le projet le plus cool ne vaut pas une blessure ou un autre désagrément.
https://www.nerdiy.de/sicherheitshinweise/

Liens d'affiliation/publicitaires

Les liens vers les boutiques en ligne mentionnés ici sont des liens dits "affiliés". Si tu cliques sur un tel lien d'affiliation et que tu achètes via ce lien, Nerdiy.fr reçoit une commission de la part de la boutique en ligne ou du fournisseur concerné. Pour toi, le prix ne change pas. En effectuant tes achats via ces liens, tu aides Nerdiy.fr à proposer d'autres projets utiles dans le futur. 🙂 


Conditions préalables

Articles utiles :
Avant de commencer cet article, vous devriez avoir traité les bases de la soudure. Vous trouverez des informations à ce sujet dans l'article suivant.
Électronique - Mon ami le fer à souder

Matériel nécessaire :

Dans la liste suivante, vous trouverez toutes les pièces dont vous avez besoin pour mettre en œuvre cet article.

Outils nécessaires :

Dans la liste suivante, vous trouverez tous les outils dont vous avez besoin pour mettre en œuvre cet article.


Rassemblez les pièces dont vous avez besoin

Pour configurer votre lampe de maison intelligente à ampoule rétro, vous avez besoin des pièces indiquées ou de celles répertoriées dans les exigences. En ce qui concerne la carte adaptateur ESP8266, cela ne doit pas nécessairement être un Wemos D1-Mini. Cependant, il s'agit de l'une des cartes d'adaptation les plus petites du marché et pour cette raison, au moins dans la version 40W, il n'y a pratiquement pas d'alternative - les cartes d'adaptation plus grandes ne s'intègrent tout simplement pas aussi bien dans la douille de la lampe.

Vue des pièces requises.
L'ampoule doit déjà être "noyée". Comment faire cela est dans l'article Lampes à incandescence "Core" expliqué.
La douille de lampe maintient plus tard l'ampoule droite et cache également la carte adaptateur ESP8266.
Les six LED WS2812B assurent l'éclairage de la lampe. Leur couleur et leur luminosité peuvent ensuite être ajustées via une interface Web.

Imprimez en 3D les pièces dont vous avez besoin

Téléchargez tous les fichiers STL requis : Tasmota - Construire une lampe de maison intelligente à ampoule rétro

Douille pour lampe à incandescence 40W :

Vous pouvez faire pivoter la vue 3D du fichier STL en maintenant le bouton de la souris enfoncé. Vous pouvez zoomer et dézoomer avec la molette de la souris.

Douille pour lampe à incandescence 100W :

Vous pouvez faire pivoter la vue 3D du fichier STL en maintenant le bouton de la souris enfoncé. Vous pouvez zoomer et dézoomer avec la molette de la souris.

Socle à vis 100W :

Vous pouvez faire pivoter la vue 3D du fichier STL en maintenant le bouton de la souris enfoncé. Vous pouvez zoomer et dézoomer avec la molette de la souris.


schéma

Vous trouverez ici les schémas de circuit qui indiquent comment la lampe est construite en principe.

Schéma de câblage normal.
Le point de vue de Fritzing.

fixer les LED

La première étape de votre propre lampe de maison intelligente à ampoule rétro consiste à fixer les bandes de LED. Ceux-ci doivent déjà être coupés par paires de deux.

Collez ensuite la première bande LED sur le côté où se trouve le trou dans l'arbre de la base de la lampe, comme indiqué. La ligne qui relie votre carte adaptateur ESP8266 aux LED sera ensuite alimentée par ici. Il est important à ce stade de prêter attention au « sens de marche » des LED. À ce stade, la flèche noire sur la bande LED doit pointer vers le haut - c'est-à-dire loin du trou.
Ensuite, la bande LED suivante est collée. Ici, le "sens de marche" est à nouveau modifié - la flèche noire pointe vers le bas.
La dernière bande LED est collée sur le seul espace libre restant. Le "sens de marche" est à nouveau modifié. Cette fois, les flèches noires sur la bande LED pointent vers le haut.

Souder les premières LED

Comme les LED peuvent également être alimentées en énergie et en données (couleur, luminosité, etc.), elles doivent bien entendu être connectées à la carte adaptateur ESP8266.

Pour cela, vous avez besoin d'un câble à 3 conducteurs de 20 cm de long.
Isole les lignes individuelles d'environ 3 à 5 mm...
...et étamer les extrémités des câbles devenues libres. Vous trouverez des conseils sur l'utilisation du fer à souder dans l'article Électronique - Mon ami le fer à souder.
Ensuite, vous pouvez insérer le câble dans l'arbre de la base de la lampe...
...et soudez-le aux contacts de la première bande LED. Assurez-vous que le "sens de marche" des bandes LED est correct. Les flèches noires doivent pointer à l'opposé du câble de raccordement sur la première bande LED.

Connectez les LED à la carte adaptateur ESP8266

Avant que les autres LED ne soient soudées, la carte adaptateur ESP8266 est d'abord connectée à la ligne d'alimentation des LED, car vous pouvez ainsi utiliser les lignes restantes.

Avant de commencer l'installation de la carte adaptateur ESP8266, je vous recommande également de retirer la LED intégrée de la carte adaptateur si nécessaire. Malheureusement, cela brille si fort qu'il est autrement visible à travers le plastique de la base. Comment vous pouvez le faire est dans l'article ESP8266 - Supprimer/Désactiver la LED décrites.

Le câble doit déjà sortir de la prise. Divise les lignes individuelles jusqu'au trou de sortie dans la base...
... et colle la carte adaptateur ESP8266 dans la prise. Cela fonctionne très bien avec du ruban adhésif double face plus épais ou de la colle chaude. Il est important que le port USB de la carte adaptateur pointe dans la direction du renflement de la prise. C'est la seule façon de connecter ultérieurement la lampe à un câble USB.
Une fois que vous avez collé la carte adaptateur ESP8266 et l'avez alignée en conséquence, vous pouvez…
...raccourcissez les lignes de manière à ce qu'elles dépassent d'environ 3 à 4 cm.
Isole à nouveau environ 3-5 mm des lignes et...
...les étamer avec de la soudure.
Préparez ici les contacts de la carte adaptateur ESP8266 en étamant au préalable les contacts de connexion « D2 », « G » et « 5V ».
une fois que vous avez étamé tous les spots, vous pouvez...
... déjà souder les lignes. Assurez-vous que les lignes se connectent aux bons endroits entre les bandes LED et la carte adaptateur ESP8266. "+5V" de la LED doit être connecté à "5V" de la carte adaptateur, "GND" de la LED à "G" de la carte adaptateur et "DIN" de la LED à "D2" de la carte adaptateur.
Voici un autre gros plan du câble soudé.

Soudez les bandes LED restantes ensemble

Jusqu'à présent, seules deux des six LED ou l'un des trois éléments de bande LED ont été soudés ensemble. Pour souder les bandes LED restantes, vous pouvez maintenant utiliser le fil restant que vous avez coupé à l'étape précédente.

Avant de pouvoir commencer à connecter les bandes LED, vous devez à nouveau préparer tous les points de contact.
Pour ce faire, étamez les contacts sur le dessus de la première bande LED.
Et aussi les contacts haut et bas des deuxième et…
...troisième bande LED.
Pour connecter les bandes LED restantes entre elles, préparez six morceaux de câble d'environ 2 cm de long. Ce faisant, isolez à nouveau les extrémités du câble d'environ 3 à 5 mm et étamez les extrémités du câble.
Puisque vous avez déjà préparé les contacts sur les bandes LED, vous pouvez déjà souder sur les trois premières lignes de connexion.
Voici un gros plan des trois premières lignes de connexion soudées.
Vous pouvez maintenant le plier et le connecter à la deuxième bande LED. Assurez-vous de connecter les bons contacts. "GND" de la première bande de LED doit également être connecté à "GND" de la deuxième bande de LED. Aussi "+5V" avec "+5V" et "Dout" de la première bande avec "Din" de la deuxième bande.
Gros plan du fil soudé sur la deuxième bande LED.
Gros plan de la connexion entre la première et la deuxième bande LED.
Vous pouvez maintenant souder les trois lignes restantes à la deuxième bande LED.
Gros plan des fils soudés sur la deuxième bande LED.
Vous pouvez ensuite les souder à la troisième (et dernière) bande LED.
Une fois que vous avez soudé toutes les bandes de LED, cela devrait ressembler à ceci. À ce stade, vérifiez à nouveau que vous avez soudé les lignes aux bons contacts.
Vue d'ensemble des rubans LED soudés.
Enregistrement supplémentaire des bandes de LED soudées.
Vous devez maintenant poser les lignes soudées aussi étroitement que possible autour du culot de la lampe.
...alors vous n'aurez aucun problème à insérer plus tard les LED et le culot de la lampe dans l'ampoule à noyau.

Programmer la carte adaptateur ESP8266 et effectuer le premier test

Une fois le dernier joint de soudure refroidi, il est temps de procéder à un premier test. Lancez le micrologiciel Tasmota sur la carte adaptateur et testez les voyants. Comment faire cela est dans l'article Tasmota - micrologiciel flash décrites.

Voici une configuration que j'ai utilisée pour ma lampe. Bien entendu, vous devez encore configurer les données d'accès pour votre WLAN et, si nécessaire, les données d'accès pour votre serveur MQTT.

/* user_config.h - configuration spécifique à l'utilisateur pour Sonoff-Tasmota Copyright (C) 2018 Theo Arends Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par le logiciel libre Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure. Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la licence publique générale GNU pour plus de détails. Vous devriez avoir reçu une copie de la licence publique générale GNU avec ce programme. Sinon, voir . */ #ifndef _USER_CONFIG_H_ #define _USER_CONFIG_H_ /******************************************** ****************************************************** \ * Ce fichier se compose de DEUX sections. * * SECTION 1 : * La première section contient des PARAMÈTRES remplaçant les paramètres du flash si la définition de CFG_HOLDER est MODIFIÉE. * Tous les paramètres peuvent être modifiés de manière persistante en ligne à l'aide de commandes via MQTT, WebConsole ou Serial. * Les commandes MQTT/Serial/Console correspondantes sont indiquées entre [crochets] * * SECTION 2 : * La deuxième section contient les FONCTIONNALITÉS activées et désactivées permettant différentes tailles de programme. * Les modifications apportées à cette section ne nécessitent PAS de modification de la définition CFG_HOLDER. * * ATTENTION : * Il est conseillé aux utilisateurs d'utiliser le fichier user_config_override.h pour la plupart des modifications. \**************************************************** ***********************************************/ // #define USE_CONFIG_OVERRIDE // Décommentez pour utiliser le fichier user_config_override.h. Voir README.md /************************************************ *************************************************** *\ * SECTION 1 * - Après le chargement initial, toute modification ici ne prend effet que si CFG_HOLDER est également modifié \**************************** *************************************************** *** ************/ // -- Contrôle des paramètres maîtres -------------------- #define CFG_HOLDER 4617 // [Reset 1] Modifiez cette valeur (max 32000) pour charger les paramètres de configuration SECTION1 à flasher // -- Projet ----------------------------- --- ----- #define PROJECT "Gluehlampe" // PROJECT est utilisé comme délimiteur de sujet par défaut #define MODULE WEMOS // [Module] Sélectionnez le modèle par défaut dans sonoff_template.h (Ne doit pas être modifié) #define SAVE_DATA 1 // [ SaveData] Enregistrer les paramètres modifiés dans Flash (0 = désactiver, 1 - 3600 secondes) #define SAVE_STATE 1 // [SetOption0] Enregistrer l'état d'alimentation modifié dans Flash (0 = désactiver, 1 = activer) // -- Wifi ----- --- ------------------ #définir WIFI_IP_ADDRESS "0.0.0.0" // [IpAddress1] Définir sur 0.0.0.0 pour utiliser DHCP ou l'adresse IP #define WIFI_GATEWAY "192.168.0.1" // [IpAddress2] Si vous n'utilisez pas DHCP, définissez l'adresse IP de la passerelle #define WIFI_SUBNETMASK "255.255.255.0" // [IpAddress3] Si vous n'utilisez pas DHCP, définissez le masque réseau #define WIFI_DNS "192.168.0.1" // [IpAddress4] Si vous n'utilisez pas DHCP, définissez l'adresse IP DNS (peut être égale à WIFI_GATEWAY) #define STA_SSID1 "" // [Ssid1] Wifi SSID #define STA_PASS1 "" // [Mot de passe1] Mot de passe Wi-Fi #définir STA_SSID2 "" // [Ssid2] SSID Wi-Fi AP alternatif facultatif #définir STA_PASS2 "" // [Mot de passe2] Mot de passe Wi-Fi alternatif facultatif AP #définir WIFI_CONFIG_TOOL WIFI_MANAGER // [WifiConfig] Outil par défaut en cas d'échec du Wi-Fi pour se connecter // (WIFI_RESTART, WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPCONFIG, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL) #define WIFI_CONFIG_NO_SSID WIFI_WPCONFIG // Outil par défaut si le wifi ne parvient pas à se connecter et qu'aucun SSID n'est configuré // (WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_SERI AL) // *** REMARQUE : Lorsque WPS est désactivé par USE_WPS ci-dessous, WIFI_WPCONFIG exécutera WIFI_MANAGER *** // *** REMARQUE : Lorsque WIFI_MANAGER est désactivé par USE_WEBSERVER ci-dessous, WIFI_MANAGER exécutera WIFI_SMARTCONFIG *** // ** * REMARQUE : Lorsque WIFI_SMARTCONFIG est désactivé par USE_SMARTCONFIG ci-dessous, WIFI_SMARTCONFIG exécutera WIFI_SERIAL *** // -- Syslog --------------------------- ------------- ----------- #define SYS_LOG_HOST "" // [LogHost] hôte syslog (Linux) #define SYS_LOG_PORT 514 // [LogPort] port UDP syslog par défaut #define SYS_LOG_LEVEL LOG_LEVEL_NONE // [SysLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE) #define SERIAL_LOG_LEVEL LOG_LEVEL_DEBUG // [SerialLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR, LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE) #define WEB_LOG_LEVEL LOG_LEVEL_INFO // [WebLog] (LOG_LEVEL_NONE, LOG_LEVEL_ERROR , LOG_LEVEL_INFO, LOG_LEVEL_DEBUG, LOG_LEVEL_DEBUG_MORE) // -- Ota - ------------------------------------- ----------------- 1T P5Tdefine OTA_URL "http://sonoff.maddox.co.uk/tasmota/sonoff.bin" // [OtaUrl] // -- MQTT ------------------- --------------------- #define MQTT_USE 1 // [SetOption3] Sélectionne l'utilisation de MQTT par défaut (0 = Off, 1 = On) #define MQTT_HOST "" // [MqttHost ] #DEFINE MQTT_FINGERPRIND1 "A5 02 ff 13 9f 8B 39 8e F1 83 65 0B 32 36 FC 07" // [MQttfingerprint1] #DEFINE MQTT_FINGERPRIND2 "A5 02 ff 13 9f 8B 83 4F 11 23 ttf 8B 83 4F 11 23 65 0B 36 //MqFinger" ] #define MQTT_PORT 1883 // [MqttPort] Port MQTT (10123 sur CloudMQTT) #define MQTT_USER "DVES_USER" // [MqttUser] Utilisateur MQTT #define MQTT_PASS "DVES_PASS" // [MqttPassword] Mot de passe MQTT #TAIN.BUTine 0 // [ButtonRetain] Bouton peut envoyer un drapeau de rétention (0 = désactivé, 1 = activé) #define MQTT_POWER_RETAIN 0 // [PowerRetain] Le message d'état de l'alimentation peut envoyer un drapeau de rétention (0 = désactivé, 1 = activé) #define MQTT_SWITCH_RETAIN 0 // [ SwitchRetain] Le commutateur peut envoyer un drapeau de rétention (0 = désactivé, 1 = activé) #définir MQTT_STATUS _OFF "OFF" // [StateText1] Résultat de la commande ou de l'état lorsqu'il est désactivé (doit être une chaîne telle que "0" ou "Off") #define MQTT_STATUS_ON "ON" // [StateText2] Résultat de la commande ou de l'état lorsqu'il est activé (nécessite être une chaîne comme "1" ou "On") #define MQTT_CMND_TOGGLE "TOGGLE" // [StateText3] Commande à envoyer lors du basculement (doit être une chaîne comme "2" ou "Toggle") #define MQTT_CMND_HOLD "HOLD" // [StateText4] Commande à envoyer lorsque le bouton est maintenu enfoncé pendant plus de KEY_HOLD_TIME * 0,1 seconde (doit être une chaîne comme "HOLD") // -- Sujets MQTT ---------------- ----------------- // Exemple "tasmota/chambre/%topic%/%prefix%/" jusqu'à 80 caractères #define MQTT_FULLTOPIC "%prefix%/%topic%/" // [FullTopic] S'abonner et publier nom complet du sujet - Legacy topic // %prefix% token options #define SUB_PREFIX "cmnd" // [Prefix1] Les appareils Sonoff s'abonnent à %prefix%/%topic% étant SUB_PREFIX/MQTT_TOPIC et SUB_PREFIX/MQTT_GRPTOPIC #define PUB_PREFIX "stat" // [Prefix2] Les appareils Sonoff publient sur %prefix%/%topic% étant PUB_PREFIX/MQTT_TOPIC #define PUB_PREFIX2 "tele" // [Prefix3] Les appareils Sonoff publient des données de télémétrie sur %prefix%/%topic% étant PUB_PREFIX2/MQTT, et POWER TIME /UPTIME, POWER et TOPIC / Peut être nommé de la même manière que PUB_PREFIX // Options de jeton %topic% (également ButtonTopic et SwitchTopic) #define MQTT_TOPIC PROJECT // [Topic] (unique) Sujet de périphérique MQTT, défini sur 'PROJECT "_X"' pour un sujet unique comprenant un périphérique Adresse MAC #define MQTT_GRPTOPIC "sonoffs" // [GroupTopic] Sujet de groupe MQTT #define MQTT_BUTTON_TOPIC "0" // [ButtonTopic] Sujet de bouton MQTT, "0" = identique à MQTT_TOPIC, défini sur 'PROJECT "_BTN_X"' pour un sujet unique comprenant un périphérique Adresse MAC #define MQTT_SWITCH_TOPIC "0" // [SwitchTopic] Sujet du bouton MQTT, "0" = identique à MQTT_TOPIC, défini sur 'PROJECT "_SW_X"' pour un sujet unique comprenant l'adresse MAC de l'appareil #define MQTT_CLIENT_ID "DVES_X" // [MqttClient] Se rabat également sur le sujet en utilisant Chip Id = 6 derniers caractères de l'adresse MAC // -- MQTT - Télémétrie ------------------------ ---- #define TELE_PERIOD 300 // [TelePeriod] Télémétrie (0 = désactiver, 10 - 3600 secondes) // -- MQTT - Domoticz -------------------- --------- #define DOMOTICZ_UPDATE_TIMER 0 // [DomoticzUpdateTimer] Envoyer l'état du relais (0 = désactiver, 1 - 3600 secondes) // -- MQTT - Home Assistant Discovery ----------- -- #define HOME_ASSISTANT_DISCOVERY_ENABLE 0 // [SetOption19] Découverte de l'assistant domestique (0 = Désactiver, 1 = Activer) // -- HTTP ----------------------- ----------------- #définir WEB_SERVER 2 // [WebServer] Serveur Web (0 = Désactivé, 1 = Démarrer en tant qu'utilisateur, 2 = Démarrer en tant qu'administrateur) #définir WEB_PASSWORD "" // [WebPassword] Mot de passe du mode administrateur du serveur Web pour WEB_USERNAME (chaîne vide = Désactiver) #define FRIENDLY_NAME "Gluehlampe" // [FriendlyName] Friendlyname jusqu'à 32 caractères utilisés par les pages Web et Alexa #define EMULATION EMUL_NONE // [Emulation] Select Belk dans WeMo (relais unique/lumière) ou émulation Hue Bridge (multi-relais/lumière) (EMUL_NONE, EMUL_WEMO ou EMUL_HUE) // -- Temps - Jusqu'à trois serveurs NTP dans votre région #define NTP_SERVER1 "pool.ntp.org" // [NtpServer1] Sélectionnez le premier serveur NTP par nom ou adresse IP (129.250.35.250) #define NTP_SERVER2 "nl.pool.ntp.org" // [NtpServer2] Sélectionnez le deuxième serveur NTP par nom ou adresse IP (5.39.184.5) #define NTP_SERVER3 " 0.nl.pool.ntp.org" // [NtpServer3] Sélectionnez le troisième serveur NTP par nom ou adresse IP (93.94.224.67) // -- Heure - Début de l'heure d'été et décalage du fuseau horaire par rapport à UTC en minutes #définir TIME_DST_HEMISPHERE Nord / / [TimeDst] Hémisphère (0 ou Nord, 1 ou Sud) #define TIME_DST_WEEK Last // Semaine du mois (0 ou Last, 1 ou First, 2 ou Second, 3 ou Third, 4 ou Fourth) #define TIME_DST_DAY Sun // Jour du semaine (1 ou Dim, 2 ou Lun, 3 ou Mar, 4 ou Mer, 5 ou Jeu, 6 ou Ven, 7 ou Sam) #définir TIME_DST_MONTH Mar // Mois (1 ou Jan, 2 ou Fév, 3 ou Mar, 4 ou avril, 5 ou mai, 6 ou Jun, 7 ou Jul, 8 ou Aug, 9 ou Sep, 10 ou Oct, 11 ou Nov, 12 ou Dec) #définir TIME_DST_HOUR 2 // Heure (0 à 23) #définir TIME_DST_OFFSET +120 // Décalage UTC en minutes (-780 à +780) // -- Time - Start Standard Time et timezone offset from UTC in minutes #define TIME_STD_HEMISPHERE North // [TimeStd] Hémisphère (0 ou Nord, 1 ou South) #define TIME_STD_WEEK Last // Semaine du mois 0 ou Dernier, 1 ou Premier, 2 ou Deuxième, 3 ou Troisième, 4 ou Quatrième) #define TIME_STD_DAY Dim // Jour de la semaine (1 ou Dim, 2 ou Lun, 3 ou Mar, 4 ou Mer, 5 ou Jeu, 6 ou Ven, 7 ou Sam) #define TIME_STD_MONTH Oct // Mois (1 ou Jan, 2 ou Feb, 3 ou Mar, 4 ou Apr, 5 ou May, 6 ou Jun, 7 ou Jul, 8 ou Aug, 9 ou Sep, 10 ou Oct, 11 ou Nov, 12 ou Dec) #définir TIME_STD_HOUR 3 // Heure (0 à 23) #définir TIME_STD_OFFSET +60 // Décalage UTC en minutes (-780 à +780) // -- Localisation ---- -------------------------------- #define LATITUDE 48.858360 // [Latitude] Votre emplacement à utiliser avec sunr ise and sunset #define LONGITUDE 2.294442 // [Longitude] Votre emplacement à utiliser avec le lever et le coucher du soleil // -- Application ------------------------------ -------------- -------- #define APP_TIMEZONE 1 // [Timezone] +1 heure (Amsterdam) (-13 .. 14 = heures depuis UTC, 99 = utiliser TIME_DST/TIME_STD) #définir APP_LEDSTATE LED_POWER // [LedState] Fonction de la LED // (LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQTTPUB, LED_POWER_MQTTPUB, LED_MQTT, LED_POWER_MQTT) #définir APP_PULSETIME 0.1 Sec] pour le relais 1 (0 = désactivé) #define APP_POWERON_STATE POWER PowerOnState] Power On Relay state // (POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON) #define APP_BLINKTIME 10 // [BlinkTime] Temps en 0,1 s pour clignoter/basculer relais 1 #définir APP_BLINKCOUNT 10] Nombre de clignotements (0 = 32000) #définir APP_SLEEP 0 // [Veille] Temps de veille pour baisser l'énergie y consommation (0 = Off, 1 - 250 mSec) #define KEY_DEBOUNCE_TIME 50 // [ButtonDebounce] Nombre de mSeconds appui sur le bouton temps anti-rebond #define KEY_HOLD_TIME 40 // [SetOption32] Nombre de 0.1 secondes à maintenir le Bouton ou le Bouton-poussoir externe avant d'envoyer le message HOLD #define SWITCH_DEBOUNCE_TIME 50 // [SwitchDebounce] Nombre de mSeconds switch press anti-rebond time #define SWITCH_MODE TOGGLE // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV, PUSHBUTTON, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLEde (l'état de l'interrupteur mural) #define 1TP28Tdefine Pixels de WS LED WS2812 pour commencer (max est 512) #define TEMP_CONVERSION 0 // [SetOption8] Température de retour en (0 = Celsius ou 1 = Fahrenheit) #define TEMP_RESOLUTION 1 // [TempRes] Nombre maximum de décimales (0 - 3) indiquant la température du capteur #définir HUMIDITY_RESOLUTION 1 // [HumRes] Nombre maximum de décimales (0 - 3) indiquant l'humidité du capteur #définir PRESSURE_RESOLUTION 1 // [PressRes] M nombre maximal de décimales (0 - 3) indiquant la pression du capteur #define ENERGY_RESOLUTION 3 // [EnergyRes] Nombre maximal de décimales (0 - 5) indiquant la consommation d'énergie en kWh /*************** ****************************************************** ****************************\ * FIN DE LA SECTION 1 * * SECTION 2 * - Activez une fonctionnalité en supprimant les deux // devant * - Désactiver une fonctionnalité en la faisant précéder de // \************************************ ****************************************************** *******/ // -- Localisation --------------------------------- // Sinon sélectionné par défaut en-GB sera utilisé //#define MY_LANGUAGE bg-BG // bulgare en Bulgarie //#define MY_LANGUAGE cs-CZ // tchèque en tchèque #define MY_LANGUAGE de-DE // allemand en Allemagne //#define MY_LANGUAGE el-GR // Grec en Grèce //#define MY_LANGUAGE en-GB // Anglais en Grande-Bretagne. Activé par défaut //#define MY_LANGUAGE es-AR // Espagnol en Argentine //#define MY_LANGUAGE fr-FR // Français en France //#define MY_LANGUAGE hu-HU // Hongrois en Hongrie //#define MY_LANGUAGE it-IT // Italien en Italie //#define MY_LANGUAGE nl-NL // Néerlandais aux Pays-Bas //#define MY_LANGUAGE pl-PL // Polonais en Pologne //#define MY_LANGUAGE pt-BR // Portugais au Brésil //#define MY_LANGUAGE pt-PT // Portugais au Portugal //#define MY_LANGUAGE ru-RU // Russe en Russie //#define MY_LANGUAGE tr-TR // Turc en Turquie //#define MY_LANGUAGE uk-UK // Ukrainien en Ukraine //#define MY_LANGUAGE zh-CN // Chinois (simplifié) en Chine //#define MY_LANGUAGE zh-TW // Chinois (traditionnel) à Taïwan // -- Outils de configuration Wifi --------------------------- -------------- //#define USE_WPS //Ajout de la prise en charge de WPS en tant qu'outil de configuration wifi initial (+33k code, 1k mem (5k mem with core v2.4.2+)) //#define USE_SMARTCONFIG // Ajout de la prise en charge de Wifi SmartConfig a s outil de configuration wifi initial (+23k code, +0.6k mem) // -- OTA ------------------------------ ----------- #define USE_ARDUINO_OTA // Ajout du support optionnel pour Arduino OTA (+code 13k) /*--------- ------------- ------------------------------------- ------------- ------*\ * Sélectionnez UN des trois types de bibliothèques MQTT possibles ci-dessous \*----------------- ------------- ------------------------------------- ------------- -----------*/ // Pilote MQTT par défaut pour les connexions non-TLS et TLS. Bloque le réseau si le serveur MQTT n'est pas disponible. #define MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Utiliser la bibliothèque PubSubClient // Le pilote MQTT alternatif ne bloque pas le réseau lorsque le serveur MQTT n'est pas disponible. Pas de support TLS //#define MQTT_LIBRARY_TYPE MQTT_TASMOTAMQTT // Utiliser la bibliothèque TasmotaMqtt (+4k4 code, +4k mem) - non-TLS uniquement // Le pilote MQTT alternatif ne bloque pas le réseau lorsque le serveur MQTT n'est pas disponible. Pas de support TLS //#define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO // Utiliser la bibliothèque esp-mqtt-arduino (correctionnée) (+4k8 code, +4k mem) - non-TLS uniquement // -- MQTT ----------- ------------------------------------------ #define MQTT_TELE_RETAIN 0 // Les télémessages peuvent envoyer un indicateur de rétention (0 = désactivé, 1 = activé) / / -- MQTT - Domoticz ------------------------------- ----------- //#define USE_DOMOTICZ // Enable Domoticz (+6k code, +0.3k mem) #define DOMOTICZ_IN_TOPIC "domoticz/in" // Domoticz Input Topic #define DOMOTICZ_OUT_TOPIC "domoticz/out" // Domoticz Output Topic // -- MQTT - Home Assistant Discovery ------------- / /#define USE_HOME_ASSISTANT // Activer la prise en charge de la découverte de Home Assistant (+2k code) #define HOME_ASSISTANT_DISCOVERY_PREFIX "homeassistant" // Home Assistant préfixe de découverte // -- MQTT - TLS ----------------- ----------------- // !!! TLS utilise BEAUCOUP DE MÉMOIRE donc attention à activer d'autres options en même temps !!! //#define USE_MQTT_TLS // Utiliser TLS pour la connexion MQTT (+53k code, +15k mem) // -- KNX IP Protocol ----------------------- ------ //#define USE_KNX // Activer la prise en charge du protocole IP KNX (+9.4k code, +3k7 mem) // #define USE_KNX_WEB_MENU // Activer KNX WEB MENU (+8.3k code, +144 mem) // - - HTTP --------------------------------------- #define USE_WEBSERVER // Activer le serveur Web et le Wifi Manager (+66k code, +8k mem) #define WEB_PORT 80 // Port du serveur Web pour les modes utilisateur et administrateur #define WEB_USERNAME "admin" // Nom d'utilisateur du mode administrateur du serveur Web #define USE_EMULATION // Activer l'émulation Belkin WeMo et Hue Bridge pour Alexa ( +16k code, +2k mémoire) // -- mDNS ------------------------------------- - --- #define USE_DISCOVERY // Activer mDNS pour les services suivants (+8k code, +0.3k mem) #define WEBSERVER_ADVERTISE // Fournir un accès au serveur web par nom .local/ #define MQTT_HOST_DISCOVERY // Trouver le serveur hôte MQTT (écrase MQTT_HOST si trouvé) // -- Temps --------------- --------------------------------------- #define USE_TIMERS // Ajout de la prise en charge jusqu'à 16 minuteries (+2k2 code) #define USE_TIMERS_WEB // Ajoute la prise en charge de la page Web de la minuterie ( +4k5 code) #define USE_SUNRISE // Ajoute la prise en charge des outils de lever et de coucher du soleil (+16k) #define SUNRISE_DAWN_ANGLE DAWN_NORMAL // Sélectionnez l'angle d'aube souhaité parmi (DAWN_NORMAL, DAWN_CIVIL, DAWN_NAUTIC, DAWN_ASTRONOMIC) // -- Règles ------- -------------------------------- #define USE_RULES // Ajout de la prise en charge des règles (+ code 4k4) // -- Entrée analogique interne ----------------------- // #define USE_ADC_VCC // Afficher Vcc dans l'état de l'alimentation . Désactiver pour une utilisation en tant qu'entrée analogique sur les appareils sélectionnés // -- Capteurs à un fil ---------------------------- // AVERTISSEMENT : n'en sélectionnez aucun par défaut, un capteur DS18B20 ou activez l'une des deux options suivantes pour plusieurs capteurs //#define USE_DS18x20 // Facultatif pour plus d'un capteur DS18x20 avec tri par identifiant, lecture unique et nouvelle tentative de lecture (+ code 1k3) //#define USE_DS18x20_LEGACY // Facultatif pour plusieurs capteurs DS18x20 avec balayage dynamique à l'aide de la bibliothèque OneWire (+ code 1k5) // -- Capteurs I2C --------------------------- -------------- ------ //#définir USE_I2C // I2C en utilisant le fil de bibliothèque (+10k code, 0k2 mem, 124 iram) #ifdef USE_I2C // #définir USE_SHT // Activer Capteur SHT1X (+ code 1k4) // #définir USE_HTU // Activer le capteur HTU21/SI7013/SI7020/SI7021 (adresse I2C 0x40) (+ code 1k5) //#définir USE_BMP // Activer le capteur BMP085/BMP180/BMP280/BME280 (adresse I2C 0x76 ou 0x77) (+ code 4k) // #define USE_BME680 // Activer la prise en charge du capteur BME680 à l'aide de la bibliothèque Bosch BME680 (+ code 4k) // #de fine USE_BH1750 // Activer le capteur BH1750 (adresse I2C 0x23 ou 0x5C) (+code 0k5) // #define USE_VEML6070 // Activer le capteur VEML6070 (adresses I2C 0x38 et 0x39) (+code 0k5) // #define USE_ADS1115 // Activer ADS1115 16 bits Convertisseur A/N (adresse I2C 0x48, 0x49, 0x4A ou 0x4B) basé sur la bibliothèque Adafruit ADS1x15 (aucune bibliothèque nécessaire) (+code 0k7) // #define USE_ADS1115_I2CDEV // Activer le convertisseur A/N ADS1115 16 bits (adresse I2C 0x48, 0x49 , 0x4A ou 0x4B) en utilisant la bibliothèque i2cdevlib-Core et i2cdevlib-ADS1115 (+code 2k) // #define USE_INA219 // Activer INA219 (adresse I2C 0x40, 0x41 0x44 ou 0x45) Capteur basse tension et courant (+code 1k) // #define USE_SHT3X // Activer le capteur SHT3x (adresse I2C 0x44 ou 0x45) ou SHTC3 (adresse I2C 0x70) (+code 0k7) // #define USE_TSL2561 // Activer le capteur TSL2561 (adresse I2C 0x29, 0x39 ou 0x49) à l'aide de la bibliothèque Joba_Tsl2561 (+code 2k3) ) // #define USE_MGS // Activer le capteur de gaz multicanal Xadow et Grove à l'aide de la bibliothèque Multichannel_Gas_Sensor (+10k co de) // #define MGS_SENSOR_ADDR 0x04 // Adresse i2c par défaut du capteur de gaz multicanal // #define USE_SGP30 // Activer le capteur SGP30 (adresse I2C 0x58) (+ code 1k1) // #define USE_SI1145 // Activer le capteur SI1145/46/47 (adresse I2C 0x60) (+1k code) // #define USE_LM75AD // Activer le capteur LM75AD (adresses I2C 0x48 - 0x4F) (+0k5 code) // #define USE_APDS9960 // Activer le capteur de proximité APDS9960 (adresse I2C 0x39). Désactive SHT et VEML6070 (+ code 4k7) // # définit USE_MCP230xx // Active MCP23008/MCP23017 pour GP INPUT ONLY (adresses I2C 0x20 - 0x27) fournissant la commande Sensor29 pour la configuration (+ code 4k7) // # définit USE_MCP230xx_OUTPUT // Active MCP23001/MCP2301 /MCP2301/MCP2301 Prise en charge de OUTPUT via les commandes sensor29 (+ code 1k5) // #define USE_MCP230xx_DISPLAYOUTPUT // Activer MCP23008/MCP23017 pour afficher l'état des broches OUTPUT sur l'interface utilisateur Web (+ code 0k2) //#define USE_MPR121 // Activer le contrôleur MPR121 (adresses I2C 0x5A, 0x5B, 0x5C et 0x5D) en mode saisie pour les boutons tactiles (+ code 1k3) // #define USE_CCS811 // Activer le capteur CCS811 (adresse I2C 0x5A) (+2k2 code) // #define USE_MPU6050 // Activer le capteur MPU6050 (adresse I2C 0x68 AD0 bas ou 0x69 AD0 haut) (+code 2k6) #endif // USE_I2C // -- Capteurs SPI --------------------------- ---- -- //#define USE_SPI // SPI utilisant la bibliothèque TasmotaTFT #ifdef USE_SPI #endif // USE_SPI // -- Capteurs série ---------------------- ------------------ ---- #définir NOUS E_MHZ19 // Ajoute la prise en charge du capteur de CO2 MH-Z19 (+ code 2k) #définit USE_SENSEAIR // Ajoute la prise en charge du capteur de CO2 SenseAir K30, K70 et S8 (+ code 2k3) #définit CO2_LOW 800 // En dessous de cette valeur de CO2, le feu vert s'affiche (nécessite LED PWM ou WS2812 RG(B) et activation avec SetOption18 1) #define CO2_HIGH 1200 // Au-dessus de cette valeur de CO2, affichage de la lumière rouge (nécessite PWM ou WS2812 RG(B) led et activation avec SetOption18 1) #define USE_PMS5003 // Ajout de la prise en charge de PMS5003 et capteur de concentration de particules PMS7003 (+ code 1k3) #define USE_NOVA_SDS // Ajout de la prise en charge des capteurs de concentration de particules SDS011 et SDS021 (+ code 0k7) #define USE_PZEM004T // Ajout de la prise en charge du moniteur d'énergie PZEM004T (+ code 2k) #define USE_SERIAL_BRIDGE // Ajout de la prise en charge de logiciel Serial Bridge (+code 0k8) //#define USE_SDM120 //Ajout de la prise en charge du compteur d'énergie Eastron SDM120-Modbus (+code 1k7) #define SDM120_SPEED 9600 //SDM120-Modbus RS485 vitesse série (par défaut : 2400 bauds) //#define USE_SDM630/ / Ajout de la prise en charge de l'Est Compteur d'énergie ron SDM630-Modbus (+ code 2k) #define SDM630_SPEED 9600 // SDM630-Modbus Vitesse série RS485 (par défaut : 9600 bauds) // -- Dispositifs d'interface de bas niveau -------------- --- //#define USE_IR_REMOTE // Envoie des commandes à distance IR à l'aide de la bibliothèque IRremoteESP8266 et ArduinoJson (+4k code, 0k3 mem, 48 iram) // #define USE_IR_HVAC // Prise en charge du système HVAC utilisant IR (+2k code) // #define USE_IR_RECEIVE // Prise en charge du récepteur IR (+5k5 code, 264 iram) #define USE_WS2812 // WS2812 Led string utilisant la bibliothèque NeoPixelBus (+5k code, +1k mem, 232 iram) - Désactiver par // #define USE_WS2812_CTYPE NEO_GRB // WS2812 Type de couleur ( NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW) // #définit USE_WS2812_DMA // DMA ne prend en charge que GPIO03 (= Serial RXD) (+1k mem). Lorsque USE_WS2812_DMA est activé, attendez-vous à des exceptions sur Pow //#define USE_ARILUX_RF //Ajouter la prise en charge de la télécommande Arilux RF (+code 0k8, 252 iram (non 2.3.0)) //#define USE_SR04 //Ajouter la prise en charge des appareils à ultrasons HC-SR04 ( +1k code) //#define USE_TM1638 // Ajout de la prise en charge des commutateurs TM1638 copiant Switch1 .. Switch8 (+1k code) #define USE_RF_FLASH // Ajout de la prise en charge du flashage de la puce EFM8BB1 sur le pont RF Sonoff. C2CK doit être connecté à GPIO4, C2D à GPIO5 sur le PCB (+code 3k) /******************************** ****************************************************** ************\ * Les fonctionnalités de débogage ne sont prises en charge que dans la branche de développement \*************************** ****************************************************** ****************/ //#define USE_DEBUG_DRIVER // Utilisez xdrv_99_debug.ino en fournissant les commandes CpuChk, CfgXor, CfgDump, CfgPeek et CfgPoke /*********** ****************************************************** ********************************\ * Configurations optionnelles du micrologiciel * Sélectionnez aucune ou une seule pour les fonctionnalités optionnelles et les capteurs configurés dans sonoff_post.h * Voir RELEASENOTES.md pour les fonctionnalités sélectionnées \**************************************** ****************************************************** ******/ //#define USE_CLASSIC // Créer sonoff-classic avec les outils de configuration initiale WPS, SmartConfig et WifiManager //#define USE_SENSORS // Créer des sonoff-sensors avec des capteurs utiles activés //1T P5Tdefine USE_KNX_NO_EMULATION // Créer sonoff-knx avec KNX mais sans émulation //#define BE_MINIMAL // Créer sonoff-minimal comme firmware intermédiaire pour OTA-MAGIC /******************** ****************************************************** ************************\ * Aucun élément configurable par l'utilisateur ci-dessous \******************* ************************************************* * *************************/ #if defined(USE_MQTT_TLS) && defined(USE_WEBSERVER) #error "Sélectionnez USE_MQTT_TLS ou USE_WEBSERVER car il n'y en a tout simplement pas assez mémoire pour jouer avec" #endif #endif // _USER_CONFIG_H_


Collez la compensation de filetage sur le culot de la lampe

Lorsque j'ai installé cette lampe pour la première fois, j'ai eu le problème que la base de l'ampoule, qui n'était pas tout à fait plate, ne tenait pas correctement sur la base de la lampe. Pour compenser cette irrégularité, j'ai collé un anneau de compensation au pied de la lampe. Je l'ai ensuite intégré dans la base de la lampe. Cependant, par souci d'exhaustivité, il est inclus ici.

Gros plan sur la base de l'ampoule légèrement inégale.
Gros plan sur l'anneau d'équilibrage.
Avec la bague de compensation collée au culot de la lampe, le logement de l'ampoule tient maintenant debout…
...droit et droit.
La meilleure façon de le faire est de fixer l'anneau de compensation avec de la colle chaude.

Combinez le boîtier de l'ampoule avec la base de la lampe

Maintenant, vous pouvez également connecter le boîtier de la lampe à la base de la lampe.

Maintenant, vous pouvez soigneusement placer le boîtier de l'ampoule sur la tige du culot de la lampe. Si tout convient, vous pouvez ensuite coller le boîtier de l'ampoule sur la base de la lampe avec de la colle chaude.
Gros plan sur la "petite" version.
Gros plan sur la "grande" version.
Comparaison de taille entre la "petite" et la "grande" version.

Voici à quoi cela ressemble avec les lumières allumées.


Autres possibilités de construction

Si le pied de lampe en plastique imprimé en 3D ne vous plaît pas, vous pouvez également utiliser un pied en planche de bois. Il existe un autre adaptateur avec lequel vous pouvez fixer le boîtier de l'ampoule au panneau en bois.

Vous pouvez également trouver le fichier STL pour imprimer ce pied de lampe dans la zone supérieure "Composants 3D".

La combinaison avec différentes essences de bois ou de panneaux vous offre encore plus d'options pour modifier ce projet selon vos souhaits.


Amuse-toi bien 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 également toujours les bienvenues. 🙂

P.S. Beaucoup de ces projets - surtout les projets de matériel - coûtent beaucoup de temps et d'argent. Bien sûr, je le fais parce que j'aime ça, mais si tu trouves ça cool que je partage les infos à ce sujet avec toi, je serais heureux de faire un petit don à la caisse du café. 🙂

Achetez-moi un café sur ko-fi.com       

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert