Een kwestie van samenwerking: ontwikkelen met het Thing Plus Matter Board en Simplicity Studio
Als je met domotica wilde beginnen, moest je tot nog toe eerst een ecosysteem kiezen. Dat behoort nu echter tot het verleden, omdat Matter elk IoT-apparaat gemakkelijk wil laten communiceren via dit nieuwe open-source protocol. In dit artikel ontwikkelen we een kleine Matter-compatibele demotoepassing met het nieuwe SparkFun Thing Plus Matter Development Board en de Simplicity Studio IDE van Silicon Labs.
Inmiddels hebben we allemaal van het Internet of Things gehoord (het IoT, zoals het meestal wordt genoemd). Maar het is nog altijd tamelijk gefragmenteerd, met meerdere communicatieprotocollen. Dit dwingt zowel ontwikkelaars als gebruikers een keuze te maken hoe hun apparaten moeten communiceren, en zich vervolgens in die omgeving vast te leggen. Daar komt nu echter een einde aan met de introductie van Matter, een uniforme, open-source application-layer verbindingsstandaard die is ontwikkeld om ontwikkelaars en fabrikanten van apparaten in staat te stellen betrouwbare en veilige ecosystemen te bouwen en daar verbinding mee te maken, en de compatibiliteit tussen aangesloten thuisapparatuur te vergroten.
Een korte geschiedenis van Matter
Matter begon in 2019 als Project CHIP, wat staat voor Connected Home over IP. Grote (en aanvankelijk concurrerende) spelers zoals Amazon, Apple, Google deden samen met de Zigbee Alliance en een aantal andere bedrijven zoals Nordic Semiconductor, een poging om één enkel communicatieprotocol te ontwikkelen waamee het hele Internet of Things geünificeerd zou kunnen worden. Matter is een open-source, royalty-vrij protocol waarmee apparaten kunnen communiceren via WiFi-, Ethernet-, Bluetooth Low Energy- en Thread-netwerken. Dat betekent dat apparaten die Matter-gecertificeerd zijn naadloos met elkaar kunnen communiceren, ongeacht de gebruikte draadloze technologie.
Nu hoeven ontwikkelaars, fabrikanten en consumenten niet langer te kiezen tussen HomeKit van Apple, Alexa van Amazon of Weave van Google. Voor fabrikanten betekent dit eenvoudiger ontwikkeling en voor consumenten meer compatibiliteit.
Een van de belangrijkste voordelen van Matter is dat het de setup en het beheer van smart home-apparaten vereenvoudigt. Met Matter-gecertificeerde apparaten zijn eindgebruikers in staat om hun smart home-systemen snel en gemakkelijk op te zetten, zonder de noodzaak van gespecialiseerde kennis of technische vaardigheden. En omdat veiligheid van het grootste belang is, ondersteunt het protocol ook end-to-end versleuteling, zodat de gegevens die tussen apparaten worden verzonden veilig zijn.
Een ander belangrijk voordeel is voor de meesten van ons dat Matter volledig open-source is. Alle informatie van Matter is beschikbaar in hun GitHub-repository , inclusief broncode, documentatie, scripts, voorbeelden en alles wat een ontwikkelaar nodig heeft om Matter-compatibele componenten te bouwen.
Dat is naturlijk heel mooi en prachtig, maar de meesten van ons zijn voorbestemd om de rol van consument spelen, zonder enige mogelijkheid om prototypes van componenten te maken zonder helemaal vanaf nul te beginnen. Gelukkig komt daar verandering in met de recente release van het SparkFun Thing Plus Matter Development Board van SparkFun Electronics , dat verkrijgbaar is in de Elektor-shop (zie het kader Gerelateerde Producten). Dit is het eerste gemakkelijk toegankelijke board in zijn soort dat Matter en het Qwiic-ecosysteem van SparkFun combineert voor vlotte ontwikkeling en prototyping van Matter-gebaseerde IoT apparaten. De MGM240P draadloze module van Silicon Labs biedt veilige connectiviteit voor zowel 802.15.4 met Mesh-communicatie (Thread) als Bluetooth Low Energy 5.3-protocollen. De module is voorbereid voor integratie in het Matter IoT-protocol voor huisautomatisering van Silicon Labs. SparkFun’s Thing Plus ontwikkelboards zijn Feather-compatibel en bezitten een Qwiic-connector voor eenvoudige integratie in het Qwiic Connect System voor soldeerloze I2C-schakelingen.
Aan de slag met Simplicity Studio
Om met Matter onze eerste stappen als IoT-ontwikkelaar te zetten, moeten we beginnen met het aansluiten van het Thing Plus Matter Board op een Google Nest Hub. Maar eerst installeren we Simplicity Studio van Silicon Labs. We geven hier een summiere beschrijving; een veel uitgebreidere tutorial kun je vinden op de website van SparkFun .
Als je naar de website van Silicon Labs gaat, kun je de meest recente versie (Simplicity Studio 5 op het moment van schrijven) voor je besturingssysteem downloaden. Als je op de installatieknop voor je specifieke besturingssysteem klikt, kom je op een inlogpagina. Als je nog geen account hebt, moet je dat nu aanmaken, want daar wordt bij het openen van Simplicity Studio naar gevraagd. Zodra je het programma hebt gedownload, voer je het installatieprogramma uit, zoals getoond in figuur 1.
Nadat je Simplicity Studio hebt geïnstalleerd en voor de eerste keer uitvoert, kom je in de Installation Manager, die naar eventuele updates zoekt en deze voor zover nodig voor je opsomt. Hier kun je gewoon op Update All klikken om ervoor te zorgen dat je de laatste versies hebt van alles wat Simplicity Studio nodig heeft om te draaien. Als er geen updates zijn, of je systeem is geconfigureerd voor automatisch bijwerken, zal de Installation Manager meteen naar de volgende stap gaan.
Zodra Simplicity Studio opnieuw opstart (als een herstart nodig was), keer je terug naar de Installation Manager, maar deze keer wordt je gevraagd of je je apparaat/apparaten wilt installeren door ze aan te sluiten, of dat je ze wilt installeren per technologietype (draadloos, Xpress, MCU, sensoren). We kiezen hier voor Install by connecting devices (figuur 2) en sluiten we ons SparkFun Thing Plus Matter-board aan via USB.
Er wordt gevraagd of je de vereiste packages wilt installeren, wat we natuurlijk doen; klik dus op Yes. Daarna zou de Installation Manager “1 Device Found” moeten melden, met een naam als
[checkbox] J-Link (000449050174) (ID: 000449050174)
Vink het vakje aan en klik op Next, en je komt bij de Package Installation Options. Door Auto te selecteren worden alle benodigde packages geïnstalleerd, met alle toeters en bellen die we willen. Er is ook een Advanced-optie waar je precies kunt kiezen welke packages je wel en welke niet wilt installeren, maar als je op dat niveau bezig bent, heb je dit artikel waarschijnlijk niet nodig. Kies daarom Auto en dan Next, zoals in figuur 3. Je krijgt een Master Software License Agreement voorgeschoteld die je moet accepteren, en dan begint de installatie. Dit neemt enige tijd in beslag, met aan het eind een herstart, dus misschien is dit een goed moment om wat versnaperingen te halen.
Wanneer je terug bent en Simplicity Studio weer opstart, word je begroet door een andere EULA, en dan, eindelijk, komen we bij het Welcome to Simplicity Studio-scherm! Onder Connected Devices moet je de SparkFun Thing Plus MGM240P zien. Als je op Start klikt, verschijnt de Thing Plus-informatiepagina, waar je een overzicht van het board ziet plus voorbeeldprojecten en demo’s, documentatie en compatibele tools. Als je naar het tabblad Example Projects and Demos gaat, kun je in het filterveld het sleutelwoord “Blink” intypen. Dit zou een aantal resources moeten opleveren. Zoek Platform – Blink Bare-metal en klik op de knop Create (figuur 4).
Dit opent een venster waarin je de naam of locatie van het bestand kunt wijzigen. Ik stel voor het bestand een andere naam te geven, zoals FirstBlinkDemo, en vervolgens op Finish te klikken. Zodra het project is gebouwd, zie je aan de linkerkant van je Simplicity Studio-app een Project Explorer-venster. Zoek naar de hoofd-projectmap, die MatterBlinkExample zou moeten heten. Klik daar met de rechtermuisknop op en navigeer vervolgens naar Run as/1 Silicon Labs ARM Program (zie figuur 5).
Door daarop te klikken wordt de sketch gecompileerd en naar het Thing Plus Matter-board geflashed. De blauwe LED van het board zou nu met tussenpozen van een halve seconde moeten knipperen. Nu is de kans is groot dat toen je je Thing Plus-board voor het eerst via USB aansloot, die LED al begon te knipperen met tussenpozen van een halve seconde – voordat je ook maar iets had gedaan. Om te controleren of je code daadwerkelijk naar het board wordt geflashed, kun je het knipperinterval wijzigen door naar het bestand blink.c in de Project Explorer te gaan en het interval te wijzigen. Ergens in de buurt van regel 31 (figuur 6) zou je dit moeten vinden:
#define TOOGLE_DELAY_MS 500
Verander gewoon de waarde in iets dat duidelijk maakt dat de LED in een ander tempo knippert. Verander de waarde in 100 voor snel knipperen of 3000 voor langzaam knipperen – dan weet je zeker dat het board met jouw code wordt geflashed. Zodra je die waarde hebt veranderd, kun je opnieuw met de rechtermuisknop op de map MatterBlinkExample klikken, naar beneden navigeren naar Run as/1 Silicon Labs ARM Program, dat aanklikken, en dan zien hoe de blauwe LED van het board met een andere frequentie knippert.
Het board verbinden met Google Nest Hub
Gefeliciteerd, je communiceert nu met je Thing Plus Matter-board via Matter in combinatie met Silicon Labs Simplicity Studio. Nu wordt het pas echt interessant. Door te communiceren met Google Hub kun je je eigen custom builds integreren in je Smart Home, met boards zoals dit SparkFun Thing Plus Matter-board (zie figuur 7). Voor wie nu zin heeft gekregen om verder te gaan, heeft SparkFun Engineer Drew samen met Creative Technologist Mariah een video en tutorial samengesteld waarin precies wordt uitgelegd hoe je dat doet.
Omdat deze technologie heel erg nieuw is, zijn voorbeelden en tutorials nog vrij beperkt, maar het aantal groeit elke dag. Door nu aan de slag te gaan met Matter krijg je een grote voorsprong op de rest, aangezien dit unificerende protocol alle platforms omvat en helpt de smart home-industrie te verenigen.
Opmerkingen Redactie: Dit artikel (230224-03) verschijnt in Elektor juli/augustus 2023.
Vragen of opmerkingen?
Hebt u technische vragen of opmerkingen naar aanleiding van dit artikel? Stuur een e-mail naar het SparkFun Support-team via support@sparkfun.com of naar de redactie van Elektor via redactie@elektor.com.
Over de auteur
Rob Reynolds werkt sinds 2015 bij SparkFun, de afgelopen vijf jaar in de rol van Creative Technologist. Met een uitgebreide artistieke achtergrond helpt zijn ervaring hem om projecten, tutorials en video’s te maken die meestal even vermakelijk en amusant als informatief zijn. Je kunt hem op Twitter vinden op @thingsrobmade.