AWS IoT

Dieses Beispiel zeigt zwei verschiedene Szenarios mit AWS IoT. Eine GET-Anfrage an einen IoT Shadow und eine POST-Anfrage an den AWS IoT Core-Message-Broker werden dargestellt.

Die GET-Anfrage ähnelt dem Beispiel „OpenWeatherMap“, es wurde lediglich der Uri in den Uri des Shadows des IoT Thing im Hinblick auf die AWS REST-API geändert.

Der Benutzer muss ein eigenes AWS-Konto haben, damit ein IoT Core-Endpunkt vorhanden ist und die Möglichkeit besteht, Zertifikate für die Kommunikation mit TwinCAT zu erstellen.

PROGRAM MAIN
VAR
    // trigger command execution for AWS IoT Core samples
    bGetAwsIotShadow, bPostAwsIot  : BOOL;

    fbHttpClientAwsIot             : FB_IotHttpClient :=(sHostName:='youradress.amazonaws.com',
                                     bKeepAlive:=FALSE, tConnectionTimeout:=T#10S);

    fbHttpGetAwsIotShadow          : FB_TestHTTP_Get_awsIotShadow;
    fbHttpPostAwsIot               : FB_TestHTTP_Post_awsIot;
END_VAR
//init client parameters at startup
IF NOT fbHttpClientAwsIot.bConfigured THEN
    fbHttpClientAwsIot.stTLS.sCA:= 'C:\TwinCAT\3.1\Config\Certificates\AWS\AmazonRootCA1.pem';
    fbHttpClientAwsIot.stTLS.sCert:= 'C:\TwinCAT\3.1\Config\Certificates\AWS\certificate.pem.crt';
    fbHttpClientAwsIot.stTLS.sKeyFile:= 'C:\TwinCAT\3.1\Config\Certificates\AWS\private.pem.key';
    fbHttpClientAwsIot.nHostPort:= 8443;
END_IF

IF fbHttpClientAwsIot.bConfigured THEN
    fbHttpGetAwsIotShadow(bSend:=bGetAwsIotShadow, fbClient:=fbHttpClientAwsIot);
    fbHttpPostAwsIot(bSend:=bPostAwsIot, fbClient:=fbHttpClientAwsIot);
END_IF

fbHttpClientAwsIot.Execute();