MIT App Inventor van het Massachusetts Institute of Technology is een heel toegankelijk platform waar je zelf apps kunt leren bouwen. Alex Pikkert bouwde er een Android-app voor een smart home-toepassing. Hiermee kan hij een Arduino MKR1000-minicomputer aansturen die vervolgens maximaal vijf aangesloten apparaten in huis aan en uit kan zetten. Lees hieronder hoe Alex dat deed.
Alex Pikkert
Op de website van het M.I.T. (Massachusetts Institute of Technology) appinventormit.edu kun je inloggen met je Google-account om zelf een app voor een Android-smartphone te maken. Je kunt zowel de schermen definiëren als alle achterliggende commando’ s programmeren. Dat laatste gaat met een heldere WYSIWYG (what you see is what you get) visuele programmeertaal met duidelijke blokfuncties.
De M.I.T. website staat vol met tutorials, een startersgids en een groot forum. Je kunt er stap voor stap leren programmeren om het ontwerp van het telefoonscherm te maken en je kunt alle achterliggende functies van de knoppen en de in te vullen gegevens vastleggen.
Ik heb hiermee een app gemaakt (klik op deze link voor een kort YouTube-filmpje) om een Arduino MKR1000 minicomputer via de WiFi aan te sturen met 5 verschillende uitgangen om daarmee 5 verschillende toestellen in een “smart home” aan en uit te kunnen zetten. In eerste instantie zijn er alleen LED’ s op de MKR1000 aangesloten, maar die kunnen eenvoudig vervangen worden door schakelrelais.
Het programma is te vinden in de gallery van de ontwikkelomgeving. Zoek hier vervolgens op “MKR1000” en download de meest recente versie “MKR1000_V4_Control”. Dan krijg je op je eigen ontwikkelpagina een kopie die je kunt bekijken en eventueel veranderen/verbeteren. Als je het uitvoerbare Android-bestand (de APK file) wilt uitproberen zonder in te loggen bij het M.I.T., dan kun je het bestand hier rechtstreeks downloaden en vervolgens op je smartphone kopiëren en installeren.
Opmerking:
Wanneer de app klaar is om te worden geïnstalleerd, kopieer deze dan naar de Android-telefoon en dubbelklik op het apk-bestand. De app bevat geen malware of virussen, maar de virusscanner zal waarschijnlijk op hol slaan en meerdere onjuiste waarschuwingen geven. Negeer ze gewoon, de belangrijkste reden is dat je een app downloadt buiten de officiële app store om…
En hier kun je het .aia-bestand downloaden. Die kun je vervolgens in je eigen programmeeromgeving op de M.I.T. website importeren en zien hoe de app gemaakt is.
Op het eerste scherm kun je 5 verschillende apparaten aan- en uit zetten. Op het tweede scherm (de settings) kun je de vijf teksten aanpassen, de poorten op de Arduino MKR1000 instellen en het gebruikte IP-adres vastleggen.
Ook kun je met de vinkjes bepalen hoeveel knoppen er op het eerste scherm zichtbaar zijn (minimaal 1, maximaal 5).
Het Arduino programma (het is een .ino file in een pdf)
De Arduino MKR1000 heeft natuurlijk een programma nodig om te kunnen samenwerken met deze app van het M.I.T. Dit is het onderstaande .ino bestand. Het is een uitgebreide en verbeterde versie van het stuurprogramma uit de publicatie “Arduino and Genuino MKR1000 Development Workshop 2016” van Agus Kurniawan. De verbeteringen staan omschreven in het tekstgedeelte van het programma.
https://apinventions.files.wordpress.com/2020/04/mkr1000_ino.pdf
Download het PDF-bestand, kopieer de tekst in de Arduino IDE en upload het programma vervolgens in de MKR1000. Ga naar www.arduino.cc voor de uitleg over het installeren en gebruiken van de nodige software en het programmeren van de Arduino. Voeg voordat het programma in de MKR1000 ingeladen wordt, eerst de codes voor het wifi-netwerk in op de plaatsen van de “xxx”.
Als je nog niet eerder een MKR1000 hebt geprogrammeerd, moet je eerst de MKR1000 zichtbaar maken in de IDE. Standaard zit de MKR1000 er namelijk niet in. Installeer daarvoor eerst de benodigde “Wifi101″ bibliotheek. Ga hiervoor naar “schets-bibliotheek gebruiken-bibliotheek beheren”. De laatste stap is het toevoegen van de mkr1000 zelf. Ga hiervoor naar “hulpmiddelen-board-bordenbeheerder”. Zoek uit de lijst van borden de “Arduino SAMD Boards (32-bits ARM Cortex-M0+)” op. Klik daar op “More info” en “installeren” om dit board te installeren.
Om het geheel te testen heb ik LED’ s op de uitgangen van de MKR1000 aangesloten via weerstanden van 1 kOhm. Als de MKR1000 ingeschakeld wordt, dan gaat de witte LED branden ten teken dat er gezocht wordt naar het wifi-netwerk. Als deze verbinding OK is, dan gaat de groene LED aan en de witte LED gaat uit. Dan is er een stabiele verbinding. Als het netwerk wegvalt, zal de MKR1000 opnieuw gaan zoeken naar de wifi-verbinding. De MKR1000 heeft een vast IP-adres om te voorkomen dat de aanwezige router er af en toe een ander adres aan toekent. Daardoor zou het hele systeem niet werken.
Om andere apparatuur in en uit te schakelen kun je in plaats van de LED’s 5 Volt schakelrelais aansluiten.
Wees voorzichtig met het aansluiten van de schakelcontacten als je ze aansluit op 230 Volt wisselspanning om bijvoorbeeld verlichting in huis te schakelen. Isoleer deze aansluitingen volgens de geldende voorschriften en gebruik hiervoor de juiste bedrading met de juiste doorsnede, afhankelijk van de aangesloten apparatuur 2,5 mm2 of minimaal 1,5 mm2. Als je meerdere relais aansluit, gebruik dan een separate 5 Volt DC-voeding voor deze relais om de 5 Volt-aansluiting van de MKR1000 niet over te belasten.