Internet of Things / MicroPython

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:

De pagina “MicroPython Basics: How to Load MicroPython on a Board” is eveneens handig als je MicroPython op een bestaand ESP8266 board wilt installeren.

iot-amica_pinout d1-mini-esp8266-micropythond1-mini-esp8266-pinout

Ik heb het afgelopen weekend op twee verschillende soorten boards geïnstalleerd. De eerste is een ESP8266 board van LoLin, zoals je hier kunt lezen niet ieders voorkeur wat betreft board, maar goed het is een V2 (of V3 zo je wilt) board en het werkt. Het heeft ook een aparte “flash” knop zodat je niet met weerstanden aan de slag hoeft bij het flashen ervan.
Het andere board is een WeMos D1 Mini, echt het kleinste ESP8266 board dat er is, minimale afmetingen en met een echt minimale prijs. Voor nog geen 3 euro (incl. verzenden) kun je er al eentje over laten komen uit het Verre Oosten. En in de officiële store kun je uitbreidingsbordjes met thermometer, een relais, een knop, zelfs een klein LCD schermpje bestellen die er bovenop passen.

Het flashen van de WeMos D1 Mini kostte echter wat meer tijd. Sowieso moet je even een weerstandje tussen connector D3 en GRND plaatsen en dan resetten. Dat plaatste de WeMos in “flash-modus” (er is dus geen knopje voor), maar het bleek dat ik het Flash-programma op 80Mhz moest zetten. Deed ik dat niet, dan lukte het flashen niet. Dat kwam ik nergens in de online documentatie tegen.
Het weekend is bijna voorbij, maar ik ben nog lang niet uitgespeeld met MicroPython. Ik ga in ieder geval ook hiermee een thermometer / vochtmeter maken die via WiFi de waardes aan mijn MQTT-server doorgeeft. Dan kan ik laten zien hoe die code zich verhoudt met een vergelijkbare sensor die ik gewoon met de Arduino IDE geprogrammeerd heb. Wordt dus vervolg.

p.s. Tony is duidelijk een ervaren Python programmeur. Voor mij is het een programmeertaal waar ik me een stuk minder in thuis voel, ik moet dus nog wat wennen aan de syntax, het consequent inspringen etc.