Tasmota installeren op een NodeMCU

Tasmota is nieuwe firmware voor, op de ESP8266 gebaseerde, Itead SONOFF devices. Hierdoor krijg je zelf meer controle over je devices en ben je niet meer afhankelijk van Itead services via China of apps. Ook het gebruiken van de SONOFF apparaten in een eigen domotica systeem zoals Domoticz of Home Assistant wordt hierdoor een stuk gemakkelijker.
Omdat je misschien eerst eens Tasmota wilt uitproberen voordat je SONOFF apparaten aanschaft of als je gewoon snel aan de slag wilt met je NodeMCU in je domotica systeem kun je de firmware ook op een NodeMCU installeren. In deze tutorial gaan we dat doen met behulp van de Arduino IDE ontwikkelomgeving. Enige kennis en ervaring daarmee is handig.

In deze tutorial ga ik uit van een nieuwe aparte Arduino installatie zodat je daar de door Tasmota benodigde libraries in kunt zetten, zonder dat eventueel al bestaande libraries en sketches in de war geschopt worden. Ook ga ik uit van een installatie onder Windows, voor de Mac en Linux zal het in grote lijnen hetzelfde zijn.

Hier de stappen van de tutorial:

  1. Installeren van de Arduino IDE
  2. ESP8266 (NodeMCU) boards toevoegen aan de Arduino IDE
  3. Tasmota downloaden
  4. Tasmota laden en configureren in de Arduino IDE
  5. Arduino IDE instellen op het NodeMCU ESP8266 board en compileren

Installeren van de Arduino IDE

Waarschijnlijk zul je dit al eens eerder gedaan hebben dus hierbij kort de te volgen stappen.

  • Download de IDE van de Arduino website.
  • Kies de ‘Windows ZIP file for non admin install’.
  • Pak deze ZIP uit op een handige lokatie (desktop?).
  • Start de Arduino IDE door de arduino.exe te starten.
  • Stel eventueel de taal voor de editor in onder Bestand -> Voorkeuren

ESP8266 (NodeMCU) boards toevoegen aan de Arduino IDE

Omdat het op de ESP8266 gebaseerde NodeMCU board geen Arduino is moeten we de zogenaamde core bestanden voor de ESP8266 toevoegen aan de IDE. Dit maakt het mogelijk programma’s te compileren voor ieder ESP8266 device.

  • Ga vervolgens naar Hulpmiddelen -> Board: … -> Board Beheer…

  • Wacht tot het scherm geladen is, type in het zoekvak bovenaan ‘esp8266’, klik dan op Installeren.

Alle benodigde bestanden worden gedownload en geinstalleerd. (Er komt INSTALLED bij de staan).
Sluit het scherm en check of de ESP8266 boards onderaan zijn toegevoegd onder Hulpmiddelen -> Board: ….


Tasmota downloaden

Nu gaan we de daadwerkelijke broncode van Tasmota downloaden om die in de Arduino IDE te configureren, te compileren en vervolgens op de NodeMCU te uploaden.

  • Pak de ZIP uit op een handige plek.
  • Sluit de Arduino IDE uit als die nog open stond.
  • Ga naar de map ‘lib’ in de Tasmota-map die je hebt uitgepakt.
  • Kopieer de inhoud van de ‘lib’ map (niet de map zelf) naar de ‘libraries’ map in de uitgepakte Arduino IDE map. Daar staan al een aantal libraries in maar die zouden niet moeten conflicteren.


Tasmota laden en configureren in de Arduino IDE

Nu gaan we de Tasmota broncode inladen in de Arduino IDE en gereed maken om die te compileren en te installeren.

  • Start de Arduino IDE (arduino.exe in de Arduino map).
  • Ga naar Bestand -> Open…
  • Blader naar de Tasmota map
  • Open de map sonoff
  • Dubbelklik sonoff.ino

Alle bestanden om Tasmota de compileren worden geopend (in aparte tabbladen).
Eén van die bestanden is ‘user_config_override_sample.h’ (helemaal rechts in het dropdown menu te vinden).

  • Klik het bestand zodat het geopend wordt.
  • Klik vervolgens op ‘Hernoemen’ bovenaan het dropdown menu.

  • Wijzig nu de naam naar ‘user_config_override.h’ (_sample gaat eraf).

