As mentioned in our MuleSoft Hackathon 2020 champions announcement, we are going to feature 10 runner-up submissions in a set of three blogs. These projects are highly innovative and include complex usage of MuleSoft. In this blog, we will cover the 4th, 5th, and 6th, place Hackathon submissions!
4th place: Controlling room temperature remotely
Jason Estevan, MuleSoft Ambassador and independent MuleSoft consultant/contractor, was inspired to create an IoT solution using MuleSoft to control the temperature in his two-year-old son’s bedroom. Jason’s project “Good Sleep: Controlling the temperature in a remote room through IoT devices and MuleSoft,” is a great showing of solving a practical everyday problem with MuleSoft.
He began by placing a real-time bluetooth enabled temperature sensor in his son’s room to
analyze the temperature varying throughout the day.
He then combined the sensor with a WIFI gateway to automatically upload the
measurements into SensorPush’s cloud storage, where he could access them using their available APIs. You can see his Mule flow below:
In this flow, he programmed a scheduler to run every 10 minutes which on triggering, would authorize against SensorPush’s Cloud APIs and retrieve all bedroom temperature measurements for the previous 10 minutes. He would then use DataWeave to traverse all the JSON response objects and calculate a reliable temperature reading. Part one of his video submission explains this in further detail.
Once the room’s temperature was calculated, Jason moved on to implementing a heating or cooling solution by controlling his home furnace. He added another Mule Flow (seen below) that compares the temperature readings from the bedroom to the desired temperature he has stored inside MuleSoft’s Object Store. This flow determines whether the room is too cold, too hot, or just right.
Jason went even further and installed an automated home device to automatically adjust the temperature on the fly. He created additional flows to send outbound API requests back to the thermostat to overwrite its settings and convince the system to either turn the furnace on or off.
Here is his flow to turn the furnace on:
Here is his flow to turn the furnace off:
This is only a small snippet of his submission. You can find more information here or watch his video below.
5th place: Voice over using MuleSoft
This is another great IoT and MuleSoft submission demonstrating how to build a home device skill using MuleSoft. Arpit Singh, Assistant Solutions Architect, created an Anypoint Platform monitoring voice assistant in his project “Voice over Mule connected app.” As an overview, his app will perform tasks in Anypoint Platform based on voice commands including: finding the status of an app deployed to CloudHub, starting, stopping, and restarting apps deployed to Cloudhub, and adding alerts for apps. Arpit lays out his IoT and MuleSoft design below.
Arpit created a few different Mule applications including:
These Mule applications were deployed to CloudHub for his project to work. Below is an overview of his account linking diagram.
The voice-over-mule-alexa-exp is an API that exposes all of the use cases as end points. The functionality of this layer is to interact with the Anypoint EXP and get the required response from the Anypoint Platform REST APIs. It is also responsible for transforming the response in a format that is recognized by AVS.
Arpit then created specific end points for his application to run the commands and respond with the correct actions. Arpit provides a walk through of how he coded his solution here.
After the application has been successfully deployed, when a user tries to utilize the voice over Mule application they will receive this message on their user interface:
You can find Arpit’s entire Hackathon submission here or watch his video below.
6th place: Dinosaurs, drawing, and MuleSoft
Yes, you read that right, our sixth place winner, Hnin Pwint Phyu, Salesforce Developer, created an innovative game using MuleSoft that matches users’ drawings of dinosaurs with an accurate depiction of the same dinosaur to help users improve their dinosaur drawing skills.
Hnin utilized the Einstein Vision API to set up image classification by creating a data set of various dinosaur images to create a smart classification system based on key characteristics of each individual dinosaur. See her example of the dataset for an Allosaurus below:
Once the dataset was finalized, she created an API using Anypoint Platform to accept image uploads, predict the drawings, store the answer in S3, get the predesigned URI, and then showcase the prediction result back to the user next to their drawing. Her flow was as follows:
Instead of using the transform message component, she completed the transformation directly inside the target component. Here is the DataWeave transformation she used:
She also set her Var, predesigned URI, and payload in variables by setting up a target variable. To allow users to see their friends’ drawings, she also created an array list (friendlist) and added values to it using the for each component.
Lastly, she set up the user interface of Salesforce Community Cloud. This is only a small portion of her submission. You can learn more here and see her example video below!
If you have technical content you would like to share with us for a chance to be featured in a blog, submit it here or tag us @MuleSoftDevelopers on LinkedIn! Be sure to join our LinkedIn Community to stay in the know for future Hackathon events.