jan 162016
 

20160116_153712_NormalAls zaterdagmiddagproject vandaag weer eens iets waarvan de titel vast geen duizenden views gaat trekken. Ik had afgelopen week een klein LCD-schermpje binnen gekregen. Het is 1.44 inch groot en heeft een resolutie van 128×128 pixel. Een resolutie van 2x niks zou je zeggen, maar ja het schermpje kost dan ook €2,98 incl. verzendkosten. En als je een ESP8266 gebruikt en alleen maar even wat statusinformatie wilt laten tonen, dan heb je helemaal niet veel nodig.

De uitdaging bij dit soort schermpjes is altijd het vinden van de juiste aansluitingen voor de vaak vele pins die zo’n scherm heeft, deze heeft er 8 én het vinden van de juiste library voor Arduino / ESP8266. Ik noem die laatste twee overigens wel in één adem, maar ook hier is het zo dat er nét een beetje verschil zat tussen hoe je e.e.a. zou moeten doen op een “echte” Arduino versus een ESP8266.

Op de foto hier bij het bericht zie je het eindresultaat met naast het LC scherm en de ESP8266 aan de rechterkant een DHT11 die luchtvochtigheid en temperatuur meet.

Als library heb ik gebruik gemaakt van deze library van “sumotoy” (Max MC Costa uit Milaan, Italië) . Belangrijk daarbij is dat het hier dan gaat om de “Pre-Release-1.0r4” (mogelijk werkt 1.0r5 ook, maar die heb ik niet getest). De “master” branch heeft namelijk nog geen ondersteuning voor de ESP8266.

De 8 aansluitingen stonden daar ook netjes aangegeven:

TFT kant   -------- ESP8266  
- Vcc       -->     +3V3V(!!!!)
- Gnd       -->     Gnd
- CS        -->     D0
- RST       -->     D2
- A0        -->     D1
- SDA       -->     Mosi (D7)
- SCK       -->     Sclk (D5)
- LED       -->     +3V3V

Ik heb voor mijn scherm geen weerstand aangesloten al zou een regelbare weerstand hier helemaal niet verkeerd zijn geweest omdat het scherm nu nog ernstig last heeft van licht “bleed” om de randen heen. You get what you pay for zullen we maar zeggen al ga ik er even vanuit dat dat weg valt als je het schermpje in een enclosure opneemt.
De library heeft een groot aantal voorbeelden aan boord, daarbij moet je even opletten dat bij de ESP8266 de 3 #define statements voor de poorten in de scripts moet zijn:

#define __CS 16
#define __DC 5
#define __RST 4

Dat is niet in alle voorbeelden meteen zo, dus dat moet je dan even aanpassen.
Daarnaast kreeg ik eerst boven in het venstertje een balk met ruis te zien. Ik gok dat het ongeveer 32 pixels hoog was. De library is namelijk geschikt voor verschillende schermpjes en Sumotoy heeft zelf blijkbaar een aantal schermpjes die 128×160 pixels zijn. De oplossing was eenvoudig. In de library map zit ook een map genaamd “_settings” met daarin een bestand genaamd “TFT_ILI9163C_settings.h”. In dat bestand staan bovenin een aantal #define statements. Je moet hier de voor jou juiste kiezen. Standaard is “#define __144_RED_PCB__//128×128” gekozen en omdat ik een rode PCB had zou dat moeten kloppen. Maar het bleek dat in mijn geval “#define __144_BLACK_PCB__//128×128” het gewenste effect gaf.

Lees verder….

Deel dit bericht:
dec 232015
 

20151223_150453Ik schreef gisteren al dat ik een tweetal ESP8266 boardjes had laten komen. Een soort Arduino maar dan veel goedkoper dan wat ik daar ooit voor betaalde én voorzien van Wifi op het toch al niet grote bordje. Een van de dingen waar ik de Arduino’s de afgelopen jaren voor gebruikt heb is als grondvochtigheidsmeter voor de jonge aanplant in het voorjaar (voordat ze de volle grond in gaan). Dan is het handig om op afstand in de gaten te kunnen houden of ze water nodig hebben.
Voor dat doel kun je tamelijk betaalbare grondvochtigheidsmeters kopen (zo’n €1,60 – voor dat bedrag ga ik ze niet zelf maken met spijker/draden etc). Eerste projectje deze week was daarom om zo’n meter aan te sluiten op een ESP8266 en dan de data, via Wifi, zowel via een webpagina als via MQTT toegankelijk te maken. Dat was op zichzelf niet zo heel moeilijk. Maar ja, zo’n bordje kan natuurlijk niet zomaar bij zo’n plantenbak liggen (vocht en zo).

Ik vind de “standaard” firmware die op de ESP8266 meegeleverd wordt prettiger als de Espruino firmware waar ik gisteren mee gespeeld heb. Daarmee kun je op dezelfde manier als bij de Arduino, zelfs mét de Arduino IDE, scripts maken voor de verschillende taken die je de ESP8266 wil laten uitvoeren (uitlezen vochtigheidsmeting, verbinding maken met de wifi, versturen van die data via wifi, tonen van een webpagina etc). Dat deel van het project was dus eenvoudig.

