When we started running the Azure IoT on Serverless Hackathon, we knew we were about to see a lot of cool solutions coming out of it. What we couldn’t anticipate was the high level of creativity shown on them, not just on a technological level, but especially on the problems these solutions were designed to solve. When thinking about Internet of Things (IoT) solutions, we can think by default about reading information from sensors and some traditional data processing. But developers from all over the world went above and beyond and presented very helpful solutions that ranged from improving safety and security, to helping with global problems such as pollution or recycling.
Each of the more than 30 projects were creative solutions aiming to solve day-to-day problems. While all of them are great examples of how we can improve our lives through technology, we wanted to highlight the three winners and the popular choice awardee.
Please join us on congratulating the winners for building innovative and powerful projects that leverage the power of Microsoft Azure to help make the world a better place. Congratulations on a great job!
First place – Clean Water AI
Clean Water AI is an IoT device that classifies and detects dangerous bacteria and harmful particles in the water, aiming to help solve the problem of people affected by contaminated water. Starting with a data science virtual machine to train the Neural Network model powering the solution, the Clean Water AI team did the model training in Azure and then deployed it on the edge. They had all the inferencing done directly on the device itself to improve latency and real-time results.
After processing, the data resulted in an input sample, which was in the form of a picture taken by the device itself with the Neural Network model. Then, it is pushed to Azure IoT Hub and used to ingest this data into the cloud solution. Azure Functions are triggered every time a new data point is sent through IoT Hub, which then picks up this data, processes it, and pushes it out again into Azure SQL for storage. Next, Azure Maps picks up this stored data and displays it on the proper locations to warn nearby users about the water quality.
For more information, refer to the step-by-step building process.
Second place – bSmart Diabetes Management System
The bSmart Diabetes Management System was inspired by the author’s daughter after she was diagnosed with Type 1 Diabetes. This clever solution integrates data from both an insulin pump and a continuous glucose monitor (CGM) to predict the blood glucose level expected within the next two hours. Depending on the value of these predictions, the system will also send automated messages to the caregiver suggesting the proper treatment in real time.
How does it work?
Data from both the insulin pump and the CGM are stored into MongoDB through an Android application. With a custom Python script pushing the data from the IoT device to the cloud solution using Azure IoT Hub, every read is triggering the execution of Azure Functions that pick up the data and store it on Azure SQL. Then, every 10 minutes, another Azure Function is reading the data stored on the database to predict the future blood glucose levels. If those levels aren’t in the proper range, another Function is triggered by routing this data through Azure Queue Storage, and this function sends a text message with the suggested action via Twilio.
You can try it out browsing the GitHub repo for this project.
Third place – Recycle.io
Using sensors, a camera, machine learning, and cloud technologies, Recycle.io detects and processes real time non-recyclable and non-organic waste violations to provide analytics to authorities. These violations occur when non-recyclable or non-organic items are thrown in recyclable or organic trash bins respectively, and this project introduces an innovative IoT system aimed at reducing the amount of resources used by waste collection agencies in the U.S.
Azure IoT Edge modules on the device attached to the bin detect when trash is thrown with the help of an ultrasonic ranger sensor, and the camera captures a picture of the bin contents. Still, on the device, a customized computer vision model analyzes the image and returns a list with the items found, which is compared with the contaminants list provided. This list can be updated by the administrator through a combination of Azure Service Bus and Azure Functions pushing it to the edge device.
If any contaminant is found on the bin, the picture is uploaded to blob storage and event details are pushed through IoT Hub, which triggers an Azure Function that processes the data and stores it on Azure SQL. The web application displays all the bin details in the UI, also using Azure Functions to retrieve the data from the database to be presented.
Learn more about the architecture and creation of this project in its GitHub repo.
Popular choice – Preventing Distracted Driving
Awarded by public voting as part of the competition, Preventing Distracted Driving is a solution designed to prevent people from using specific applications such as messaging applications or social networks while driving. This solution uses the phone GPS to determine if the user is moving in a vehicle, the back camera of the phone, and a capacitive sensor installed in the back of the phone to determine his/her position in the car. The driver’s position is determined through a machine learning model and the number of fingers placed on the phone.
The application takes pictures every 10 seconds and runs them by a TensorFlow model, still in the phone. If the accuracy is not enough or the system has taken more than 10 pictures, the application uses Azure IoT Hub to ingest these images into the cloud solution for processing. Each uploaded picture triggers an Azure Function that runs the second TensorFlow model in the cloud, triggering another function with the inferred results that are stored for visualization.
Browse the code for this cool project at its GitHub repo.
Now that you have seen all that you can accomplish with a good idea and some great cloud services, you are now ready to start your own project, right? Here are some resources that might help you get started:
- Start your free Microsoft Azure trial and get access to 12 months of free services.
- Learn more about developing serverless applications with Azure Serverless Comupting Cookbook.
- Watch these webinars to learn how to build serverless APIs with Node.js and accelerate your Machine Learning workloads using Python with Azure Functions.