Snelle verbinding en verzending van IoT-gegevens naar de cloud voor externe toegang.

Door Bill Giovino

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Veel ontwikkelaars bouwen Internet of Things (IoT)-projecten die snel verbinding moeten maken met de cloud voor gegevensopslag, externe toegang en recentelijk ook gegevensanalysediensten. Het is voor ontwerpers echter absoluut niet gemakkelijk om de meest efficiënte en veilige manier te vinden om die verbinding tot stand te brengen.

In dit artikel wordt beschreven hoe het Google Cloud-evaluatiebord van Microchip Technology gebruikt kan worden als een IoT-sensoreindpunt om verbinding te maken met het Cloud IoT-platform van Google. Hierdoor wordt het bord in staat gesteld om gegevens op te slaan die vanaf elke willekeurige locatie kunnen worden afgelezen met behulp van een eenvoudige browser-gebaseerde interface.

Cloudopslag: hoe te beginnen

Voor een embedded IoT-eindpunt zijn, om met cloud-hosting te beginnen, een cloud-server met de vereiste veilige connectiviteit en de bijbehorende software nodig Het Google Cloud Platform (GCP) biedt deze. Ook moet het embedded IoT-eindpunt firmware hebben die remote besturing van het eindpunt mogelijk maakt. Microchip Technology heeft het ontwikkelingsproces vereenvoudigd door alle benodigde software bij het AC164160 AVR-IoT cloud-evaluatiebord aan te bieden.

Afbeelding van AVR-IoT cloud-evaluatiebord van Microchip

Afbeelding 1: het AVR-IoT cloud-evaluatiebord van Microchip is een compleet IoT-eindpunt dat door een ontwikkelaar kan worden gebruikt om een project snel met een Google Cloud IoT-server te verbinden. (Bron afbeelding: Microchip Technology)

Niet alleen is AVR-IoT-bord is geschikt voor een IoT-eindpunt, door van dichtbij te zien hoe het bord werkt, krijgt men ook meer inzicht in hoe IoT-eindpunten en cloud computing werken.

Werking van het AVR-IoT-bord

Het bord is geconfigureerd om via Wi-Fi verbinding te maken met een Google Cloud-server. Nadat een verbinding met de server tot stand is gebracht, kunnen gegevens worden opgeslagen en in real-time weergegeven.

De componenten van het bord zijn gekozen met het oog op een geoptimaliseerd, zuinig energieverbruik, waardoor het bijzonder geschikt is voor een op batterijen werkend IoT-eindpunt. De microcontroller is een ATMEGA4808-MFR 8-bits AVR®-processor van Microchip die op 20 megahertz (MHz) werkt en 8,5 milliampère (mA) trekt. In de Standbymodus, waarin alleen de real-time klok (RTC) werkt, trekt hij 690 nanoampère (nA).

De microcontroller bestuurt het bord en de interfaces naar alle sensors en leds. De core wordt ondersteund door 48 Kbytes flash, 6 Kbytes SRAM en 256 bytes EEPROM. Het EEPROM wordt gebruikt om de Wi-Fi connectiviteitsgegevens op te slaan. Een twee-cyclus hardware multiplier spaart stroom door de CPU-cycli te beperken.

De ATMEGA4808 beschikt over een volledige set van randapparatuur, waaronder 16-bits timers, drie USART's en SPI-interface en een analoge vergelijker, waardoor hij bijzonder geschikt is voor IoT sensoreindpunttoepassingen met laag energieverbruik.

Voor Wi-Fi connectiviteit maakt de ATMEGA4808 via de seriële SPI-poort verbinding met een ATWINC1510-MR210UB1961 2,4 gigahertz (GHz) 802,11 b/g/n IoT Wi-Fi module van Microchip Technology (Afbeelding 2). Deze is volledig autonoom en ondersteunt WEP, WPA en WPA2 beveiliging. Hij is uitgerust met een ingebouwde antenne om ontwikkelaars, die wellicht geen experts zijn op het gebied van RF antenne lay-out, een handje te helpen. Als er meer bereik nodig is, wordt ook een externe antenne ondersteund. Versleutelde verbindingen worden ondersteund met TLS.

Afbeelding van WINC1510 Wi-Fi module van Microchip Technology

Afbeelding 2: de WINC1510 Wi-Fi module van Microchip Technology heeft een voetafdruk van 21,7 millimeter (mm) x 14,7 mm en ondersteunt 2,4 GHz 802,11 b/g/n draadloze toegangspunten. Hij maakt via een seriële SPI-poort verbinding met een host-microcontroller. (Bron afbeelding: Microchip Technology)