Wel moest er natuurlijk een behuizing komen voor de combinatie van ESP8266 en het kleine stukje logica dat aan de vochtigheidsmeter vast zat (klein printplaatje met o.a. potmeter waarmee je de schakelwaarde voor de digitale uitgang kunt aanpassen en 2 ledjes die laten zien dat het geheel werkt), want dat kon zo niet bij een vochtige plant blijven liggen. Nou zijn er al heel veel mensen geweest die een pepermuntdoosje als behuizing gebruikt hebben voor de meest uiteenlopende zaken. Dus waarom geen SMINT-doosje als omhulsel voor mijn project? 🙂 Lees verder….

Deel dit bericht:
 Reacties uitgeschakeld voor Woensdagproject: draadloze grondvochtigheidsmeter met frisse smaak  Tags: , ,
dec 222015
 

EspruinoNet als gisteren is dit weer een blogpost in de categorie: “over een week ben ik zelf vergeten wat ik ook al weer deed, dus ik moet het even ergens documenteren”. Omdat het kerstvakantie is had ik even tijd om te experimenteren (lees: spelen) met een apparaatje dat ik een week of zo geleden uit het Midden-Oosten heb laten komen. Het gaat om een ESP12E/ESP8266. Die van mij kwam hier vandaan. Heel kort samengevat lijkt het op een Arduino, je programmeert hem als een Arduino (kun je zelfs de Arduino IDE voor gebruiken), maar hij is zo klein als een Arduino nano, kost heel weinig (deze versie €6,09 incl. verzenden) én heeft een wifi chip ingebouwd zitten. En vooral voor dat laatste betaal je bij Arduino normaal gesproken de hoofdprijs.

Goed, er zitten ook nadelen aan de ESP8266, maar daarover een andere keer meer. Mij ging het om een ander op Arduino gebaseerd initiatief, genaamd Espruino. Die biedt namelijk de mogelijkheid om JavaScript code uit te voeren én heeft ondersteuning voor Blockly bij het programmeren van hun board. Zie ook dit bericht dat ik er eerder over schreef.
Maar niet alleen voor het specifieke Espruino board, er is ook ondersteuning voor de ESP12E/ESP8266. Daarvoor moet je echter wel even de ESP12E/ESP8266 flashen met andere firmware. Potentieel is dat iets waarmee je een apparaat om zeep kunt helpen. Ik plaats hier mijn notities om het de volgende keer weer opnieuw te kunnen doen, wil je ze volgen, dan doe je dat volledig op eigen risico!

Ik voer de stappen uit op een Windows 10 machine met de ESP12E/ESP8266 aangesloten via een USB-kabel.

  • Ga met de browser naar https://github.com/espruino/EspruinoBuilds
  • Klik op de Download ZIP knop aan de rechterkant van de pagina.
  • Sla de ZIP op in een map en pak hem uit.
  • Uit de map EspruinoBuilds-master\ESP8266 heb je nodig: blank.bin, boot_v1.4(b1).bin en espruino_esp8266_user1.bin

Tegen de tijd dat je dit doet kan het zijn dat er een nieuwe versie van de bestanden is. De README.md in de ZIP heeft alle benodigde informatie, zie ook verderop.

Om de bestanden op de ESP12E/ESP8266 te kunnen plaatsen is er nog een aanvullend tooltje nodig:

  • Ga met de browser naar https://github.com/igrr/esptool-ck/releases
  • Download esptool-0.4.6-win32.zip of de versie die inmiddels het nieuwste is.
  • Open de ZIP en plaats esptool.exe in dezelfde map als de andere bestanden van hierboven.

nodemcu_devkit_v10_pinoutNu gaan we de software op de ESP12E/ESP8266 plaatsen, maar daarvoor moeten we hem eerst in een update-modus plaatsen:

  • Plaats een weerstand tussen de pin waar D3 bij staat (GPIO0) en een van de GRND pinnen (de zwarte in de afbeelding hiernaast)
  • Reset de  ESP12E/ESP8266
  • Open op de Windows-computer een dos-prompt en ga naar de map met de bestanden
  • Voer de volgende commandoregel in, vervang hierbij COM14 met de COM-poort die de ESP12E/ESP8266 op jouw computer heeft: esptool -bm qio -bz 4M -bf 40 -cp COM14 -cb 115200 -cd nodemcu -ca 0x00000 -cf "boot_v1.4(b1).bin" -ca 0x1000 -cf espruino_esp8266_user1.bin -ca 0x7E000 -cf blank.bin
  • Als de update goed gegaan is, reset dan de ESP12E/ESP8266.

Flash

Ga dan met Google Chrome naar https://chrome.google.com/webstore en zoek naar espruino. Je vindt dan de Espruino Web IDE, voeg die toe aan Chrome. Hiermee kun je verbinding maken met de ESP12E/ESP8266, code uitvoeren etc.

Klaar.

 

Deel dit bericht:
 Reacties uitgeschakeld voor Quick notes: Espruino firmware flashen naar ESP8266  Tags: , ,