In de volgende vier hoofdstukken wordt beschreven wat je moet doen om zélf de DSMRloggerAPI firmware te compileren en naar de DSMR-logger te flashen.
In de Arduino IDE moet bij “Instellingen” de volgende URL worden ingevoerd achter “Additional Boards Manager URL’s:” (zie rood omlijnde kader)
https://arduino.esp8266.com/stable/package_esp8266com_index.json
Er kunnen meer additional board manager URL’s worden ingevuld. Je moet ze dan achter elkaar zetten en scheiden door een komma (,).
Eventueel kun je ook het pad waar je projecten staan (de Sketchbook Location
) aanpassen. Standaard verwijst deze naar je Documenten
map:
C:\Users\<YourLoginName>\Documents\arduino\
.. en dat is een prima plek!
De andere instellingen kun je naar behoefte aanpassen. Hierboven staan de instellingen die ik prettig vind.
Na het maken van aanpassingen klik je op [OK]
.
Ga nu via de ArduinoIDE menu-balk naar [tools]
-> [Board]
-> [Boards Manager]
.
Voer bij filter “esp8266” in.
Selecteer de versie die je wilt gaan gebruiken en klik op [Install]
.
Let op! De DSMRloggerAPI firmware is getest met versie 2.7.4 van de Arduino/ESP8266 core. Nieuwere versies zullen zeer waarschijnlijk ook werken, maar bij problemen is het het beste om deze versie te gebruiken.
Lees vooral de uitleg in het bestand en de uitgebreide op hun website!
Nu je een ArduinoIDE hebt waarmee je ESP8266’s kunt programmeren (flashen) zul je ontdekken dat er door briljante mensen software is ontwikkeld die je kunt gebruiken om complexe projecten te realiseren, zonder dat je zelf het wiel hoeft uit te vinden.
Deze software wordt veelal in de vorm van een bibliotheek aangeboden en je hoeft zo’n bibliotheek alleen maar te installeren om er gebruik van te kunnen maken.
Hier vind je de officiële instructies voor het installeren van bibliotheken met de ArduinoIDE.
Stel je wilt je ESP8266 benaderen met een telnet client
zodat je vanaf je Desktop of Laptop op de ESP8266 kunt inloggen. Je hebt op de ESP8266 dan een telnet server
nodig. Met wat Googelen naar "ESP8266 telnet" blijken hier een aantal bibliotheken voor te bestaan.
Als voorbeeld nemen we TelnetStream van Juraj Andrassy. Zijn telnet implementatie kun je vanaf deze github pagina als bibliotheek downloaden.
Om de bibliotheek te installeren klik je op de groene [Clone or download]
knop en selecteer je [Download ZIP]
.
Onthou waar je het zip-file bewaard!
Ga nu naar de Arduino IDE en selecteer:
[Sketch]
=>[Include Library]
=>[Add .ZIP Library]
Er verschijnt een selectie window waar je het zojuist ge-download-de bestand selecteert.
Klik op [Choose]
.
De bibliotheek is nu geïnstalleerd en klaar om gebruikt te worden. De meeste bibliotheken komen met een aantal voorbeeld programma’s waarmee je kunt leren hoe je de bibliotheek kunt gebruiken.
Juraj Andrassy is erg summier met zijn uitleg maar gelukkig is er een map met voorbeelden (nou ja, één voorbeeld).
Klik je nu op[TelnetStreamTest]
dan wordt dit voorbeeld programma in de Arduino IDE geladen.
Installeer op dezelfde manier de andere bibliotheken die voor de DSMRloggerAPI
firmware nodig zijn (zie het volgende hoofdstuk).
Eén van de mooie eigenschappen van de ESP8266 is dat er flash geheugen in zit. Flash geheugen is geheugen dat zijn inhoud ook zonder spanning behoud. Vergelijk het met een SD-kaart. Het flash geheugen is, afhankelijk van het bordje, 512kB tot 16MB(!) groot. Een deel van dit flash geheugen wordt gebruikt om jouw programma in op te slaan. Wat er over blijft kan als bestand systeem worden ingericht (het zgn. LittleFS).
Je kunt in je programma dit bestand systeem niet alleen gebruiken om (bijvoorbeeld meet-) gegevens maar ook om de inhoud van een web-pagina (index.html
) of een configuratie-bestand in op te slaan.
Om het LittleFS voor dit soort bestanden te kunnen gebruiken moet je een plug-in
in je Arduino Projecten map installeren.
De plug-in haal je vandaan. Ga naar deze pagina en download het meest recente .zip bestand ..
Download vervolgens het ESP8266LittleFS-x.y.z.zip
bestand door er op te klikken.
En bewaar het bestand op een plek die voor jou handig is.
Ga nu naar je Sketchbook Location
map en maak daarin een nieuwe map tools
aan (als deze nog niet bestaat). Pak het zojuist ge-download-de zip bestand uit in deze tools
map. Er wordt nu een aantal nieuwe mappen aangemaakt waar de plug-in wordt neergezet. Het pad ziet er ongeveer zo uit:
<sketchbook location>/tools/ESP8266FS/tool/esp8266fs.jar
Start de Arduino IDE opnieuw op.
Op de menu-balk zie je nu onder[Tools]
een nieuwe optie: ESP8266 LittleFS Data Upload
.
Als er onder de map van je Sketch óók een map data
staat, dan kun je de bestanden die in deze data
-map staan met het ESP8266 LittleFS Data Upload
tool naar het bestand systeem van de ESP8266 flashen.
De bestands-tree van de DSMRloggerAPI firmware data-map ziet er zo uit:
Het ESP8266 LittleFS Data Upload
tool zal alle bestanden die in de data
-map zitten naar het bestand systeem van de aangesloten ESP8266 uploaden.
Ga naar: [tools
] -> [ESP8266 LittleFS Data Upload
]
Randvoorwaarde is natuurlijk dat het bestand systeem groot genoeg is! In de selectie van je board moet je, behalve het juiste type board ook aangeven hoeveel ruimte van je Flash geheugen je wilt gebruiken voor het bestand-systeem (vóórdat je je programma naar de ESP8266 upload!).
Normaliter zou je dit zo groot mogelijk willen maken, maar als je “Over The Air” programma’s op je ESP8266 wilt zetten (dus zonder fysieke verbinding maar via WiFi) dan moet je er rekening mee houden dat je twee maal de grootte van je programma nodig hebt om dit te kunnen doen. Wat er overblijft kun je als bestand-systeem gebruiken.
(sorry, het plaatje is een beetje verknipt)
Download en installeer de meest actuele versie van de Arduino Integrated Development Environment (IDE) voor het Operating Systeem (OS) waar jouw Desktop of Laptop computer (er zijn versies voor Windows, Linux en Mac) mee werkt. Je kunt de Software hier downloaden.
De DSMRloggerAPI firmware is getest met de ArduinoIDE v1.8.13
Let op! De Arduino IDE v1.9.x (Beta) is NIET geschikt om deze firmware mee te compileren. Tot v1.9.x zorgt de IDE ervoor dat alle tab-bladen (.ino files) achter elkaar worden geplakt tot één source file waarna van alle functies in dit gecombineerde file zgn. prototypes worden gemaakt voordat deze aan de compiler (als één file dus) wordt aangeboden. De Arduino IDE is eigenlijk de enige IDE (voor zover ik weet) die dit doet en is als zodanig dus een beetje vreemd. v1.9.x (Beta) doet dit voor AVR processoren wel maar helaas (nog) niet voor de ESP8266 processor familie.
Na het downloaden moet je het ontvangen bestand uitpakken (unzip of untar) en installeren. Dat installeren is per OS anders maar staat duidelijk op de website van Arduino aangegeven. Eenmaal geïnstalleerd kun je direct met de Arduino IDE aan de slag.
Om de IDE met de ESP8266 microprocessor te kunnen gebruiken moeten we nog wat stappen uitvoeren.