English Click this button for the international website

Tasmota op ESP8266 NodeMCU met Arduino IDE

Tasmota is een alternatieve open-sourcefirmware voor apparaten die zijn gebaseerd op de ESP8266 WiFi-chipset. De firmware biedt de apparaten timers, een webinterface, OTA-updates (Over The Air) en sensoren. Het maakt ook besturing mogelijk onder HTTP, MQTT, KNX en serieel. Het is geschreven voor de Arduino IDE en PlatformIO.

Met de geïnstalleerde Tasmota-firmware kan een apparaat de status van knoppen en schakelaars en vele soorten sensoren lezen voor zaken als temperatuur, vochtigheid, licht, IR, enz. Het kan ook apparaten bedienen zoals relais, LED’s, displays, IR-zenders en veel meer.

Kortom, Tasmota maakt van je ESP8266-board een veelzijdig IoT-apparaat zonder dat je je eigen code hoeft te schrijven.

Tasmota on ESP8266 NodeMCU with Arduino IDE: Diagram
Tasmota op ESP8266 NodeMCU met Arduino IDE: Diagram

In deze blogpost zullen we Tasmota op het ESP8266 NodeMCU-ontwikkelbord installeren met behulp van de Arduino IDE. Vervolgens zullen we als voorbeeld Tasmota configureren om de ingebouwde LED’s en één externe LED te schakelen. Dit zal een goed uitgangspunt zijn voor toekomstige IoT- en doe-het-zelfautomatiseringsprojecten.

ESP8266 NodeMcu Geekcreit ESP-12E/F Development Board
ESP8266 NodeMcu Geekcreit ESP-12E/F Ontwikkelbord

Het was oorspronkelijk geschreven voor Sonoff-apparaten , maar het ondersteunt inmiddels apparaten van vele andere merken zoals Electrodragon, MagicHome, AriLux, Blitzwolf en Allterco . Natuurlijk kun je het ook installeren op ontwikkelborden zoals de Wemos D1 mini en de ESP8266 NodeMCU.

Geekcreit® NodeMcu Lua ESP8266 ESP-12F WIFI Development Board
Getest en Aanbevolen door OneGuyOneBlog.com:

Geekcreit® NodeMcu Lua ESP8266 ESP-12F WIFI Development Board

De Arduino IDE voorbereiden

Allereerst moet de Arduino IDE geïnstalleerd zijn. Als je daarbij hulp nodig hebt, raadpleeg dan De Arduino IDE installeren op Windows 10 of Installeer of upgrade nieuwste Arduino IDE op Linux.

Nadat je de IDE hebt geïnstalleerd, moet je de ESP8266-core aan de IDE toevoegen. Daarover kun je meer lezen in de blogpost ESP8266 NodeMcu met Arduino IDE op Linux. De procedure is hetzelfde voor Windows.

Download en installeer de Tasmota-projectbestanden

Download het Tasmota-zipbestand van de Tasmota GitHub-pagina. Pak het ergens op je computer uit.

Zoek de locatie van de map ‘Arduino’ schetsboek ‘, zie Bestand > Voorkeuren > Instellingen in de Arduino IDE.

  • Kopieer de inhoud van de map ‘lib’ van Tasmota naar de map ‘bibliotheken’ van het schetsboek.
  • Kopieer de map ‘Sonoff’ van Tasmota naar je map met schetsboeken.

Zoek de locatie van de map Arduino IDE, zie Bestand > Voorkeuren > Instellingen.

  • Zoek in de map Arduino IDE de map ‘packages\esp8266\hardware\esp8266\2.x.x
  • Vervang ‘platform.txt‘ door het Tasmota-bestand ‘arduino\version 2.x.x\platform.txt‘.

Configureer de Tasmota-firmware

Sluit het ESP8266-ontwikkelbord aan op de computer. Open in de Arduino IDE het bestand ‘sonoff.ino’ vanuit de map ‘sonoff’ van je schetsboek.

Open het tabblad ‘my_user_config.h’ en wijzig de instellingen voor netwerk en WiFi:

// -- Wifi ----------------------------------------
#define WIFI_IP_ADDRESS        "0.0.0.0"          // [IpAddress1] Set to 0.0.0.0 for using DHCP or enter a static IP address
#define WIFI_GATEWAY           "192.168.10.1"     // [IpAddress2] If not using DHCP set Gateway IP address
#define WIFI_SUBNETMASK        "255.255.255.0"    // [IpAddress3] If not using DHCP set Network mask
#define WIFI_DNS               "192.168.10.1"     // [IpAddress4] If not using DHCP set DNS IP address (might be equal to WIFI_GATEWAY)

#define STA_SSID1              "yourwifinetwork"  // [Ssid1] Wifi SSID
#define STA_PASS1              "yourwifipassword" // [Password1] Wifi password
#define STA_SSID2              ""                 // [Ssid2] Optional alternate AP Wifi SSID
#define STA_PASS2              ""                 // [Password2] Optional alternate AP Wifi password
#define WIFI_CONFIG_TOOL       WIFI_MANAGER       // [WifiConfig] Default tool if wifi fails to connect
                                                  //   (WIFI_RESTART, WIFI_SMARTCONFIG, WIFI_MANAGER, WIFI_WPSCONFIG, WIFI_RETRY, WIFI_WAIT, WIFI_SERIAL)
#define WIFI_CONFIG_NO_SSID    WIFI_MANAGER       // Default tool if wifi fails to connect and no SSID is configured

Voer het IP-adres in of stel dit in op “0.0.0.0” als je DHCP gebruikt.

Je kunt je apparaat een unieke projectnaam geven, zodat het gemakkelijker te herkennen is tussen de andere apparaten in je netwerk:

// -- Project -------------------------------------
#define PROJECT                "Sonoff"          // PROJECT is used as the default topic delimiter

Ik zal de apparaatnaam later wijzigen in de Tasmota-webinterface.

Wijzig ook de parameter ‘CFG_HOLDER’ in een nieuwe (willekeurige) waarde telkens wanneer je de instellingen wijzigt en uploadt naar het bord.

// -- Master parameter control --------------------
#define CFG_HOLDER             234              // [Reset 1] Change this value (max 32000) to load SECTION1 configuration parameters to flash

Als je de parameter niet wijzigt, worden de nieuwe instellingen niet van kracht. De ‘CFG_HOLDER’ is te vinden onder ‘Master parameter control’.

ESP8266 NodeMCU-kaartinstellingen

Voordat je de firmware compileert en uploadt. controleer eerst de volgende bordinstellingen onder het menu “Tools” in de Arduino IDE:

  • Board: “Generic ESP8266 Module”
  • Flash Size: 1M (no SPIFFS)
  • Flash Mode: “DOUT”
  • lwIP Variant: “v2 Higher Bandwidth (no features)”
  • VTables: “Flash”
  • Exceptions: “Disabled”
  • Erase Flash: “Only Sketch”

Vergeet niet de juiste USB / COM-poort te selecteren.

Arduino IDE: Board settings for Tasmota on ESP8266-NodeMCU
Arduino IDE: instellingen voor Tasmota op ESP8266-NodeMCU

Compileer en upload de schets naar je ontwikkelbord.

Tasmota configureren op de ESP8266 NodeMCU

Nadat je ESP8266 is geflashed en opnieuw is opgestart, zoek je het IP-adres in het netwerk. Als je niet weet waar je deze kunt vinden, moet je waarschijnlijk je router raadlegen.

Voer het IP-adres van de ESP8266 in je browser in. Het hoofmenu van Tasmota zal verschijnen.

Tasmota on ESP8266-NodeMCU with Arduino IDE: Tasmota main menu
Tasmota op ESP8266 NodeMCU met Arduino IDE: Tasmota hoofmenu

Zodra de Tasmota-webinterface verschijnt, moeten we het moduletype wijzigen van de standaard “Sonoff Basic” in “Generic”. Ga naar “Configuration” en kies “Configure Module“. Selecteer “Generic” voor moduletype en sla op.

