Aan de slag met de ESP8266

Pin It

In deze post beschrijf ik hoe je de Arduino IDE voor de populaire ESP8266 processor-bordjes geschikt kunt maken. Hoewel al deze informatie gewoon van internet af te halen is blijkt het voor veel mensen, die de Arduino IDE of de ESP8266 bordjes net ontdekt hebben, overweldigend.

De ESP8266

De ESP8266 is een goedkope microprocessor met Wi-Fi mogelijkheid en een volledige TCP/IP stack. De ESP8266 is ontwikkeld en wordt geproduceerd door de Chinese fabrikant Espressif Systems uit Shanghai.

Door de geïntegreerde WiFi mogelijkheid is deze microprocessor in korte tijd razend populair geworden. In eerste instantie omdat de chip werd gezien als een goedkope mogelijkheid om een Arduino bordje van WiFi te voorzien, maar al snel kwamen de echte nerds (and I say nerds with the utmost respect) erachter dat de ingebouwde microprocessor en de hoeveelheid beschikbare (flash) geheugen de capaciteit en mogelijkheden van de Arduino bordjes verre overtrof.

Even wat gegevens op een rij:

  • Processor: L106 32-bit RISC microprocessor core based on the Tensilica Xtensa Diamond Standard 106Micro running at 80 MHz
  • Memory:
    • 32 KiB instruction RAM
    • 32 KiB instruction cache RAM
    • 80 KiB user-data RAM
    • 16 KiB ETS system-data RAM
  • External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB typically included)
  • IEEE 802.11 b/g/n Wi-Fi
    • Integrated TR switch, balun, LNA, power amplifier and matching network
    • WEP or WPA/WPA2 authentication, or open networks
  • 16 GPIO pins
  • SPI
  • I²C (software implementation)
  • I²S interfaces with DMA (sharing pins with GPIO)
  • UART on dedicated pins, plus a transmit-only UART can be enabled on GPIO2
  • 10-bit ADC (successive approximation ADC)

Vanwege de early adoption door de Arduino community lag het voor de hand om deze krachtige microprocessor met de Arduino IDE te willen programmeren. In deze post probeer ik, stap voor stap, uit te leggen wat je moet doen om dit mogelijk te maken.

1) Download en installeer de Arduino IDE


Download en installeer 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.

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.

Geplaatst in Arduino, ESP8266, Geen categorie | Getagged , , | 5 Reacties

Slimme Meter uitlezer

Pin It

Slimme Meter uitlezer

2.953 views


Zo langzamerhand zijn alle huizen in Nederland uitgerust met een “Slimme Meter”. Hoog tijd dus om een project te starten om deze Slimme Meter thuis uit te kunnen lezen en de gegevens op een door jouw gewenst formaat te presenteren.

In deze blog-post beschrijf ik hoe je, eenvoudig en voor weinig geld, zelf deze DSMR-logger (DSMR is een acroniem voor “Dutch Smart Meter Requirements“) kunt maken. Bij het ontwikkelen van de DSMR-logger willen we het volgende bereiken:

  • De hardware moet eenvoudig en goedkoop gemaakt kunnen worden;
  • De firmware van de DSMR-logger moet “Over The Air” ge-update kunnen worden;
  • Een beperkte historie moet intern opgeslagen en bewaard worden;
  • De DSMR-logger moet via een externe terminal benaderd kunnen worden (telnet);
  • De (historische) gegevens moeten via FTP van de DSMR-logger afgehaald kunnen worden voor eventuele externe bewerking [update: zie aan het einde van deze post];
  • De DSMR-logger moet via een browser de gegevens uit de Slimme Meter presenteren;
  • De gegevens moeten via een REST API opgevraagd kunnen worden;
  • De gelezen gegevens moeten eenvoudig verder verwerkt kunnen worden.

In een vervolg blog-post laat ik zien hoe we de gegevens naar een MQTT-broker kunnen sturen en hoe Home-Assistant moet worden geconfigureerd om deze gegevens in Home-Assistant te presenteren.

De techniek van de Slimme Meter

De Slimme Meter stuurt gegevens via de P1 poort (RJ12) in de vorm van een telegram naar buiten. Hoe de Slimme Meter dit doet en hoe een telegram is opgebouwd staat beschreven in dit document. Met name hoofdstuk 5 is interessant omdat hier wordt beschreven hoe de fysieke interface is opgebouwd. Hieruit blijkt o.a. dat de Slimme Meter 5 volt bij 250mA moet kunnen leveren, met kortstondig een piek stroom afname van 300mA. Hoofdstuk 6 beschrijft het protocol en de diverse velden.

Met dit document in de hand en een beetje Googlen vindt je al gouw meer informatie. Wij zijn niet de eerste en zeker niet de enige die de behoefte hebben om de Slimme Meter uit te lezen.

Zo heeft Matthijs Kooijman een werkelijk subliem stukje software geschreven om de telegrammen uit de meter te parsen en in hapklare variabelen op te slaan. Natuurlijk gaan we van deze bibliotheek gebruik maken. Je kunt hem hier downloaden.

Benodigdheden

Het belangrijkste onderdeel van de DSMR-logger is de processor. We gebruiken hier een ESP8266 voor omdat deze, behalve snel en voorzien van voldoende geheugen, ook via WiFi kan communiceren. Om de kosten laag te houden gaan we uit van een ESP-01 bordje (black edition) met 1MB geheugen. Daarnaast hebben we, behalve zes weerstanden en drie condensatoren (C4 is niet echt nodig maar kun je aanbrengen als je problemen ondervind met het verbinden met je WiFi netwerk), een NPN transistor (BC547) en een voltage regulator (MCP1700-3302E) nodig. Om de DSMR-logger met de Slimme Meter te verbinden heb je een RJ12 stekker met een stukje draad nodig. Ik heb op internet een RJ12 kabel gekocht (met twee RJ12 male connectoren) en deze door midden geknipt.

