In 2022 the number of connected IoT devices grew to 14.4 billion, according to IoT Analytics, a market research company. This is a mind-boggling number. IoT is here to stay and thrive, so I felt like it would be fun to get my hands dirty and try to hack an IoT environmental monitor at home. In this post, we’ll look at the IoT hardware.

For the project, I chose to use Particle devices. They come with great documentation and a lot of infrastructure. You can, for example flash firmware to the devices over the air, manage large fleets of IoT devices, and they seamlessly connect with web hooks, Microsoft Azure IoT Hub, and Google Cloud Pub/Sub. In a first version of the project, I made a web hook to connect to an AWS Lambda function that would then write the data to a cloud database. I’ve since also looked at the other integrations, they seem to work flawlessly and are easy to set up.

To keep things simple, I’ll describe here (in a future post) how to set up your own home server to read the data coming from our sensors, and do some simple data analysis on it.

The Sensor

For the acquisition on environmental data, I chose a BMI 680 environmental sensor breakout board. The wiring is quite simple, I am using a breadboard like so:

hardware

There was some minimal soldering involved, but nothing that requires particularly advanced soldering skills.

Making It Work

Particle microcontrollers are programmed in C++ using the Visual Studio Code plugin called Particle Workbench. Their website has great how-to guides to get a new user started. Luckily they are also mostly Arduino-compatible, such that the BME 680 Arduino Library works fine in the Particle ecosystem.

You can find my code repository here which glues all of this together. In the end, I get in my debug console the environmental data from the BME 680:

{"resistance": 612379,"humidity": 36.89,"pressure": 1003.96,"temperature": 25.90}

I hope you enjoyed today’s data adventure and stay tuned for more. We will soon dive deeper into the software side of the project.