Tasmota on ESP8266-NodeMCU with Arduino IDE: Module selection
Tasmota op ESP8266 NodeMCU met Arduino IDE: Module selectie

 

De module wordt opnieuw gestart. Vervolgens zullen we de GPIO’s van de ESP8266-kaart configureren.

De ESP8266 GPIO-opties instellen

Om Tasmota op de ESP8266 te testen, zullen we eerst de ingebouwde LED op de NodeMCU-kaart configureren om aan en uit te worden gezet met behulp van de webinterface. Op deze versie van het bord is de LED op GPIO16 (D0).

Ga in de Tasmota-interface naar Configuration en vervolgens naar Configue Module. Zorg ervoor dat alle GPIO’s zijn ingesteld op “None”. Stel vervolgens GPIO16 in op “Relay1i“. Druk op “Save” en keer terug naar het hoofdmenu.

Tasmota on ESP8266-NodeMCU with Arduino IDE: GPIO configuration
Tasmota op ESP8266 NodeMCU met Arduino IDE: GPIO configuratie

Bovenaan het hoofdmenu zie je een knop met het label “Toggle”. Als je op de knop drukt, wordt de ingebouwde LED op het NodeMCU-bord ingeschakeld. Dit bevestigt dat Tasmota correct is geïnstalleerd en werkt zoals bedoeld.

Tasmota on ESP8266 NodeMCU with Arduino IDE: Toggle on/off
Tasmota op ESP8266 NodeMCU met Arduino IDE: Schakel aa/uit

Meer LEDS, meer pret

Laten we, terwijl we toch bezig zijn, wat meer knoppen voor LED’s toevoegen. Het NodeMCU-bord heeft eigenlijk 2 ingebouwde LED’s: de tweede bevindt zich op de ESP-12-module zelf. Deze LED is toegewezen aan GPIO2 (D4). Stel daarom in de Tasmota-configuratie GPIO2 in op “Relay2i“.

Daarna voegen we een externe LED toe aan GPIO4 (D2). De anode (positieve, lange poot) is verbonden met de D2-pen via een weerstand van 470 ohm. De kathode (negatieve, korte poot) is via een draad met de GND-pen verbonden. Zie onderstaande afbeelding.

ESP8266 NodeMCU on Breadboard
ESP8266 NodeMCU op Breadboard

Vervolgens stellen we in de moduleconfiguratie de GPIO4 in op ‘Relay3‘. De configuratie zou eruit moeten zien als de onderstaande afbeelding.

Tasmota on ESP8266 NodeMCU with Arduino IDE: GPIO configuration for 3 LEDs
Tasmota op ESP8266 NodeMCU met Arduino IDE: GPIO configuratie voor 3 LEDs

Op de hoofdpagina kun je nu met drie knoppen de twee ingebouwde en de externe LED schakelen.

Tasmota on ESP8266 NodeMCU with Arduino IDE: Multiple toggle switches
Tasmota op ESP8266 NodeMCU met Arduino IDE: Meerdere schakelknoppen

Merk ook op dat ik in de bovenstaande twee foto’s de apparaatnaam heb gewijzigd van “Sonoff” in “ESP8266” (Configuration > Configure other > Friendly Name 1).

Met de knoppen in het hoofdmenu van Tasmota kun je nu de drie LED’s in- of uitschakelen. Op de foto hieronder zie je ze alle drie ingeschakeld:

ESP8266 NodeMCU with Three LEDs
ESP8266 NodeMCU met drie LEDs

Volgende stappen

Nu weet je hoe je de GPIO’s kunt schakelen, kun je Tasmota gebruiken om relais op de NodeMCU te schakelen, of de GPIO’s gebruiken om de status van knoppen of sensoren te lezen. Dit is op zichzelf al een zeer nuttige toepassing van de firmware.

In een volgende blogpost zullen we zien hoe we de MQTT-functionaliteit van Tasmota kunnen gebruiken. Hierdoor kan de ESP8288 communiceren met toepassingen zoals Node-Red of Home Assistant en wordt de NodeMCU een veelzijdig doe-het-zelf-apparaat voor projecten voor domotica.

 

Voeg een reactie toe

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *