In het vorige deel presenteerde ik een kleine PC-client voor het interessante MQTT-protocol. Die bleek vrij gemakkelijk te programmeren. Daarbij was het heel handig, dat er op Internet test-servers (brokers) zijn, die we kunnen gebruiken om onze eigen berichten te laten doorsturen. Verder worden op de officiële MQTT-pagina’s (zie het vorige deel) open-source-bibliotheken voor alle mogelijke programmeertalen aangeboden. Voor mijn MQTT-client had ik gekozen voor de . NET -C#-library M2MQTT. Met mijn client-software (die u natuurlijk ook kunt gebruiken) kunnen we zowel berichten publiceren („publish“) als ons abonneren („subscribe“) op berichten over bepaalde topics. Zo kun je overal op de wereld je tekstberichten van een PC naar een andere PC sturen.

Dat was al heel leuk, maar toch nog niet helemaal wat we ons voorstellen bij het „Internet of Things“. We willen via het Internet dingen besturen, bijvoorbeeld een lamp aan- en uitschakelen. En die dingen moeten bij voorkeur een draadloze verbinding met het net hebben, zodat we geen kabels in ons huis hoeven aan te leggen. Gelukkig hebben we bij Elektor al allerlei hard- en software gepubliceerd die daarvoor te gebruiken is. En zo kon mijn eerste IoT-project gemakkelijk uitbreiden met een besturing voor de lamp in mijn werkkamer.

Eerst heb ik een kleine uitbreiding voor mijn PC-client geprogrammeerd. Die tekenreeksen die binnenkomen via het abonnement op een berichtenkanaal, worden nu niet alleen weergegeven in het „Received text“-venstertje, de PC stuurt ze nu ook via USB naar buiten, met behulp van een in een dropdown-box instelbare (virtuele) COM-poort. We kunnen hier een FTDI-kabel, een Arduino of andere passende hardware aansluiten, om de seriële USB -signalen te verwerken. Ik heb gekozen voor de SAM -D20-kaart uit onze ARM -cursus, verbonden met een Gnublin/ EEC -relaisprint via een EEC -adapter-aansluiting. In mijn SAM D20 had ik nog de demo-software voor het Elektor-artikel over de EEC -adapter. Die kan bytereeksen zoals „R 0 x +“ (x = 0..7) interpreteren en het juiste relais schakelen.