De WINC1510 werkt op een voeding van 2,7 volt tot 3,6 volt en trekt 290 mA wanneer hij in bedrijf is. Een zogeheten Doze Mode schakelt het apparaat in een zuinige modus, terwijl alle instellingen worden opgeslagen. In deze modus trekt de module 380 microampère (µA), wat nuttig is voor toepassingen met zeer laag energieverbruik die de radio in- en uitschakelen, bijvoorbeeld bakenbewaking. De WINC1510 is in staat om in 150 milliseconden (ms) verbinding te maken met een Wi-Fi toegangspunt. De complete interface naar een host-microcontroller gebruikt acht pennen: een vierdraads SPI slave-interface en vier GPIO's voor stuursignalen. De module heeft alle certificeringen voor gebruik in Noord- en Zuid-Amerika, Europa en Azië. Dit betekent een aanzienlijke vereenvoudiging van de procedure voor het verkrijgen van FCC-goedkeuring voor het uiteindelijke ontwerp.

Het AVR-IoT-bord heeft een voetafdruk van 63,5 mm x 25,4 mm en maakt via een USB-kabel verbinding met een pc voor zowel voeding als data. Windows, Linux en MacOS zijn ondersteund. Wanneer het bord stroom krijgt, zullen de vier leds (blauw, groen, geel en rood) een voor een, van links naar rechts, tweemaal knipperen om aan te geven dat het bord correct functioneert.

Het bord verschijnt als een flash-geheugenstick op de pc en er worden vijf bestanden getoond. Om een internetverbinding tot stand te brengen, klikt de ontwikkelaar op het bestand met de toepasselijke naam CLICK-ME.HTM. Hierdoor wordt in de standaardbrowser een pagina weergegeven waar de ontwikkelaar verbinding met de lokale wi-fi kan maken (afbeelding 3).

Afbeelding van Microchip AVR-IoT-bord

Afbeelding 3: het AVR-IoT-bord van Microchip wordt met een lokaal Wi-Fi netwerk verbonden door de gegevens van het Wi-Fi toegangspunt linksonder in dit CLICK-ME.HTM bestand in te voeren. (Bron afbeelding: Microchip Technology)

Na de naam van het netwerk te hebben ingevoerd, het netwerktype te hebben geselecteerd en het wachtwoord te hebben ingevoerd, licht de blauwe led op ten teken dat het bord met het lokale Wi-Fi netwerk is verbonden. Snel daarna zal de groene led oplichten ten teken dat het bord met de Google Cloud-server is verbonden. Elke keer dat het bord gegevens naar de Google Cloud-server stuurt, zal de gele led knipperen. Alle informatie die tussen de AVR-IoT en de Google Cloud-server wordt verzonden, is versleuteld.

IoT, versleutelde verbindingen en gegevensversleuteling

Internetverkeer tussen punten verloopt via een beveiligde verbinding die doorgaans wordt versleuteld met behulp van Transport Layer Security (TLS). Het blijft voor een hacker echter mogelijk om een zwak punt in de versleutelde verbinding te vinden en er met de gegevens vandoor te gaan door een "man-in-the-middle-aanval" te lanceren. Om te voorkomen dat een ontwerp aan een dergelijke aanval ten prooi valt, moeten ook de gegevens worden versleuteld, meestal met behulp van AES- of SHA-versleutelingsstandaarden.

Om de naar de Google Cloud gezonden gegevens te versleutelen, is de AVR-IoT voorzien van een ATECC608A-MAHCZ-T Security CryptoAuthentication™ chip van Microchip Technology, die een interface vormt naar de AVR microcontroller via een I2C-interface. De ATECC608A is een cryptografische geheugenchip die een aantal versleutelingsstandaarden ondersteunt, waaronder AES-128 en SHA-256. Hij wordt gebruikt voor het opslaan van de openbare sleutels en privésleutels die voor de communicatie met de Google Cloud server worden gebruikt.

Elke ATECC608A in iedere AVR-IoT is bij aflevering door Microchip Technology voorgeprogrammeerd met zijn eigen openbare sleutels en privésleutels. De privésleutel ATECC608A bevindt zich in beveiligde opslag en kan niet worden achterhaald, zelfs niet als de I2C-interface wordt bewaakt en geregistreerd met een logische analysator. De openbare sleutel wordt onthuld in de URL die aan de Google Cloud wordt gezonden, en staat ook in een bestand, PUBKEY.TXT, dat door de USB-interface van de met de AVR-IoT verbonden host-pc kan worden gelezen. De gedetailleerde werking van de ATECC608A is alleen verkrijgbaar bij Microchip Technology onder een geheimhoudingsverklaring.