In dit bestand kunnen we parameters veranderen voor het ‘maken’ van Tasmota. Door het bestand te hernoemen zal de IDE het automatisch meepikken en bij een update wordt dit niet vanuit de bron-code ZIP overschreven.

  • Uncomment de parameters (/* en */ weghalen boven- en onderaan).
  • Vul de parameters in (oa. SSID WiFi-netwerknaam, WiFi-wachtwoord aangevuld met eventueel de gegevens van je MQTT-server.
  • Onder MY_IP stel je het IP-adres in of zet je 0.0.0.0 voor een automatisch IP-adres van de DHCP-server.
  • Vul eventueel ook MY_GW en MY_DNS in.
  • Sla het bestand op.

Deze laatste gegevens kun je later ook nog aanpassen zolang je de WiF-inloggegevens maar goed hebt zodat je zo kunt contact maken met Tasmota.

  • In het bestand ‘my_user_config_h’ uncomment je de regel ‘#define USE_CONFIG_OVERRIDE’ zodat je eigen user-config van hierboven gebruikt wordt.
  • Sla het bestand op.

Let op! Als je de volgende keer iets in deze bestanden veranderd, hoog dan de waarde van ‘CFG_HOLDER’ in beide bestanden met 1 op.
Anders zal de nieuwe configuratie niet worden meegenomen en blijft de oude configuratie in het geheugen van de NodeMCU actief.


Arduino IDE instellen op het NodeMCU ESP8266 board en compileren

 

Nu moeten we de Arduino IDE nog laten weten dat we het programma willen compileren voor een NodeMCU ESP8266 board.

  • Klik onder Hulpmiddelen -> Board: … op het board ‘NodeMCU 1.0 (ESP-12E Module)’

  • Maak vervolgens de instellingen zoals hieronder:

  • Sluit de NodeMCU aan de computer.
  • Selecteer de juiste COM-poort waar de NodeMCU op zit.
  • Open de Seriële monitor en zet die op 115200 baud snelheid.
  • Druk op Uploaden en je kunt koffie gaan halen…

Als alles goed gegaan is zal de NodeMCU in de seriële monitor vertellen op welk IP-adres hij terecht is gekomen.
Tik dit IP-adres in in de browser en je krijgt het Tasmota scherm zoals hieronder.

Mocht je tijdens het compileren een foutmelding krijgen over libraries waarvan meerdere versies gevonden worden, hernoem dan (tijdelijk) de libraries map die onder Mijn documenten/Arduino staat.

Wat je verder met Tasmota kunt zal ik misschien in een nieuwe post toelichten. Met MQTT is namelijk ook een koppeling met Domoticz mogelijk.

Ben ik iets vergeten of klopt er iets niet? Laat het gerust weten!

Uiteraard vind je bij Bits & Parts een groot assortiment aan ESP8266 en ESP32 devices!

Domoticz Home Automation System

Het Domoticz Home Automation System is een gratis open source projekt waarmee je verschillende devices zoals verlichting, schakelaars, verschillende sensors en meters kunt uitlezen en bedienen. Een greep uit de sensors die aangesloten kunnen worden: temperatuur, regen, wind, UV, electriciteit, gas, water en nog veel meer. Notificaties en waarschuwingen kunnen naar elk mobiel apparaat gestuurd worden. Ook zijn er diverse apps waarmee op mobiele apparaten alles uitgelezen en bedient kan worden.

 De basics:

Het domoticz project draait op verschillende platformen; Windows / Linux maar vooral op een Raspberry Pi. Support voor hardware: RFXCOM Transceiver, Z-Wave, P1 Smart Meter, YouLess Meter, Pulse Counters, 1-Wire, EnOcean, en veel meer…

In combinatie met een RFLink433 zijn bijvoorbeeld eenvoudig de supergoedkope Action schakelaars aan te sturen. Je kunt een RFLink kopen maar je kunt hem ook zelf bouwen met een Arduino Mega en een RF ontvanger en zender.

Als je een slimme elektriciteit meter hebt kun je via deze kabel een koppeling maken met je Domoticz op de Raspberry Pi en je elektriciteit gaan monitoren. Heb je nog een meter met een draaischijf kijk dan eens naar dit project dat gebruik maakt van een Arduino of ESP8266 en een TCRT5000 sensor.

Voorbeelden van Domoticz:

Hier een voorbeeld van wat Bits & Parts klant Frank Reijn allemaal met zijn Domoticz installatie doet.
Het dashboard van Domoticz, hier plaats je alle elementen die je vaak wilt zien of snel wilt kunnen bedienen.

Domoticz Dashboard

Domoticz Dashboard

De tuin- en huiskamer-verlichting gaan automatisch aan 10 minuten na zonsondergang.
De “lampfrank” gaat aan na zonsondergang en bij beweging gedetecteerd door de PIR.

Beide mobiele telefoons worden “gepinged” in het WiFi netwerk en SomeOneHome word hierdoor aan of uit geschakeld. Hier mee kan dan weer de verwarming of verlichting geschakeld worden.

De schakelaars, scripts en sensors gekoppeld aan Domoticz:

Schakelaars, switches en scripts

Temperatuursensors:

De SVPout en SVPin zijn sensors die meten wat de temperatuur van het stadsverwarmingswater inkomend en uitgaand is.

Als je klikt op de sensors dan krijg je uitgebreide grafieken:

Grafieken gecombineerd:

Electriciteitverbruik:

Electriciteitsverbruik

De temperatuur en luchtvochtigheid in de werkkamer en de huiskamer worden gemeten met een DHT22 sensor.

De temperatuur van de stadsverwarming wordt gemeten met 1-Wire DS18B20 sensors.

De sensors zijn aangesloten op een NodeMCU ESP8266 board die draadloos met WiFi de data doorgeeft aan de Raspberry Pi waarop Domoticz draait. Op de NodeMCU boards draait de ESP Easy firmware van Letscontrolit waarmee configuratie supersnel een eenvoudig is!

NodeMCU ESP8266 board

Een voorbeeld van sensors geconfigureerd in ESP Easy

Websites:

www.domoticz.com

www.letscontrolit.com

Met dank aan Frank Reijn voor het mede schrijven van dit artikel!

Nieuwe Arduino IDE 1.6.0 uit!

Arduino IDE 1.6.0

Arduino IDE 1.6.0

Het heeft zo’n twee jaar geduurd maar dan heb je ook wat! Arduino heeft de nieuwe IDE (het Arduino programmeer programma) uitgebracht met versie nummer 1.6.0. De ontwikkelaars geholpen door vele enthousiaste gebruikers hebben samen voor heel wat nieuws gezorgd.

De nieuwste features van de nieuwe Arduino IDE zijn onder andere:

  • Support voor meerdere platforms.
  • Boards worden gedetecteerd en weergegeven onder het ports-list menu samen met de seriele port.
  • De drivers en de IDE zijn nu gesigneerd voor Windows en MacOSX
  • Verbeterde snelheid van het compileer proces.
  • Autosave bij het compileren/uploaden van sketches.
  • Veel verbeteringen aan de serial monitor (sneller door de modernere JSSC serial library in plaats van de oude RXTX).
  • Zoeken/vervangen over meerdere tabs.
  • Veel van de Arduino API libraries zijn verbeterd (String, Serial, Print, etc.)
  • Tools & toolchains upgrades  (avr-gcc, arm-gcc, avrdude, bossac)
  • Command line interface
  • De IDE geeft nu zowel sketch grootte als static RAM gebruik aan.
  • De editor heeft nu regelnummers!
  • Scrollbare menu’s wanneer veel items getoond worden.
  • Uploaden via netwerk (voor oa. de Arduino Yún)
  • HardwareSerial is verbeterd.
  • USB heeft wat verbeteringen ondergaan wat betreft stabiliteit en performance.
  • De SPI library ondersteunt nu ‘transactions’ voor betere onderlinge samenwerking tussen meerdere SPI devices tegelijkertijd.
  • Betere support voor 3rd party hardware verkopers met configuratie bestanden (platform.txt en boards.txt)
  • Submenus met board configuratie kunnen nu worden gedefinieerd.
  • Fix voor upload problemen met de Leonardo, Micro en Yún.
  • De meegeleverde libraries zijn verbeterd en gebugfixed, in het bijzonder: Bridge, TFT, Robot_Control, SoftwareSerial en GSM.
  • Heel veel kleine bugs in de user interface zijn gefixed.

Icon_download-02-05Download de nieuw Arduino IDE 1.6.0 via deze link.

Verkrijgbaar voor Windows, Linux en MacOSX

Arduino tutorial: Draadloos sensor netwerk met de nRF24L01+

Introductie

De nRF24L01+ 2.4GHz RF radio’s van Nordic zijn een geweldige manier om Arduino’s met elkaar te laten communiceren. Omdat deze transceivers (zender en ontvanger in één) goedkoop en krachtig zijn, zijn ze perfect om bijvoorbeeld een draadloos sensor-netwerk mee aan te leggen.

nRF24L01+ transceiver

nRF24L01+ transceiver

De nRF24L01+ vormt dan ook een prima alternatief voor communicatie met ZigBee, XBee, bluetooth of wifi. Ze lijken, zeker voor beginners, wat lastig maar als je er eenmaal mee aan de slag gaat valt dat best mee.

Deze tutorial probeert je alvast een stuk op weg te helpen. De bedoeling is om één transceiver de uitgelezen data van een sensor draadloos over te laten sturen naar een andere transceiver. Deze transceiver ‘print’ de ontvangen data naar de USB-port waar dan een PC of andere hardware op aangesloten kan worden die de data kan verwerken.

(more…)

Arduino tutorial: GPS Module Ublox NEO6MV2

Introductie

NEO6MV2Met het GPS breakoutboard voor de Ublox NEO6MV2  kan je Arduino project precies bepalen op welke positie op aarde het zich bevindt, hoe snel het gaat, in welke richting het beweegt, hoeveel satelieten er zichtbaar zijn en nog veel meer.
De communicatie met je project verloopt simpel via een seriele TX/RX verbinding (maar 2 Arduino pins nodig).
De TinyGPS++ Arduino-library interpreteert de NMEA-data waardoor het gebruik van de GPS-data in een programma erg simpel wordt.

Je kunt de module hier bestellen:  GPS_Module_Ublox_NEO6MV2

(more…)