HowTo: Tasmota - Bouw een Smart Home-lamp met retro gloeilamp

Zoals daarin Retro luidsprekerproject het is een kleine hobby van mij om oude dingen een nieuwe bestemming te geven. Als je dan ook de oude techniek kunt verbeteren en bijvoorbeeld energiezuiniger kunt maken, is dat een mooie kers op de taart.

Dat gebeurde onlangs toen ik een doos met oude gloeilampen tegenkwam. Die wilde ik niet meer gebruiken, want ik jaag nu achter die nieuwerwetse trend aan om de heater echt te gebruiken om te verwarmen.

Maar ik vond het ook zonde om de oude lampen gewoon weg te gooien. Dus besloot ik om de oude "domme" gloeilampen een nieuwe, intelligente innerlijke werking te geven. Er moet minstens één respectabele decoratieve lamp mee gebouwd kunnen worden.
Ik heb in het volgende artikel beschreven hoe dit werkt en waar je rekening mee moet houden bij het repliceren.


Veiligheidsinstructies

Ik weet dat de volgende tips altijd vervelend zijn en onnodig lijken. Maar helaas hebben veel mensen die "beter" wisten al ogen, vingers of andere zaken verloren of zich door onvoorzichtigheid verwond. In vergelijking daarmee is een verlies van gegevens nauwelijks het vermelden waard, maar zelfs die kunnen heel vervelend zijn. Neem daarom vijf minuten de tijd om de veiligheidsinstructies te lezen. Want zelfs het coolste project is geen letsel of andere problemen waard.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links / reclame links

De hier vermelde links naar online winkels zijn zogenaamde affiliate links. Als u op zo'n affiliate link klikt en via deze link een aankoop doet, ontvangt Nerdiy.de een commissie van de betreffende webwinkel of aanbieder. De prijs verandert niet voor jou. Als u uw aankopen doet via deze links, steunt u Nerdiy.de om in de toekomst nog meer nuttige projecten te kunnen aanbieden. 🙂 


Eisen

Handige artikelen:
Voordat u met dit artikel begint, moet u de basisprincipes van solderen hebben behandeld. Informatie hierover vind je in het volgende artikel.
Elektronica - Mijn vriend de soldeerbout

Benodigd materiaal:

In de volgende lijst vindt u alle onderdelen die u nodig heeft om dit artikel te implementeren.

Benodigd gereedschap:

In de volgende lijst vind je alle tools die je nodig hebt om dit artikel te implementeren.


Verzamel de onderdelen die je nodig hebt

Om je smart home lamp met retro gloeilamp in te stellen, heb je de getoonde onderdelen of de onderdelen die vermeld staan onder vereisten nodig. Wat het ESP8266-adapterbord betreft, dit hoeft niet per se een Wemos D1-Mini te zijn. Dit is echter een van de kleinere adapterborden op de markt en juist daarom is er, in ieder geval in de 40W-versie, vrijwel geen alternatief - de grotere adapterborden passen simpelweg niet zo goed in de lampfitting.

Overzicht van de benodigde onderdelen.
De bol zou al "geboord" moeten zijn. Hoe je dit doet staat in het artikel "Core" gloeilampen uitgelegd.
De lampfitting houdt later de lamp rechtop en verbergt ook het ESP8266-adapterbord.
De zes WS2812B LED's zorgen voor de verlichting van de lamp. Hun kleur en helderheid kunnen later via een webinterface worden aangepast.

3D print de onderdelen die je nodig hebt

Download alle vereiste STL-bestanden: Tasmota - Bouw Retro Gloeilamp Smart Home Lamp

Fitting voor 40W gloeilamp:

U kunt de 3D-weergave van het STL-bestand roteren door de muisknop ingedrukt te houden. U kunt in- en uitzoomen met het muiswiel.

Fitting voor 100W gloeilamp:

U kunt de 3D-weergave van het STL-bestand roteren door de muisknop ingedrukt te houden. U kunt in- en uitzoomen met het muiswiel.

100W schroefbasis:

U kunt de 3D-weergave van het STL-bestand roteren door de muisknop ingedrukt te houden. U kunt in- en uitzoomen met het muiswiel.


schakelschema

Hier vindt u de schakelschema's die aangeven hoe de lamp in principe is opgebouwd.

Normaal bedradingsschema.
Fritzings visie.

LED's bevestigen

De eerste stap naar je eigen retro gloeilamp smart home lamp is het bevestigen van de ledstrips. Deze moeten al in paren van twee worden gesneden.

Lijm vervolgens de eerste ledstrip aan de kant waar het gat in de schacht van de lampvoet zit zoals afgebeeld. De lijn die uw ESP8266-adapterkaart met de LED's verbindt, wordt hier later doorheen geleid. Het is op dit punt belangrijk dat u let op de "looprichting" van de LED's. Op dit punt moet de zwarte pijl op de LED-strip naar boven wijzen, dus weg van het gat.
Vervolgens wordt de volgende ledstrip erop gelijmd. Hier wordt de "looprichting" weer gewijzigd - de zwarte pijl wijst naar beneden.
De laatste ledstrip wordt op de enige overgebleven vrije ruimte gelijmd. De "looprichting" wordt weer gewijzigd. Deze keer wijzen de zwarte pijlen op de ledstrip naar boven.

Soldeer de eerste LED's

Omdat de LED's ook van energie en data (kleur, helderheid, enz.) kunnen worden voorzien, moeten ze natuurlijk op het ESP8266-adapterbord worden aangesloten.

Hiervoor heb je een 20cm lange 3-aderige kabel nodig.
Isoleert de afzonderlijke leidingen ca. 3-5 mm...
...en vertin de losgekomen kabeleinden. Tips voor het gebruik van de soldeerbout vind je in het artikel Elektronica - Mijn vriend de soldeerbout.
Vervolgens kunt u de kabel in de schacht van de lampvoet steken...
...en soldeer deze op de contacten van de eerste ledstrip. Zorg ervoor dat de "looprichting" van de ledstrips juist is. De zwarte pijlen moeten van de aansluitkabel op de eerste ledstrip af wijzen.

Sluit LED's aan op het ESP8266-adapterbord

Voordat de andere LED's worden gesoldeerd, wordt eerst het ESP8266-adapterbord aangesloten op de voedingslijn naar de LED's, omdat je op deze manier de resterende lijnen kunt gebruiken.

Voordat je begint met het installeren van het ESP8266 adapterboard, raad ik ook aan om eventueel de geïntegreerde LED van het adapterboard te verwijderen. Helaas gloeit dit zo fel dat het anders zichtbaar is door het plastic van de voet. Hoe je dit kunt doen staat in het artikel ESP8266 - LED verwijderen/uitschakelen beschreven.

De kabel zou al uit het stopcontact moeten steken. Splitst de afzonderlijke lijnen tot aan het uitgangsgat in de basis...
...en lijmt het ESP8266-adapterbord in de socket. Dit werkt heel goed met dikker dubbelzijdig plakband of wat hete lijm. Het is belangrijk dat de USB-poort van het adapterbord in de richting van de uitstulping in de basis wijst. Alleen zo kun je de lamp later aansluiten op een USB-kabel.
Nadat u het ESP8266-adapterbord hebt vastgelijmd en dienovereenkomstig hebt uitgelijnd, kunt u...
...kort de lijnen in zodat ze ongeveer 3-4 cm uitsteken.
Isoleert opnieuw ongeveer 3-5 mm van de leidingen en...
...vertin ze met wat soldeer.
Bereid hier de contacten van het ESP8266 adapterboard voor door vooraf de aansluitcontacten “D2”, “G” en “5V” te vertinnen.
als je alle plekken hebt vertind, kun je...
...soldeer de lijnen al. Zorg ervoor dat de lijnen de juiste plaatsen tussen de LED-strips en het ESP8266-adapterbord verbinden. "+5V" van de LED moet worden aangesloten op "5V" van het adapterbord, "GND" van de LED op "G" van het adapterbord en "DIN" van de LED op "D2" van het adapterbord.
Hier is nog een close-up van de gesoldeerde kabel.

Soldeer de overige ledstrips aan elkaar

Tot nu toe zijn slechts twee van de zes leds of één van de drie ledstripelementen aan elkaar gesoldeerd. Om de resterende ledstrips te solderen, kun je nu de overgebleven draad gebruiken die je in de vorige stap hebt afgeknipt.

Voordat u kunt beginnen met het aansluiten van de ledstrips dient u alle contactpunten weer gereed te maken.
Vertin hiervoor de contacten aan de bovenzijde van de eerste ledstrip.
En ook de bovenste en onderste contacten van de tweede en…
...derde LED-strip.
Om de resterende LED-strips met elkaar te verbinden, bereidt u zes stukken kabel van ongeveer 2 cm lang voor. Isoleer daarbij de uiteinden van de kabel nogmaals ca. 3-5 mm en vertin de kabeluiteinden.
Aangezien je de contacten op de LED-strips al hebt voorbereid, kun je de eerste drie verbindingslijnen al solderen.
Hier is een close-up van de eerste drie gesoldeerde verbindingslijnen.
Deze kunt u nu buigen en aansluiten op de tweede ledstrip. Zorg ervoor dat u de juiste contacten aansluit. "GND" van de eerste ledstrip moet ook worden aangesloten op "GND" van de tweede ledstrip. Ook "+5V" met "+5V" en "Dout" van de eerste strip met "Din" van de tweede strip.
Close-up van de gesoldeerde draad op de tweede ledstrip.
Close-up van de verbinding tussen de eerste en tweede ledstrip.
Nu kunt u de resterende drie lijnen aan de tweede LED-strip solderen.
Close-up van de gesoldeerde draden op de tweede LED-strip.
Deze kun je vervolgens op de derde (en laatste) ledstrip solderen.
Nadat u alle LED-strips hebt gesoldeerd, zou het er ongeveer zo uit moeten zien. Controleer nu nogmaals of u de lijnen op de juiste contacten hebt gesoldeerd.
Overzicht van de gesoldeerde ledstrips.
Verdere opname van de gesoldeerde ledstrips.
Je moet nu de gesoldeerde lijnen zo strak mogelijk om de lampvoet leggen.
...dan heb je later geen problemen met het plaatsen van de LED's en de lampvoet in de gloeilamp met kern.

Programmeer het ESP8266-adapterbord en voer de eerste test uit

Nadat de laatste soldeerverbinding is afgekoeld, is het tijd voor een eerste test. Speel de Tasmota-firmware af op het adapterbord en test de leds. Hoe je dit doet staat in het artikel Tasmota - flash-firmware beschreven.

Hieronder is een configuratie die ik voor mijn lamp heb gebruikt. Natuurlijk moet u nog steeds de toegangsgegevens voor uw WLAN en, indien nodig, de toegangsgegevens voor uw MQTT-server configureren.