De firmware in de ATMEGA4808 microcontroller in de AVR-IoT is bij aflevering echter geconfigureerd voor een efficiënt gebruik van de ATECC608A in een beveiligd Google Cloud-project. Dit maakt de details van de cryptografische functies van de ATECC608A grotendeels transparant voor de ontwikkelaar, hetgeen de ontwikkeling sterk vereenvoudigt en versnelt.

Voor hoogbeveiligde IoT-eindpunten beschermt de ATECC608A zowel de toepassing als zichzelf. Hij is uitermate goed bestand tegen fysieke hacking en kan vele side-channel aanvallen detecteren en hiertegen beschermen, bijvoorbeeld toepassing van extreme kou om de geheugeninhoud te behouden of een ongewoon snelle of langzame I2C-klok. Het kan ook pogingen tot demontage van het apparaat (om de interne architectuur te onderzoeken) detecteren. Ook de inhoud van het interne geheugen van het apparaat is versleuteld. De ATECC608A kan ook vertrouwelijke beveiligingsmechanismen bevatten die alleen bekend zijn bij ingenieurs van Microchip Technology.

Met de Google Cloud IoT-server werken

Nadat de AVR-IoT verbinding met de Google Cloud IoT-server heeft gemaakt, begint hij met de uitwisseling van gegevens. De AVR-IoT bevat zowel een licht- als een temperatuursensor. Gegevens van deze sensors worden aan de Google Cloud-server gezonden en kunnen in real-time worden weergegeven (Afbeelding 4). Om de gegevens vanaf een willekeurige browser weer te geven, moet de ontwikkelaar de volgende URL ingeven:

avr-iot.com/device/{publickey}

Waar {publickey} de openbare sleutel is, die aan het AVR-IoT-bord is toegewezen.

De gebruikte Google Cloud-server is een demo sandbox-account, dus van de AVR-IoT naar Google Cloud gezonden gegevens worden niet permanent opgeslagen en worden gewist op het moment dat de verbinding met de server wordt verbroken.

Afbeelding van Google Cloud IoT server

Afbeelding 4: de webpagina die wordt weergegeven via de Google Cloud IoT-server, kan de temperatuur- en lichtsensorgegevens weergeven die zijn verzameld met de AVR-IoT. (Bron afbeelding: Microchip Technology)

Voor een meer complete cloud-server bevat de AVR-IoT-kit instructies voor het upgraden naar een privé Google Cloud-account. Met een privé Google Cloud-account kan een ontwikkelaar gegevens permanent op de Google Cloud opslaan voor later gebruik. Een ontwikkelaar kan ook een webinterface op de privé Google Cloud bouwen die kan communiceren met de AVR-IoT, om de webinterface in staat te stellen om online toepassingen te hosten die commando's naar aangepaste firmware op het bord kunnen zenden. De ontwikkelaar kan bijvoorbeeld vanaf iedere willekeurige locatie ter wereld een van de GPIO-pennen op de ATmega4808, die op elektronische apparatuur kan worden aangesloten, aansturen.

Conclusie

Hoewel er veel boeken en websites zijn die uitleg geven over cloudopslag en toegang tot en gebruik van clouds, is het vaak het gemakkelijkst om er aan de hand van een praktisch voorbeeld meer over te leren. Het AVR-IoT-bord van Microchip maakt het maken van verbinding met een cloud gemakkelijk en demonstreert tegelijkertijd de basisprincipes van cloudopslag, versleuteling en besturing van IoT-eindpunten.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Bill Giovino

Bill Giovino

Bill Giovino is een ingenieur in elektronica met een BSEE van de Syracuse University. Hij is een van de weinigen die met succes de overstap maakten van ontwerpingenieur naar ingenieur veldtoepassingen en vervolgens naar technologiemarketing.

Meer dan 25 jaar lang heeft Bill met veel toewijding nieuwe technologieën gepromoot ten overstaan van zowel technisch als niet-technisch publiek voor vele bedrijven, waaronder STMicroelectronics, Intel en Maxim Integrated. Toen hij bij STMicroelectronics actief was, hielp Bill bij de doorbraak van de eerste successen van het bedrijf in de sector van microcontrollers. Bij Infineon stond Bill in voor de eerste toepassingen van het microcontrollerontwerp van het bedrijf in de Amerikaanse autosector. Als marketing consultant voor zijn bedrijf CPU Technologies, hielp Bill vele bedrijven om laag presterende producten op te krikken en er een succesverhaal van te maken.

Bill was een van de eersten die het Internet of Things toepaste. Hij plaatste de eerste volledige TCP/IP-stack op een microcontroller. Bill is trouw aan het motto “Verkoop via opvoeding” en wijst op het toenemende belang van duidelijke, goed geschreven mededelingen om producten online te promoten. Hij is moderator van de populaire LinkedIn Semiconductor Sales & Marketing Group en spreekt vlot B2E.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey