sep 112016
 

micropythonHet was hier weer even een paar dagen stil. En ook nu nog geen kant en klare “zo moet je nadoen wat ik gedaan heb” blogpost, meer een “dit heb ik zover voor elkaar”.
Het logo hiernaast is van MicroPython, zie het maar als het kleinere broertje of zusje van Python. Waarom kleiner (“micro”)? Kleiner, omdat het daarom mogelijk geworden is om Python zo goed als volledig/volwaardig te draaien op devices waarvan dat voorheen niet mogelijk was. Een voorbeeld daarvan is de micro:bit, maar die zal voorlopig nog erg zeldzaam zijn in Nederland. Met dank aan een succesvolle Kickstarter die onlangs plaats gevonden heeft, is er nu ook een versie voor de ESP8266. En daar heb ik er wel een paar van in huis. Daarnaast zal ook de LoPy, die als het goed is eind deze maand verstuurd wordt, direct ondersteuning hebben voor MicroPython. Tijd dus om er alvast eens in te duiken.

Je kunt best veel lezen over MicroPython, maar ik kan je zeker de videoserie aanraden die Tony DiCola op het moment maakt voor Adafruit. Ze zijn wat langer, soms 45 minuten of iets langer, Maar Tony gaat heel uitgebreid en geduldig op de verschillende aspecten van MicroPython in. De video’s worden als livestream gemaakt, maar daarna toegevoegd aan hun eigen pagina met veel tekstuele toelichting, code-snippets en verwijzingen. Je kunt die op de Adafruit Learn website vinden.

Voor wat betreft “lezen” is deze eerste pagina sowieso een heel goede om te beginnen. Daar kun je o.a. verwijzingen vinden naar:

Lees verder….

Deel dit bericht:
jul 252016
 
overzicht_bron_tessel_io

bron: https://tessel.io/docs/communicationProtocols

Drieletterwoorden hebben normaal gesproken niet veel toelichting nodig. Afkortingen van 3 (of 4) letters vaak wel. Daarom in dit bericht aandacht voor 4 afkortingen die te maken hebben met de communicatie tussen apparaten zoals een Raspberry Pi, een Arduino, de ESP8266, de BBC micro:bit met randapparatuur of sensoren.

Ik moet bekennen dat ik ze vaak gebruikt heb zonder te weten welk van de vier om welke redenen zou moeten kiezen. Meestal was het een kwestie van “wat wordt ondersteund?” en dan koos ik de eerste waarvoor ik code kon vinden.

Op tessel.io staat duidelijke uitleg voor hun eigen hardware. Ik ga de begrippen, verschillen en overeenkomsten generieker en in het Nederlands beschrijven.

Lees verder….

Deel dit bericht:

Getest: Dot Matrix Module

 Gepubliceerd door om 06:00  Arduino, ESP8266, Hardware, noads
jun 202016
 

dot-matrix-moduleAfgelopen weekend heb ik de tijd genomen om uitgebreid aan de slag te gaan met een product waarvan ik vooraf alleen wist dat het een “Dot Matrix Module” heet. Je ziet hiernaast een afbeelding van de module. Op basis van die naam en de afbeelding ben ik daarom op zoek gegaan. Zo kwam ik er al snel achter dat de module gebruik maakt van een MAX7219 van Maxim. En dan niet één, maar vier die aan elkaar gekoppeld zijn. De module heeft echter maar één aansluiting bestaande uit vijf pinnen waarmee je dus alle vier de modules tegelijkertijd aan kunt sturen.

Arduino en ESP8266Je kunt de module in principe rechtstreeks aansluiten op een Arduino of vergelijkbare kloon. Omdat ik ook met een ESP8266 en een WeMos d1 mini (ook op basis van een ESP8266) aan de slag wilde (zie de foto’s hiernaast), was een aparte 5V voeding noodzakelijk. Dat doe ik op basis van een oude USB-kabel waar de stekker aan een kant afgeknipt is met in plaats daarvan aan de zwarte en rode kabel een dupont stekker die ik in een breadboard kan prikken. Wel belangrijk is om dan de ground van die externe voeding ook aan de Arduino of ESP8266 aan te sluiten!

Om meteen even bij het eindresultaat te beginnen, het filmpje hieronder laat een aantal opties zien:

Mocht je vinden dat de matrix niet erg fel is, dat is een combinatie van de hoeveelheid daglicht, de gebruikte camera én het feit dat ik de instellingen meestal redelijk laag heb staan omdat ik anders gek werd van het felle licht. In de demo zit een stukje waarbij verschillende lichtsterktes getoond worden, daar kun je zien dat hij tamelijk fel gezet kan worden.

Je ziet een stand-alone Arduino Uno, dus zonder netwerkverbinding die een van de standaard bij een library bijgeleverde demo van mogelijkheden doorloopt. Daarna zie je de ESP8266 eerst stand-alone, zonder gebruik van het netwerk en daarna de WeMos d1 mét gebruik van het netwerk. In dat geval gebruik de WeMos een wifi-verbinding om via een NTP-server de actuele datum en tijd op  te vragen en laat die dan op het scherm zien. Zoals je op het einde kunt zien, kan de WeMos ook gewoon via de pinnen voorzien worden van 5V, dus je zou dit geheel in een behuizing kunnen stoppen en dan heb je met één kabel naar een USB-stekker het geheel aan het draaien (is een project voor een ander weekend).

Toch ging het niet allemaal zo eenvoudig als het hierboven nou lijkt. Wil je het zelf ook gaan doen, lees dan even verder.

Lees verder….

Deel dit bericht:
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: , ,