/* user_config.h - gebruikersspecifieke configuratie voor Sonoff-Tasmota Copyright (C) 2018 Theo Arends Dit programma is vrije software: u kunt het herdistribueren en/of wijzigen onder de voorwaarden van de GNU General Public License zoals gepubliceerd door de Vrije Software Foundation, hetzij versie 3 van de Licentie, of (naar uw keuze) een latere versie. Dit programma wordt verspreid in de hoop dat het nuttig zal zijn, maar ZONDER ENIGE GARANTIE; zonder zelfs de impliciete garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de GNU General Public License voor meer details. U zou samen met dit programma een kopie van de GNU General Public License moeten hebben ontvangen. Zo niet, zie . */ #ifndef _USER_CONFIG_H_ #define _USER_CONFIG_H_ /******************************************* ******************************************************* \ * Dit bestand bestaat uit TWEE secties. * * SECTIE 1: * De eerste sectie bevat PARAMETERS die flitsinstellingen overschrijven als de definitie CFG_HOLDER is GEWIJZIGD. * Alle parameters kunnen permanent online worden gewijzigd met behulp van opdrachten via MQTT, WebConsole of Serial. * Corresponderende MQTT/Serial/Console-commando's worden weergegeven tussen [haakjes] * * SECTIE 2: * De tweede sectie bevat ingeschakelde en uitgeschakelde FUNCTIES die verschillende programmagroottes mogelijk maken. * Wijzigingen in deze sectie hebben GEEN wijziging van de definitie CFG_HOLDER nodig. * * LET OP: * Gebruikers wordt geadviseerd om voor de meeste wijzigingen het bestand user_config_override.h te gebruiken. \************************************************** *** *********************************************/ // #define USE_CONFIG_OVERRIDE / / Commentaar verwijderen om het bestand user_config_override.h te gebruiken. Zie README.md /********************************************* *** **************************************************** *\ * SECTIE 1 * - Na de eerste keer laden wordt elke wijziging hier alleen van kracht als CFG_HOLDER ook wordt gewijzigd \**************************** *** **************************************************** *** ************/ // -- Masterparameterbesturing -------------------- #define CFG_HOLDER 4617 // [Reset 1] Verander deze waarde (max 32000) om SECTION1 configuratieparameters te laden om te flashen // -- Project -------------------------------------------- --- ----- #define PROJECT "Gluehlampe" // PROJECT wordt gebruikt als het standaardonderwerpscheidingsteken #define MODULE WEMOS // [Module] Selecteer het standaardmodel uit sonoff_template.h (mag niet worden gewijzigd) #define SAVE_DATA 1 // [ SaveData] Sla gewijzigde parameters op in Flash (0 = uitschakelen, 1 - 3600 seconden) #define SAVE_STATE 1 // [SetOption0] Sla gewijzigde energiestatus op in Flash (0 = uitschakelen, 1 = inschakelen) // -- Wifi ----- ------------------ -------------------------------- #definieer WIFI_IP_ADDRESS "0.0.0.0" // [IpAddress1] Ingesteld op 0.0 .0.0 voor het gebruik van DHCP of IP-adres #define WIFI_GATEWAY "192.168.0.1" // [IpAddress2] Als DHCP niet wordt gebruikt, stelt u Gateway IP-adres in #define WIFI_SUBNETMASK "255.255.255.0" // [IpAddress3] Als u DHCP niet gebruikt, stelt u Netwerkmasker #define WIFI_DNS in 192.168.0.1 " // [IpAddress4] Als DHCP niet wordt gebruikt, stelt u het DNS IP-adres in (kan gelijk zijn aan WIFI_GATEWAY) #define STA_SSID1 "" // [Ssid1] Wifi SSID #define STA_PASS1 "" // [Password1] Wifi-wachtwoord #define STA_SSID2 "" // [ Ssid2] Optioneel alternatief AP Wifi SSID #define STA_PASS2 "" // [Password2] Optioneel alternatief AP Wifi-wachtwoord #define WIFI_CONFIG_TOOL WIFI_MANAGER // [WifiConfig] Standaardtool als wifi geen verbinding kan maken // (WIFI_RESTART, WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL) #define WIFI_CONFIG_NO_SSID WIFI_WPSCONFIG // Standaardtool als wifi geen verbinding kan maken en er geen SSID is geconfigureerd // (WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_SERIAL) // *** OPMERKING: wanneer WPS is uitgeschakeld door USE_WPS hieronder, WIFI_WPSCONFIG zal WIFI_MANAGER uitvoeren *** // *** OPMERKING: Wanneer WIFI_MANAGER is uitgeschakeld door USE_WEBSERVER hieronder, zal WIFI_MANAGER WIFI_SMARTCONFIG uitvoeren *** // *** OPMERKING: Wanneer WIFI_SMARTCONFIG is uitgeschakeld door USE_SMARTCONFIG hieronder, zal WIFI_SMARTCONFIG WIFI_SERIAL uitvoeren *** // - - Syslog ---------------------- #define SYS_LOG_HOST "" // [LogHost ] ( Linux) syslog host #define SYS_LOG_PORT 514 // [LogPort] default syslog UDP port #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 ----- -- ------------------- #define OTA_URL "http://sonoff.maddox.co.uk/tasmota/sonoff.bin" // [OtaUrl] // - - MQTT ------------------------------------------------ ------ #define MQTT_USE 1 // [SetOption3] Selecteer standaard MQTT-gebruik (0 = Uit, 1 = Aan) #define MQTT_HOST "" // [MqttHost] #define MQTT_FINGERPRINT1 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" // [MqttFingerprint1] #define MQTT_FINGERPRINT2 "A5 02 FF 13 99 9F 8B 39 8E F1 83 4F 11 23 65 0B 32 36 FC 07" // [MqttFingerprint2] 1TP MqttPort] MQTT-poort (10123 op CloudMQTT) #define M_TT_USER " [MqttUser] MQTT-gebruiker #define MQTT_PASS "DVES_PASS" // [MqttPassword] MQTT-wachtwoord #define MQTT_BUTTON_RETAIN 0 // [ButtonRetain] Knop kan bewaarvlag verzenden (0 = uit, 1 = aan ) #define MQTT_POWER_RETAIN 0 // [PowerRetain] Stroomstatusbericht kan bewaarvlag verzenden (0 = uit, 1 = aan) #define MQTT_SWITCH_RETAIN 0 // [SwitchRetain] Schakelaar kan bewaarvlag verzenden (0 = uit, 1 = aan) #define MQTT_STATUS_OFF " UIT" // [StateText1] Opdracht- of statusresultaat indien uitgeschakeld (moet een tekenreeks zijn zoals "0" of "Uit") #define MQTT_STATUS_ON "ON" // [StateText2] Opdracht- of statusresultaat indien ingeschakeld (moet een string zoals "1" of "On") #define MQTT_CMND_TOGGLE "TOGGLE" // [StateText3] Commando om te verzenden bij schakelen (moet een string zijn zoals "2" of "Toggle") #define MQTT_CMND_HOLD "HOLD" // [StateText4 ] Commando om te verzenden wanneer de knop langer dan KEY_HOLD_TIME * 0,1 seconden wordt ingedrukt (moet een tekenreeks zijn zoals "HOLD") // -- MQTT-onderwerpen ------------------ ------------ --- // Voorbeeld "tasmota/bedroom/%topic%/%prefix%/" tot 80 tekens #define MQTT_FULLTOPIC "%prefix%/%topic%/" // [FullTopic] Aanmelden en volledig onderwerp publiceren name - Legacy topic // %prefix% token opties #define " SUB_PREFIXine cmnd" // [Prefix1] Sonoff apparaten abonneren op %prefix%/%topic% zijnde SUB_PREFIX/MQTT_TOPIC en SUB_PREFIX/MQTT_GRPTOPIC #define PUB/PREFIX "stat" // [Prefix2] Sonoff apparaten publiceren naar %topic% is PUB_PREFIX/%topic% [Prefix3] Sonoff-apparaten publiceren telemetriegegevens naar %prefix%/%topic% zijnde PUB_PREFIX2/MQTT_TOPIC/UPTIME, POWER en TIME // Kan dezelfde naam krijgen als PUB_PREFIX // %topic%-tokenopties (ook ButtonTopic1 en SwitchTOPICDE MWTPJECTTOpic) // [Onderwerp] (uniek) MQTT-apparaatonderwerp, ingesteld op 'PROJECT "_X"' voor uniek onderwerp inclusief apparaat-MAC-adres #define MQTT_GRPTOPIC "sonoffs" // [GroupTopic] MQTT Groepsonderwerp #define MQTT_BUTTON_TOPIC "0" // [ButtonTopic] MQTT-knoponderwerp, "0" = hetzelfde als MQTT_TOPIC, ingesteld op 'PROJECT "_BTN_X"' voor uniek onderwerp inclusief apparaat-MAC-adres #define MQTT_SWITCH_TOPIC "0" // [SwitchTopic] MQTT-knoponderwerp, "0" = hetzelfde als MQTT_TOPIC, ingesteld naar 'PROJECT "_SW_X" voor uniek onderwerp inclusief apparaat MAC-adres #define MQTT_CLIENT_ID "DVES_X" // [MqttClient] Ook terugvallen op onderwerp met Chip-ID = laatste 6 tekens van MAC-adres // -- MQTT - Telemetrie ----- ----- ------------------ #define TELE_PERIOD 300 // [TelePeriod] Telemetrie (0 = uitschakelen, 10 - 3600 seconden) // -- MQTT - Domoticz - ----- -------- #define DOMOTICZ_UPDATE_TIMER 0 // [DomoticzUpdateTimer] Relaisstatus verzenden (0 = uitgeschakeld, 1 - 3600 seconden) / / -- MQTT - Home Assistant Discovery ------------- #define HOME_ASSISTANT_DISCOVERY_ENABLE 0 // [SetOption19] Home Assistant Discovery (0 = Uitschakelen, 1 = Inschakelen) // -- HTTP ---- ----- ---------------- #define WEB_SERVER 2 // [WebServer] Webserver (0 = Uit , 1 = Start als gebruiker, 2 = Start als beheerder) #define WEB_PASSWORD "" // [WebPassword] Webserver Beheerdersmodus Wachtwoord voor WEB_USERNAME (lege tekenreeks = uitschakelen) #define FRIENDLY_NAME "Gluehlampe" // [FriendlyName] Friendlyname tot 32 tekens gebruikt door webpagina's en Alexa #define EMULATIE EMUL_NONE // [Emulatie] Selecteer Belkin WeMo (enkel relais/licht) of Hue Bridge-emulatie (multi relais/licht) (EMUL_NONE, EMUL_WEMO of EMUL_HUE) // -- Tijd - Maximaal drie NTP-servers in uw regio #define NTP_SERVER1 "pool.ntp.org" // [NtpServer1] Selecteer eerste NTP-server op naam of IP-adres (129.250.35.250) #define NTP_SERVER2 "nl.pool.ntp.org" // [NtpServer2] Selecteer tweede NTP server op naam of IP-adres (5.39.184.5) #define NTP_SERVER3 "0.nl.pool.ntp.org" // [NtpServer3] Selecteer derde NTP-server op naam of IP-adres (93.94.224.67) // -- Tijd - Start Zomertijd en tijdzone-offset ten opzichte van UTC in minuten #define TIME_DST_HEMISPHERE Noord // [TimeDst] Halfrond (0 of Noord, 1 of Zuid) #define TIME_DST_WEEK Laatste // Week van de maand (0 of Laatste, 1 of Eerste, 2 of Tweede, 3 of derde, 4 of vierde) #define TIME_DST_DAY zo // Dag van de week (1 of zo, 2 of ma, 3 of di, 4 of wo, 5 of do, 6 of vr, 7 of za) #define TIME_DST_MONTH maart // maand (1 of jan, 2 of feb, 3 of mrt, 4 of apr, 5 of mei, 6 of jun, 7 of jul, 8 of aug, 9 of sep, 10 of okt, 11 of nov, 12 of dec) #define TIME_DST_HOUR 2 // Uur (0 tot 23) #define TIME_DST_OFFSET +120 // Offset van UTC in minuten (-780 tot +780) // -- Tijd - Start standaardtijd en tijdzone offset van UTC in minuten #define TIME_STD_HEMISPHERE Noord // [ TimeStd] Halfrond (0 of Noord, 1 of Zuid) #define TIME_STD_WEEK Laatste // Week van de maand (0 of Laatste, 1 of Eerste, 2 of Tweede, 3 of Derde, 4 of Vierde) #define TIME_STD_DAY Zon // Dag van de week ( 1 of zo, 2 of ma, 3 of di, 4 of wo, 5 of do, 6 of vr, 7 of za) #define TIME_STD_MONTH okt // maand (1 of jan, 2 of feb, 3 of mrt, 4 of apr , 5 of mei, 6 of juni, 7 of juli, 8 of aug, 9 of sep, 10 of okt, 11 of nov, 12 of dec) #define TIME_STD_HOUR 3 // Uur (0 tot 23) #define TIME_STD_OFFSET +60 // Offset van UTC in minuten (-780 tot +780) // -- Locatie --------------------------------- --- #define LATITUDE 48.858360 // [Breedtegraad] Uw locatie voor zonsopgang en zonsondergang #define LONGITUDE 2.294442 // [Longitude] Uw locatie voor zonsopgang en zonsondergang // -- Toepassing -------- ----- ----- #define APP_TIMEZONE 1 // [Tijdzone] +1 uur (Amsterdam) (-13 .. 14 = uur vanaf UTC, 99 = gebruik TIME_DST/ TIME_STD) #define APP_LEDSTATE LED_POWER // [LedState] Functie van led // (LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQTTPUB, LED_POWER_MQTTPUB, LED_MQTT, LED_POWER_MQTT) #define APP_PULSETIME 0 // [PulseTime forec 1 = uitgeschakeld ) #define APP_POWERON_STATE POWER_ALL_SAVED // [PowerOnState] Power On Relay status // (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]ec Tijd in 0.1 secgleTP5Tdefine power 0.1 secgle [BlinkCount] Aantal knipperingen (0 = 32000) #define APP_SLEEP 0 // [Sleep] Slaaptijd om het energieverbruik te verlagen (0 = Uit, 1 - 250 mSec) #define KEY_DEBOUNCE_TIME 50 // [ButtonDebounce ] Aantal mSeconden druk op de knop debounce-tijd #define KEY_HOLD_TIME 40 // [SetOption32] Aantal 0,1 seconden om knop of externe drukknop vast te houden voordat HOLD-bericht wordt verzonden #define SWITCH_DEBOUNCE_TIME 50 // [SwitchDebounce] Aantal mSeconden schakelaar druk debounce-tijd #define SWITCH_MODE TOGGLE // [SwitchMode] TOGGLE, FOLLOW, FOLLOW_INV , PUSHBUTTON, PUSHBUTTON_INV, PUSHBUTTONHOLD, PUSHBUTTONHOLD_INV, PUSHBUTTON_TOGGLE (de status van de wandschakelaar) #define WS2812_LEDS 6 // [Pixels] Aantal WS2812-LED's om mee te beginnen (max is 512) #define TEMP_CONVERSION 0 // [Pixels] SetOption8] Retourtemperatuur in ( 0 = Celsius of 1 = Fahrenheit) #define TEMP_RESOLUTION 1 // [TempRes] Maximum aantal decimalen (0 - 3) toont sensortemperatuur #define HUMIDITY_RESOLUTION 1 // [HumRes] Maximum aantal decimalen (0 - 3) toont sensorvochtigheid #define PRESSURE_RESOLUTION 1 // [PressRes] Maximaal aantal decimalen (0 - 3) voor sensordruk #define ENERGY_RESOLUTION 3 // [EnergyRes] Maximaal aantal decimalen (0 - 5) voor energieverbruik in kWh /*** ****** ******************************************* ****** *******************************\ * EINDE VAN SECTIE 1 * * SECTIE 2 * - Activeer een functie door beide // ervoor verwijderen * - Schakel een functie uit door er // \************************* ****** voor te zetten ******************************************* ****** *************/ // -- Lokalisatie ------------------------- ------ - // Indien niet geselecteerd, wordt de standaard en-GB gebruikt //#define MY_LANGUAGE bg-BG // Bulgarian in Bulgaria //#define MY_LANGUAGE cs-CZ // Czech in Czech #define MY_LANGUAGE de-DE / / German in Germany // #define MY_LANGUAGE el-GR // Grieks in Griekenland //#define MY_LANGUAGE en-GB // Engels in Groot-Brittannië. Standaard ingeschakeld //#define MY_LANGUAGE es-AR // Spaans in Argentinië //#define MY_LANGUAGE fr-FR // Frans in Frankrijk //#define MY_LANGUAGE hu-HU // Hongaars in Hongarije //#define MY_LANGUAGE it-IT // Italiaans in Italië //#define MY_LANGUAGE nl-NL // Nederlands in Nederland //#define MY_LANGUAGE pl-PL // Pools in Polen //#define MY_LANGUAGE pt-BR // Portugees in Brazilië //#define MY_LANGUAGE pt-PT // Portugees in Portugal //#define MY_LANGUAGE ru-RU // Russisch in Rusland //#define MY_LANGUAGE tr-TR // Turks in Turkije //#define MY_LANGUAGE uk-UK // Oekraïens in Oekraïne //#define MY_LANGUAGE zh-CN // Chinees (vereenvoudigd) in China //#define MY_LANGUAGE zh-TW // Chinees (traditioneel) in Taiwan // -- Wifi-configuratietools ------------------------------------------ -------------- //#define USE_WPS // Ondersteuning voor WPS toegevoegd als initiële wifi-configuratietool (+33k code, 1k mem (5k mem met core v2.4.2+)) //#define USE_SMARTCONFIG // Ondersteuning voor Wifi SmartConfig toegevoegd als initiële wifi-configuratietool (+23k code, +0.6k mem) // -- OTA ---------------------- -------------- ----- #define USE_ARDUINO_OTA // Voeg optionele ondersteuning toe voor Arduino OTA (+13k code) /*-------------- ---------------------------- -------------------------------------- ------------- -------------*\ * Selecteer EEN van de drie mogelijke MQTT-bibliotheektypen hieronder \*---------- ---------------------------- -------------------------------------- ---------------------------- ---*/ // Standaard MQTT-stuurprogramma voor zowel niet-TLS- als TLS-verbindingen. Blokkeert het netwerk als de MQTT-server niet beschikbaar is. #definieer MQTT_LIBRARY_TYPE MQTT_PUBSUBCLIENT // Gebruik PubSubClient-bibliotheek // Alternatief MQTT-stuurprogramma blokkeert netwerk niet wanneer MQTT-server niet beschikbaar is. Geen TLS-ondersteuning //#define MQTT_LIBRARY_TYPE MQTT_TASMOTAMQTT // Gebruik TasmotaMqtt-bibliotheek (+4k4-code, +4k mem) - alleen niet-TLS // Alternatief MQTT-stuurprogramma blokkeert netwerk niet wanneer MQTT-server niet beschikbaar is. Geen TLS-ondersteuning //#define MQTT_LIBRARY_TYPE MQTT_ESPMQTTARDUINO // Gebruik (gepatchte) esp-mqtt-arduino-bibliotheek (+4k8-code, +4k mem) - alleen niet-TLS // -- MQTT ----------- ----------------------------------------- #define MQTT_TELE_RETAIN 0 // Teleberichten kunnen stuur bewaarvlag (0 = uit, 1 = aan) / / -- MQTT - Domoticz ---------------------------------------------- ----------- //#define USE_DOMOTICZ // Activeer Domoticz (+6k code, +0.3 k 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 // Home Assistant Discovery-ondersteuning inschakelen (+2k code) #define HOME_ASSISTANT_DISCOVERY_PREFIX "homeassistant" // Home Assistant ontdekkingsvoorvoegsel // -- MQTT - TLS ----------------- ----------------- // !!! TLS gebruikt VEEL GEHEUGEN dus wees voorzichtig om tegelijkertijd andere opties in te schakelen !!! //#define USE_MQTT_TLS // Gebruik TLS voor MQTT-verbinding (+53k code, +15k mem) // -- KNX IP-protocol ----------------------- ------ //#define USE_KNX // KNX IP-protocolondersteuning inschakelen (+9.4k code, +3k7 mem) // #define USE_KNX_WEB_MENU // KNX WEB MENU inschakelen (+8.3k code, +144 mem) // - - HTTP --------------------------------------- #define USE_WEBSERVER // Schakel webserver en wifi in Manager (+66k code, +8k mem) #define WEB_PORT 80 // Webserver Poort voor gebruikers- en beheerdersmodus #define WEB_USERNAME "admin" // Webserver Gebruikersnaam beheerdersmodus #define USE_EMULATION // Activeer Belkin WeMo en Hue Bridge-emulatie voor Alexa ( +16k code, +2k mem) // -- mDNS ------------------------------------- - --- #define USE_DISCOVERY // Schakel mDNS in voor de volgende services (+8k code, +0.3k mem) #define WEBSERVER_ADVERTISE // Bied toegang tot webserver op naam .local/ #define MQTT_HOST_DISCOVERY // Zoek MQTT-hostserver (heft MQTT_HOST op indien gevonden) // -- Tijd ------------------------- #define USE_TIMERS // Toevoegen ondersteuning voor maximaal 16 timers (+2k2 code) #define USE_TIMERS_WEB // Voeg timer webpagina ondersteuning toe (+4k5 code) #define USE_SUNRISE // Voeg ondersteuning toe voor zonsopgang- en zonsondergangtools (+16k) #define SUNRISE_DAWN_ANGLE DAWN_NORMAL // Selecteer de gewenste dageraadhoek uit ( DAWN_NORMAL, DAWN_CIVIL, DAWN_NAUTIC, DAWN_ASTRONOMIC) // -- Regels -------------------------------------------------- - -- #define USE_RULES // Ondersteuning voor regels toevoegen (+4k4-code) // -- Interne analoge ingang -------------------------------------- //#define USE_ADC_VCC / / Geef Vcc weer in Power-status. Uitschakelen voor gebruik als analoge ingang op geselecteerde apparaten // -- Eendraadssensoren ------------------------------------------ // WAARSCHUWING: Selecteer geen voor standaard één DS18B20-sensor of schakel een van de volgende twee opties in voor meerdere sensoren //#define USE_DS18x20 // Optioneel voor meer dan één DS18x20-sensor met id-sortering, enkele scan en opnieuw lezen (+1k3-code) //#define USE_DS18x20_LEGACY // Optioneel voor meer dan één DS18x20-sensor met dynamische scan met bibliotheek OneWire (+1k5-code) // -- I2C-sensoren ------------------------------------------ -------------- ------ //#define USE_I2C // I2C via bibliotheekdraad (+10k code, 0k2 mem, 124 iram) #ifdef USE_I2C // #define USE_SHT // Inschakelen SHT1X-sensor (+1k4-code) // #define USE_HTU // HTU21/SI7013/SI7020/SI7021-sensor inschakelen (I2C-adres 0x40) (+1k5-code) //#define USE_BMP // BMP085/BMP180/BMP280/BME280-sensor inschakelen (I2C-adres 0x76 of 0x77) (+4k-code) // #define USE_BME680 / / Ondersteuning inschakelen voor BME680-sensor met Bosch BME680-bibliotheek (+4k-code) // #define USE_BH1750 // BH1750-sensor inschakelen (I2C-adres 0x23 of 0x5C) (+0k5-code) // #define USE_VEML6070 // VEML6070-sensor inschakelen (I2C-adressen 0x38 en 0x39) (+0k5-code) // #define USE_ADS1115 // ADS1115 inschakelen 16 bit A/D-converter (I2C-adres 0x48, 0x49, 0x4A of 0x4B) gebaseerd op Adafruit ADS1x15 bibliotheek (geen bibliotheek nodig) (+0k7-code) // #define USE_ADS1115_I2CDEV // Activeer ADS1115 16-bits A/D-converter (I2C-adres 0x48, 0x49, 0x4A of 0x4B) met bibliotheek i2cdevlib-Core en i2cdevlib-ADS1115 (+2k-code) // #define USE_INA219 // Activeer INA219 (I2C-adres 0x40, 0x41 0x44 of 0x45) Laagspannings- en stroomsensor (+1k-code) // #define USE_SHT3X // Activeer SHT3x (I2C-adres 0x44 of 0x45) of SHTC3 (I2C-adres 0x70) sensor (+0k7-code) // #define USE_TSL2561 // TSL2561-sensor inschakelen (I2C-adres 0x29, 0x39 of 0x49) met bibliotheek Joba_Tsl2561 (+2k3-code) // #define USE_MGS // Xadow en Grove Mutichannel-gassensor inschakelen met bibliotheek Multichannel_Gas_Sensor (+ 10k code) // #define MGS_SENSOR_ADDR 0x04 // Standaard multichannel gassensor i2c-adres // #define USE_SGP30 // SGP30-sensor inschakelen (I2C-adres 0x58) (+1k1-code) // #define USE_SI1145 // SI1145/46/47-sensor inschakelen (I2C adres 0x60) (+1k code) // #define USE_LM75AD // LM75AD-sensor inschakelen (I2C-adressen 0x48 - 0x4F) (+0k5-code) // #define USE_APDS9960 // APDS9960 naderingssensor inschakelen (I2C-adres 0x39). Schakelt SHT en VEML6070 uit (+4k7-code) // #define USE_MCP230xx // Schakel MCP23008/MCP23017 in voor ALLEEN GP-INVOER (I2C-adressen 0x20 - 0x27) met commando Sensor29 voor configuratie (+4k7-code) // #define USE_MCP230xx_OUTPUT // Schakel MCP23001/MCP2301 in /MCP2301/MCP2301 OUTPUT-ondersteuning via sensor29-opdrachten (+1k5-code) // #define USE_MCP230xx_DISPLAYOUTPUT // Schakel MCP23008/MCP23017 in om de status van OUTPUT-pinnen weer te geven op de web-UI (+0k2-code) //#define USE_MPR121 // Schakel MPR121-controller in (I2C-adressen 0x5A, 0x5B, 0x5C en 0x5D) in invoermodus voor aanraaktoetsen (+1k3-code) // #define USE_CCS811 // CCS811-sensor inschakelen (I2C-adres 0x5A) (+2k2-code) // #define USE_MPU6050 // MPU6050-sensor inschakelen (I2C-adres 0x68 AD0 laag of 0x69 AD0 hoog) (+2k6-code) #endif // USE_I2C // -- SPI-sensoren ----------------------------------------- ---- -- //#define USE_SPI // SPI met bibliotheek TasmotaTFT #ifdef USE_SPI #endif // USE_SPI // -- Seriële sensoren ---------------------- ------------------ ---- #define USE_MHZ19 // Ondersteuning toevoegen voor MH-Z19 CO2-sensor (+2k-code) #define USE_SENSEAIR // Ondersteuning toevoegen voor SenseAir K30, K70 en S8 CO2-sensor (+2k3-code) #define CO2_LOW 800 // Onder deze CO2-waarde wordt groen licht weergegeven (vereist PWM of WS2812 RG(B) led en inschakelen met SetOption18 1) #define CO2_HIGH 1200 // Boven deze CO2-waarde wordt rood licht weergegeven ( heeft PWM of WS2812 RG(B) led nodig en activeer met SetOption18 1) #define USE_PMS5003 / / Voeg ondersteuning toe voor PMS5003 en PMS7003 deeltjesconcentratiesensor (+1k3 code) #define USE_NOVA_SDS // Voeg ondersteuning toe voor SDS011 en SDS021 deeltjesconcentratiesensor (+0k7 code ) #define USE_PZEM004T // Ondersteuning toevoegen voor PZEM004T Energiemonitor (+2k code) #define USE_SERIAL_BRIDGE // Ondersteuning toevoegen voor software Serial Bridge (+0k8 code) //#define USE_SDM120 // Ondersteuning toevoegen voor Eastron SDM120-Modbus energiemeter (+1k7 code ) #define SDM120_SPEED 9600 // SDM120-Modbus RS485 seriële snelheid (standaard: 2400 baud) //#define USE_SDM630 // Ondersteuning toegevoegd voor Eastron SDM630-Modbus energiemeter (+2k code) #define SDM630_SPEED 9600 // SDM630-Modbus RS485 seriële snelheid ( standaard: 9600 baud) // -- Interface-apparaten op laag niveau ----- ------------ //#define USE_IR_REMOTE // Stuur IR-afstandsbedieningsopdrachten met bibliotheek IRremoteESP8266 en ArduinoJson (+4k-code, 0k3 mem, 48 iram) // #define USE_IR_HVAC // Ondersteuning voor HVAC-systeem met IR (+2k-code) // #define USE_IR_RECEIVE // Ondersteuning voor IR-ontvanger (+5k5-code, 264 iram) #define USE_WS2812 // WS2812 Ledstring met bibliotheek NeoPixelBus (+5k code, +1k mem, 232 iram) - Uitschakelen door // #define USE_WS2812_CTYPE NEO_GRB // WS2812 Kleurtype (NEO_RGB, NEO_GRB, NEO_BRG, NEO_RBG, NEO_RGBW, NEO_GRBW) // #define USE_WS2812_DMA // DMA ondersteunt alleen GPIO0 = Seriële RXD) (+1k mem). Wanneer USE_WS2812_DMA is ingeschakeld, kunt u uitzonderingen op Pow verwachten //#define USE_ARILUX_RF // Ondersteuning toevoegen voor Arilux RF-afstandsbediening (+0k8-code, 252 iram (niet 2.3.0)) //#define USE_SR04 // Ondersteuning toevoegen voor HC-SR04 ultrasone apparaten ( +1k code) //#define USE_TM1638 // Ondersteuning toegevoegd voor TM1638-switches kopiëren Switch1 .. Switch8 (+1k code) #define USE_RF_FLASH // Ondersteuning toegevoegd voor het flashen van de EFM8BB1-chip op de Sonoff RF Bridge. C2CK moet worden aangesloten op GPIO4, C2D op GPIO5 op de printplaat (+3k-code) /****************************** ******************************************************* ************\ * Foutopsporingsfuncties worden alleen ondersteund in ontwikkelingstak \*************************** ******************************************************* ****************/ //#define USE_DEBUG_DRIVER // Gebruik xdrv_99_debug.ino met de opdrachten CpuChk, CfgXor, CfgDump, CfgPeek en CfgPoke /*************** ******************************************************* ********************************\ * Optionele firmwareconfiguraties * Selecteer geen of slechts één voor optionele functies en sensoren zoals geconfigureerd in sonoff_post.h * Zie RELEASENOTES.md voor geselecteerde functies \************************************* ******************************************************* ******/ //#define USE_CLASSIC // Creëer sonoff-classic met initiële configuratietools WPS, SmartConfig en WifiManager //#define USE_SENSORS // Creëer sonoff-sensoren met bruikbare sensoren ingeschakeld //#define USE_KNX_NO_EMULATION // Creëer sonoff-knx met KNX maar zonder emulatie //#define BE_MINIMAL // Creëer sonoff-minimal als tussenfirmware voor OTA-MAGIC /*************************** ******************************************************* ****************\ * Geen door de gebruiker configureerbare items hieronder \****************************** *************************************************** * *****************/ #if gedefinieerd(USE_MQTT_TLS) && gedefinieerd(USE_WEBSERVER) #error "Selecteer USE_MQTT_TLS of USE_WEBSERVER omdat er gewoon niet genoeg geheugen is om mee te spelen" #endif #endif / / _USER_CONFIG_H_


