IoT is a topic that really interests me, but unfortunately I rarely find the time to dive into the topic. Anyhow, fortunately I found the time to implement the following idea: An Arduino equipped with a sensor to measure the temperature, humidity and air pressure measures every hour and sends this data to an AWS DynamoDB database. This data is then displayed on demand via my echo show. An ambitious idea, but I was able to implement it. The following figure shows the flow of the communication relationships:

Preparations

First, I had to prepare the AWS environment. To do this, I first created a DynamoDB database and configured it as follows:
-
-
Then I had to make sure that my temperature display was possible via a website. Fortunately, I have already built this website here based on S3. So I only had to create another S3 bucket, a CloudFront distribution and a Route53 entry for a subdomain. Then I had to implement the display of the data. The code for this can be found here:

Finally, I had to set up AWS IoT in order to receive and process data from my Ardunino.

The hardware

First I had to put on the Ardunio. I have decided on the following hardware:

Together with a friend who fortunately owns a 3D printer, we designed the following housing and stowed the Arduino and the hardware in it. The whole thing now looks like this:

The software

The software was a big hurdle for me at first: I didn’t have a lot of experience in C / C ++. I also struggled for a long time with outdated libraries that made it difficult to establish an SSL connection to the AWS IoT. You can find the source code here:

The integration