Als je geen gebruik wilt maken van de DSMR-logger PCB dan heb je ook nog een stukje experimenteer board nodig.

De totale kosten komen uit op ongeveer € 20,-

Geplaatst in Arduino, Computer, ESP8266, Hardware | Getagged , , , | 41 Reacties

Eenvoudige Programmer voor de ESP-01 (ESP8266)

Pin It

Simpele ESP-01 Programmer

103 views


Om de ESP-01 te kunnen programmeren heb je een programmer nodig. Een andere, goedkope oplossing is, als je al een Arduino hebt, een speciaal programma in een Arduino-UNO te laden en dan met losse draadjes een aantal aansluitingen te maken tussen de Arduino en het ESP-01 bordje (zie bijvoorbeeld “hier”).
Je moet dan wel, iedere keer dat je een ESP-01 wilt programmeren, de juiste software op de Arduino-UNO laden en de correcte aansluitingen maken. Veel gedoe en een kans op fouten.

Makkelijker is het om een “ESP-01 to USB Adapter” te kopen en hier een kleine modificatie op aan te brengen.

ESP-01 Boot Modes

Om een ESP-01 in firmware-upload mode te zetten moet aan een aantal voorwaarden worden voldaan. In de documentatie van de ESP-01 staat deze tabel:

Hieruit kun je opmaken dat GPIO0 en GPIO2 beide “hoog” (3.3volt) moeten zijn om de ESP-01 “normaal” te laten werken. De, in flash geheugen, opgeslagen firmware wordt dan uitgevoerd. Op de ESP-01 worden GPIO0 en GPIO2 via een weerstand op Vcc aangesloten.

Als GPIO0 “laag” wordt gemaakt (GND) en je start (of reset) de ESP-01 dan wacht hij op nieuwe firmware die via de UART (de Seriële verbinding) wordt aangeboden en stopt deze in het flash geheugen.

USB Adapter Modificaties

Om met de “ESP-01 to USB Adapter” firmware naar de ESP-01 te kunnen laden moet GPIO0 verbonden worden met GND (zie de tabel hiervoor). Het is het eenvoudigst om een vaste verbinding te maken tussen GND en GPIO0 op de adapter, maar dan kun je hem niet meer gebruiken als ESP-01 naar USB adapter!

Daarom heb ik een kleine schuif-schakelaar op de adapter gelijmd en twee contacten verbonden met respectievelijk GPIO0 en GND.

































Hoe moet je de Programmer gebruiken

Om met deze programmer een ESP-01 van nieuwe firmware te voorzien moet je één en ander wel in de juiste volgorde doen.

1. Plaats de ESP-01 in de gemodificeerde adapter
2. Zet de schuif schakelaar in de “program” stand (GPIO0 verbonden met GND)
3. Plaats de adapter in een USB poort op je computer
4. Selecteer de USB-poort in de Arduino IDE en upload een programma

Als het uploaden klaar is zal de ESP-01 opnieuw opstarten en het nieuwe programma uitvoeren. Je kunt nu de schuif-schakelaar omzetten (GPIO0 niet meer verbonden met GND).

Om de ESP-01 opnieuw te programmeren moet je de adapter éérst uit de USB-poort halen en dan de stappen in dezelfde volgorde opnieuw uitvoeren (je kunt ook de ESP-01 uit de adapter halen en hem er weer terug instoppen. Het gaat erom dat de ESP-01 opnieuw opstart!).

Als je het vervelend vindt om de Adapter iedere keer uit de USB-poort te halen en hem er weer in te stoppen kun je een push-button (NO of “normal open”) tussen de RST pin en GND aanbrengen.

Geplaatst in Computer, ESP8266, Hardware | Getagged , , | Één reactie

Solid State Tape Device for the (micro)KIM

Pin It
71 views

KIM-1 AddIn 1976 I bought my first computer. That was at a time when there was no internet, there where no PC or Apple’s! Computers where meant for big company’s like insurance compagnies and multi nationals. No one had a computer at home. It was the time of the Homebrew Computer Club and Byte magazine. I had a Byte magazine subscription and at a certain point there was an advertisement in it from MOS-Technology for a single board computer called the KIM-1.

KIM-1 SBC
If I remember correctly, I, one-way-or-an-other (remember, there was no internet, no email, no PayPal. only had The Yellow Pages and a Phone Book from the city of Amsterdam), found a distributer in the Netherlands where I ordered this piece of magic.

Lees verder

Geplaatst in Computer, ESP8266, KIM | Getagged , , , , , | 6 Reacties

BeeHave – a beehive data logger

Pin It
33 views

A friend of my keeps bees as a hobby. I’m not fond of flying, stinging insects, but because he was so enthusiastic my partner and I went to visit an apiary in the ‘Corversbos’ in Hilversum and it was nice.


The bees (contrary to wasps) are relaxed, friendly creatures that do no harm – as long as you comply to certain rules (e.g.: don’t stand in their flight path to the landing zone of the beehive!). I think, if they behave them selfs, I like those little creatures.

One of the reasons to visit the apiary was to have a look at some beehives as my friend want’s to log temperature data during the year to monitor the health of the beehive.
And that’s what this blog is about.

The objective is to create a device that will measure the temperature inside the beehive at certain intervals, for instance every one, two, three, four or six hours.
Lees verder

Geplaatst in Computer, ESP8266, Uncategorized, Van Alles | Getagged , , , , , , , , , , , , , , , | 4 Reacties