Implementér hurtigt et sikkert cloud-forbundet IoT-enhedsnetværk komplet med Edge Computing-funktioner
Bidraget af DigiKeys nordamerikanske redaktører
2020-05-06
Selv om der er stor efterspørgsel, kan implementeringen af et IoT-netværk (Internet of Things) med edge computing-ressourcer være en skræmmende opgave med mange forskellige krav til slutpunktsenheder, edge computing-systemer og sikker cloud-forbindelse. Selv om de enkelte elementer af den nødvendige løsning er let tilgængelige, kræver det at integrere dem alle i en problemfri, effektiv IoT-applikation, at man fordyber sig i de komplekse opgaver med at implementere ikke blot endpoint- og edge-hardwareplatforme, men også de serviceinterfaces, kommunikationsmetoder og sikkerhedsprotokoller, som IoT-skyudbyderne kræver.
På det seneste er der kommet en lind strøm af mere integrerede IoT-løsninger, som hjælper udviklere med at komme hurtigere på markedet. For eksempel giver et sæt cloud-klare slutpunkts- og edge computing-produkter fra Microchip Technology en standardløsning, der er designet til nemt at kunne tilsluttes til Amazon Web Services (AWS) IoT-tjenester og AWS IoT Greengrass edge computing-tjenesten.
I denne artikel vil vi kort diskutere, hvorfor intelligens bør udrulles på kanten. Derefter vil Microchips AWS-kvalificerede kort, der fungerer som cloud-klare sensor-slutpunktssystemer, blive præsenteret. Artiklen vil derefter vise, hvordan disse slutpunkter kan kombineres med en edge computing-platform baseret på et trådløst system-on-modul (SOM), der er forudindlæst med AWS-oplysninger og servicesoftware for at give næsten gennemsigtig forbindelse til AWS-skyen.
Kombination af endpoint- og edge-system
Den hurtige tilgængelighed af billige systemer med lav effekt har forenklet implementeringen af såkaldte slutpunktssystemer, som er de sensor- og aktuatorenheder, der udgør de fjerneste dele af IoT-applikationsperiferien. Selv om disse slutpunktssystemer forbinder direkte med skyen i mange IoT-applikationer, kræver mere komplekse applikationer ofte anvendelse af såkaldte kant-systemer, som funktionelt befinder sig mellem slutpunkterne og IoT-skyen.
Ved at levere lokale behandlingskapaciteter i umiddelbar nærhed af et sæt IoT-slutpunkter kan edge-systemer reducere latenstiden i tætte feedback-sløjfer eller opfylde timingskrav til industriel processtyring. Edge-systemer leverer lokale ressourcer, der er nødvendige for at behandle mere komplekse algoritmer som f.eks. maskinlæringsinferens eller sofistikerede forbehandlingsrutiner, der bruges til at rense data og reducere mængden og hastigheden af data, der sendes til skyen. Denne lokale behandlingskapacitet er afgørende for at understøtte avancerede sikkerhedspolitikker og krav til beskyttelse af privatlivets fred, f.eks. minimering af data inden overførsel over det offentlige internet.
Forbedring af IoT-applikationer med AWS IoT Greengrass
Amazon Web Services (AWS) formaliserer kantbehandlingskapaciteterne med sin AWS IoT Greengrass-tjeneste, som leverer en del af sine cloud-tjenester, der kører som Greengrass Core på enheden i kanten. Greengrass er designet til at arbejde tæt sammen med cloud-tjenester, der kører på skalerbare AWS cloud-ressourcer, og giver en forholdsvis enkel vej til at implementere og opdatere maskinlæringsinferensmodeller, der er bygget med værktøjer som f.eks. den fuldt administrerede AWS SageMaker platform for maskinlæring (figur 1).
Figur 1: AWS IoT Greengrass forenkler lokal behandling og udrulning af avanceret funktionalitet, herunder maskinlæringsmodeller, der er trænet i AWS SageMaker-miljøet for maskinlæring. (Billedkilde: Amazon Web Services)
Lokal behandling er kun en af fordelene ved en kanttjeneste som AWS Greengrass. Ved at levere en slags grænsefladebuffer mellem slutpunktssystemer og cloudressourcer spiller edge-systemer også en central rolle i forbindelse med opfyldelsen af IoT-applikationernes krav om reduceret latenstid, forbedret fortrolighed og sikkerhed samt øget tilgængelighed. AWS Greengrass danner grundlaget for levering af disse funktioner.
I AWS Greengrass-modellen interagerer slutpunktsenheder inden for en defineret Greengrass-gruppe med hinanden ved hjælp af MQ Telemetry Transport (MQTT)-meddelelser, der forvaltes af en Greengrass Core-enhed, efter en engangsopdagelsesfase med cloud-tjenester (figur 2).
Figur 2: Inden for en AWS IoT Greengrass-gruppe kan slutpunktsenheder kommunikere med hinanden og skyen ved hjælp af MQTT-meddelelser, der forvaltes af en Greengrass Core-enhed. (Billedkilde: Amazon Web Services)
Når de er indsat i en Greengrass-gruppe, kan enhederne samarbejde for at undgå lange forsinkelser frem og tilbage, som man finder i IoT-implementeringer med IoT-enheder, der kommunikerer direkte med skyen. I stedet kan enhederne sende signaler direkte til hinanden via MQTT-kanaler, der formidles af Greengrass Core-enhedens lokale behandlingskapacitet.
Hvis forbindelsen til skyen går tabt, kan enhederne fortsætte med at fungere under ledelse af Greengrass-kernenheden. Hvis en enhed går offline, kan andre enheder og den cloud-baserede applikation omvendt fortsætte med at fungere ved hjælp af data, der vedligeholdes af en virtuel enhedsskygge, som er knyttet til hver fysisk enhed (figur 3).
Figur 3: Edge computing-tjenestearkitekturer som AWS IoT Greengrass hjælper med at opretholde tilgængeligheden ved at levere skyggeenheder, der kan opretholde de seneste data om enhedens tilstand, så IoT-applikationer fortsat kan fungere, selv om den tilknyttede fysiske enhed går offline. (Billedkilde: Amazon Web Services)
Selv om det er ligetil i princippet, kan det være en udfordring at gennemføre denne koordinering blandt en række IoT-enheder. For en typisk IoT-udvikler er det en skræmmende kombination af hardware-, software- og systemadministrationsudfordringer at få fuld udnyttelse af denne edge computing-kapacitet. På hardwareniveau skal der opbygges og implementeres et netværk af egnede slutpunkts- og edge computing-enheder. Der skal skrives software til at implementere sikker kommunikation inden for IoT-slutpunkternes og edge-enhedernes lokale netværk samt med cloud-tjenester. Endelig skal disse enheder konfigureres korrekt, forsynes med passende private nøgler og certificeringer og autentificeres over for hinanden og IoT-sky-tjenesten.
For at forenkle processen tilbyder et sæt Microchip-kort AWS-kvalificerede drop-in-løsninger til både endpoint- og edge-enheder, der kan oprette en enkel og sikker forbindelse til AWS Greengrass Core lokalt og til AWS IoT Core i skyen.
Cloud-ready slutpunktssystemer
Microchips PIC-IoT WA- og AVR-IoT WA-kort, der er designet til hurtig implementering som slutpunktssystemer, er designet til at give out-of-the-box-tilslutning med AWS IoT Core. De to kort har den samme overordnede funktionalitet, men er designet til at levere velkendte platforme til udviklere, der er vant til at arbejde med Microchip PIC-mikrocontrollerfamilien, og til dem, der arbejder med Microchip AVR ATmega-mikrocontrollerfamilien. AVR-IoT WA-kortet, der er baseret på Microchip ATMEGA4808 8-bit mikrocontroller, bruger det samme sæt komponenter som PIC-IoT WA-kortet (figur 4), der er baseret på Microchip PIC24FJ128GA705 16-bit mikrocontroller.
Figur 4: Microchip AVR-IoT WA- og PIC-IoT WA-kortene giver cloud-klare slutpunktssystemer, der omfatter det samme supplement af støtteenheder bygget omkring forskellige Microchip-mikrocontrollere, herunder en 16-bit PIC-mikrocontroller til det viste PIC-IoT WA-kort. (Billedkilde: Microchip Technology)
Til tilslutningsmulighederne indeholder kortene hver et Microchip ATWINC1510-MR210PB-certificeret Wi-Fi-modul, der er designet specielt til IoT-enheder med lav effekt. Modulet indeholder 8 megabit (Mbits) flash og en komplet transmissions- og modtagerradiofrekvens (RF)-signalkæde, herunder effektforstærker (PA), lavstøjsforstærker (LNA), RF-switch, strømstyring og trykt antenne. Sammen med integreret ROM (ROM) til hurtig opstart af firmware understøtter den indbyggede netværksstack standard internetprotokoller ved hjælp af hardwareacceleratorer til at fremskynde Transport Layer Security (TLS) og Wi-Fi sikkerhedsprotokoller.
Ud over en Microchip MCP9808 digital præcisionstemperaturføler og en Vishay TEMT6000X01 fotodiodeføler indeholder hvert board et mikroBUS-stik. Ved hjælp af dette stik kan udviklere nemt udvide hardwarebasen ved at vælge add-on boards fra det brede udvalg af tilgængelige Mikroe Click boards. Til strøm- og batteristyring indeholder kortene hver især en Microchip MCP73871T-2CCI/ML-enhed, som leverer både systemstrøm og opladning af lithium-ion-batterier fra en USB-strømkilde eller en vægadapter.
Af sikkerhedshensyn indeholder hvert kort et Microchip ATECC608A-sikkerhedselement. For disse kort leveres denne enhed med forudindrettede nøgler og certifikater for at give out-of-the-box-understøttelse af AWS IoT-godkendelses- og sikkerhedsmekanismer.
Ved hjælp af deres samling af indbyggede hardwarekomponenter og forudindlæst firmware er kortene designet til at oprette forbindelse til AWS IoT Core med minimal indsats. Udviklerne skal blot tænde for kortet ved hjælp af et mikro-USB-kabel, der er tilsluttet deres pc. Når kortet har oprettet forbindelse til et lokalt Wi-Fi-adgangspunkt ved hjælp af sine egne eller udviklerens legitimationsoplysninger, etablerer det automatisk en MQTT-forbindelse med AWS IoT Core ved hjælp af Wi-Fi-modulets indbyggede TCP/IP-stack og forud tilvejebragte sikkerhedsoplysninger. Når MQTT-forbindelsen er oprettet, begynder kortet straks at sende data fra temperatur- og lyssensorerne. Udviklere kan se resultaterne på en enhedsspecifik side på en Microchip sandbox-konto.
Microchip leverer denne baseline-applikation i separate repositories for PIC-IoT WA-kode og AVR-IoT WA-kode. Ved at undersøge denne kode kan udviklere få en hurtig forståelse af de grundlæggende designmønstre, f.eks. brugen af MQTT-forbindelser ved kommunikation med skyen for at sende sensordata og modtage kommandoer eller data (Listing 1).
Kopi
// This will get called every 1 second only while we have a valid Cloud connection
static void sendToCloud(void)
{
    static char json[PAYLOAD_SIZE];
    static char publishMqttTopic[PUBLISH_TOPIC_SIZE];
    ledTickState_t ledState;
    int rawTemperature = 0;
    int light = 0;
    int len = 0;    
    memset((void*)publishMqttTopic, 0, sizeof(publishMqttTopic));
    sprintf(publishMqttTopic, "%s/sensors", cid);
    // This part runs every CFG_SEND_INTERVAL seconds
    if (shared_networking_params.haveAPConnection)
    {
        rawTemperature = SENSORS_getTempValue();
        light = SENSORS_getLightValue();
        len = sprintf(json,"{\"Light\":%d,\"Temp\":%d.%02d}", light,rawTemperature/100,abs(rawTemperature)%100);
    }
    if (len >0) 
    {
        CLOUD_publishData((uint8_t*)publishMqttTopic ,(uint8_t*)json, len);        
        if (holdCount)
        {
            holdCount--;
        }
        else
        {
            ledState.Full2Sec = LED_BLIP;
            LED_modeYellow(ledState);
        }
        
    }
}
 
//This handles messages published from the MQTT server when subscribed
static void receivedFromCloud(uint8_t *topic, uint8_t *payload)
{
    char *toggleToken = "\"toggle\":";
    char *subString;
    ledTickState_t ledState;
   sprintf(mqttSubscribeTopic, "$aws/things/%s/shadow/update/delta", cid);
    if (strncmp((void*) mqttSubscribeTopic, (void*) topic, strlen(mqttSubscribeTopic)) == 0) 
    {
        if ((subString = strstr((char*)payload, toggleToken)))
        {
            if (subString[strlen(toggleToken)] == '1')
            {   
                setToggleState(TOGGLE_ON);
                ledState.Full2Sec = LED_ON_STATIC;
                LED_modeYellow(ledState);
            }
            else
            {
                setToggleState(TOGGLE_OFF);
                ledState.Full2Sec = LED_OFF_STATIC;
                LED_modeYellow(ledState);
            }
            holdCount = 2;
        }
    }
    debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "topic: %s", topic);
    debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "payload: %s", payload);
    updateDeviceShadow();
}
Listing 1: Udviklere kan undersøge kodeeksempler i Microchips softwarerepositorier for at få en bedre forståelse af vigtige designmønstre som f.eks. udveksling af MQTT-meddelelser med cloud-tjenester, som vist i disse to funktioner. (Kilde til kode: Microchip Technology)
Udviklere kan udvide denne kode ved hjælp af en række forskellige udviklingsressourcer. Microchip understøtter udvikling af brugerdefineret software med sit integrerede udviklingsmiljø (IDE) MPLAB X, det cloud-baserede MPLAB Xpress IDE og gratis MPLAB XC-kompilere. Til debugging indeholder hvert kort Microchip PICkit On-Board (PKOB) nano debugger, som eliminerer behovet for en ekstra debugging hardware-interface. Udviklerne får adgang til PKOB-debuggeren via USB-forbindelsen til deres pc, mens de arbejder i MPLAB X IDE.
AWS Greengrass-ready-løsning
Microchip gør det næsten lige så nemt at udvide deres IoT-netværk med edge computing-ressourcer baseret på AWS Greengrass som at installere cloud-tilsluttede slutpunkter.
Til edge computing-platformen leverer Microchip sit ATSAMA5D27-WLSOM1 trådløse (WL) system-on-modul (SoM) med AWS-kvalificeret AWS Greengrass-understøttelse. Som med Microchips endpointkort giver ATSAMA5D27-WLSOM1 en omfattende hardwareplatform, der er designet til nemt at oprette forbindelse til AWS IoT Core-tjenester (Figur 5).
Figur 5: Microchip ATSAMA5D27-WLSOM1 integrerer alle de enheder, der er nødvendige for at levere et AWS IoT Greengrass-kvalificeret edge computing-system. (Billedkilde: Microchip Technology)
Som værtsprocessor bruger WLSOM1 den strømbesparende SAMA5D27 system-in-package (SiP) ATSAMA5D27C-LD2G-CU, som integrerer Microchips højtydende Arm Cortex-A5-processor-baserede SAMA5D27, der indeholder to gigabit (Gbits) af LPDDR2-SDRAM (low-power double data rate 2 synchronous dynamic random-access memory).
Som med sine slutpunktskort indeholder Microchips WLSOM1 et certificeret trådløst modul. I dette tilfælde bruger Microchip sin ATWILC3000, som understøtter både Wi-Fi- og Bluetooth-forbindelse med sameksistens ved hjælp af en kombination af integrerede hardwareacceleratorer, integrerede processorer og stack-firmware. WLSOM1 tilbyder også kabelforbindelse, der styres af en Microchip KSZ8081RNAIA Ethernet-transceiver. Microchip inkluderer sin 64 Mbit SST26VF064BEUI-flash, som leveres på forhånd forsynet med en IEEE-allokeret 6-byte udvidet unik identifikator (EUI-48) og 8-byte EUI-64. Dette sikrer en globalt unik MAC-adresse for at sikre pålidelig forbindelse til det offentlige internet. (Se"Flash-hukommelse med indbygget MAC-adresse kan virkelig hjælpe under udviklingen".)
Endelig indeholder WLSOM1 et ATECC608A-sikkerhedselement til hardware-baseret sikkerhed. Takket være det høje integrationsniveau kræver WLSOM1 relativt få komponenter ud over udkoblingskondensatorer og pullup-modstande for at implementere hardware-interfacet i et printkortdesign.
Det kræver kun en meget lille indsats at få et WLSOM1-baseret board op på AWS IoT Greengrass. Faktisk består det meste af arbejdet i at opsætte AWS-tjenester til brug. Microchip giver udviklere trinvise vejledninger til dette, herunder hvordan man opretter en AWS-konto, og hvordan man definerer en Greengrass-gruppe af Greengrass-kernenheder og -slutpunkter. Når målsystemet er bygget på et Linux-udviklingssystem, uploader udviklerne målbilledet, Greengrass Core-softwaren og certifikater til WLSOM1, typisk ved hjælp af et SDCard-flashdrev (Secure Digital Card).
Autentificering og sikker kommunikation fungerer gennemsigtigt for udvikleren takket være den hardwarebaserede sikkerhed, der leveres af det sikre ATECC608A-element. For Greengrass edge-systemer spiller ATECC608A imidlertid en større rolle i beskyttelsen af de private nøgler, der ligger til grund for den sikre kommunikation mellem Greengrass Core, der kører på edge-systemet, og AWS-skyen.
Enheder i en Greengrass-gruppe er afhængige af digitale certifikater til at autentificere hinanden og deres meddelelser inden for gruppen og med cloud-baserede AWS-tjenester (Figur 6). Hvis de underliggende sikkerhedsmekanismer og protokoller kompromitteres på grund af afslørede private nøgler eller falske certifikater, kan gruppen og endda cloud-baserede ressourcer også blive kompromitteret.
Figur 6: For at sikre sikre kommunikationstransaktioner er AWS cloud-tjenester og AWS IoT Greengrass-grupper afhængige af flere certifikater, der understøttes af private nøgler, som er gemt i slutpunkter og Greengrass Core-enheden. (Billedkilde: Amazon Web Service
AWS beskytter sig selv og brugernes applikationer ved kun at tillade interaktioner med betroede enheder, der indeholder et sikkert hardwareelement, der kan beskytte de private nøgler, der anvendes til sikker kommunikation mellem Greengrass Core-enheden og AWS IoT Core og mellem Greengrass Core-enheden og slutpunkterne (figur 7).
Figur 7: En Greengrass Core-enhed er afhængig af sikker lagring af private nøgler ved hjælp af sikre elementer som f.eks. ATECC608A-enheden, der er integreret i Microchip ATSAMA5D27-WLSOM1 trådløs SOM. (Billedkilde: Amazon Web Services)
AWS har identificeret WLSOM1 og ATECC608A-sikkerhedselementet som Greengrass-kvalificerede løsninger, der kan opfylde AWS' sikkerhedskrav. ATECC608A understøtter faktisk AWS' forbedrede sikkerhedskapacitet, der leveres i IoT Greengrass Hardware Security Integration (HSI). HSI anvender Public Key Cryptography Standards #11, som definerer en API (Application Programming Interface) til kommunikation mellem en processor og et hardware-sikkerhedsmodul (HSM), der bruges til at gemme private nøgler. I WLSOM1 er ATECC608A udpeget som en AWS Greengrass-kvalificeret HSM Understøttelse af denne standardsikkerhedsgrænseflade er særlig vigtig for Linux-baserede systemer, der anvendes i Edge-systemer generelt og i Greengrass Core-enheder i særdeleshed
Ved hjælp af dette sikre softwarefundament kan udviklere sikkert udvide deres Greengrass Core edge-systemer med lokale behandlingsfunktioner ved hjælp af AWS Lambda-funktioner, som giver en relativt enkel begivenhedsdrevet programmeringsmodel. Mens brugerdefineret kode, der kører på Greengrass Core-enheden, kan understøtte specifikke applikationskrav, giver AWS Lambda-funktioner disse enheder mulighed for at interagere direkte med AWS cloud-tjenester. Udviklere kan f.eks. nemt implementere Lambda-funktioner, der forbinder slutpunkter med AWS-tjenester, f.eks. Amazons NoSQL-databaseadministrationssystem DynamoDB til datalagring eller andre tjenester i det omfattende sæt af AWS-tilbud (figur 8).
Figur 8: AWS IoT Greengrass gør det muligt for edge-systemer at levere lokal behandling, herunder brug af AWS Lambda-funktioner til enkel integration med AWS cloud-tjenester til datalagring, maskinlæring og andre funktioner. (Billedkilde: Amazon Web Services)
Konklusion
Udrulning af et IoT-netværk med edge computing-ressourcer kan vise sig at være en skræmmende virksomhed med flere krav til slutpunktsenheder, edge computing-systemer og sikker cloud-forbindelse. De enkelte dele af den nødvendige løsning findes, men ved at integrere dem i en koordineret IoT-applikation har udviklerne stået over for de komplekse opgaver med at implementere de serviceinterfaces, kommunikationsmetoder og sikkerhedsprotokoller, som IoT-skyudbyderne har brug for.
Som vist giver et sæt cloud-klare slutpunkts- og edge computing-produkter fra Microchip Technology en standardløsning, der er designet til nemt at kunne tilsluttes AWS IoT-tjenester og AWS IoT Greengrass edge computing-tjenesten. Udviklere kan bruge Microchips AWS-kvalificerede slutpunktskort og en trådløs system-on-module edge computing-platform til at levere næsten gennemsigtig forbindelse til AWS-skyen og fremskynde implementeringen af IoT-netværk.
Yderligere læsning
            
        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.




