4.2 Amazon Web Service Software Overview

An account is needed to use Amazon Web Services. It can be created at no charge and allows the use of the gateway software and AWS for up to one year for multiple devices. The cloud account and gateway (which is called Greengrass) configurations are not the focus of this document and will not be explained in detail. AWS already provides a well-documented and written developer guide which can be found at Getting Started with AWS IoT Greengrass.

The Greengrass developer guide is divided into chapters, based on the focus of the information presented. These chapters are called modules.

Module 1 explains how to download and load the operating system for Raspberry Pi and how to establish a connection between the board and the computer. This module also gives a step-by-step explanation of what configurations are needed for the board to safely run the Greengrass.

Module 2 describes how to download and install the gateway software on Raspberry Pi. It comes with public and private keys and a certificate, which are mandatory for cloud connection. This module provides details on how to start the gateway and how to check the process which handles the gateway.

Therefore, these two modules are mandatory for configuring the Raspberry Pi board and getting started with the Greengrass core.

Module 3 is focused on Lambda and data exchange between the cloud and the RPi. The module explains how to add and deploy Lambda on Raspberry Pi. AWS Lambda is a function that runs code without provisioning or managing servers. The Lambda can access the cloud by sending Message Queuing Telemetry Transport (MQTT) messages on specific topics. The sending procedure is called publishing. The client can subscribe to a specific topic and receive the messages.

Module 3 is also mandatory since the purpose of the application presented in this document is to send BLE data to the cloud, and this will be implemented by using Lambda. The other modules are not required nor used throughout this application note.

Note: Greengrass core (GGC) v1.10 is used in this project.