Lijm de draadcompensatie op de lampvoet

Toen ik deze lamp voor het eerst opstelde, had ik het probleem dat de lampvoet, die niet helemaal vlak was, niet goed op de lampvoet stond. Om deze oneffenheid te compenseren heb ik een compensatiering op de lampvoet gelijmd. Deze heb ik vervolgens geïntegreerd in de lampvoet. Voor de volledigheid is het hier echter wel opgenomen.

Close-up van de ietwat ongelijke lampvoet.
Close-up van de balanceerring.
Met de compensatiering op de lampvoet gelijmd, staat het lamphuis nu…
...rechtop en recht.
De beste manier om dit te doen, is door de compensatiering met wat hete lijm te bevestigen.

Combineer lamphuis met lampvoet

Nu kun je ook het lamphuis met de lampvoet verbinden.

Nu kunt u voorzichtig het lamphuis over de stang van de lampvoet schuiven. Als alles past, kun je het lamphuis met wat hete lijm op de lampvoet lijmen.
Close-up van de "kleine" versie.
Close-up van de "grote" versie.
Maatvergelijking tussen "kleine" en "grote" versie.

Zo ziet het eruit met de lichten aan.


Andere bouwmogelijkheden

Mocht de 3D-geprinte kunststof lampenvoet je niet aanspreken, dan kun je ook een voet van een houten plank gebruiken. Er is nog een adapter waarmee je de lampbehuizing aan het houten paneel kunt bevestigen.

Het STL-bestand voor het printen van deze lampvoet vindt u ook in het bovenste gedeelte "3D-componenten".

De combinatie met verschillende houtsoorten of panelen geeft je nog meer mogelijkheden om dit project naar eigen wens aan te passen.


Veel plezier met het project

Ik hoop dat alles werkte zoals beschreven. Zo niet, of als je vragen of suggesties hebt, laat het me weten in de commentaren. Ik zal dit dan zo nodig aan het artikel toevoegen.
Ideeën voor nieuwe projecten zijn ook altijd welkom 🙂

P.S. Veel van deze projecten - vooral de hardwareprojecten - kosten veel tijd en geld. Natuurlijk doe ik het omdat ik het leuk vind, maar als je het cool vindt dat ik de info erover met je deel, zou ik een kleine donatie aan het koffiefonds op prijs stellen 🙂 .

Koop Me a Coffee op ko-fi.com       

Kommentar hinterlassen

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