At Software Logistics, we are not in the business of making software to control wind turbines. However, our product is well suited to build this type of application. So, we decided to show how our NuvIoT product could be leveraged to take data from the real world and turn it into a digital solution that could be processed by an IoT application and presented back to the user with augmented reality.
Building the Wind Turbine Simulator
In our simple demo, we took a science experiment kit used to generate power from the wind and reversed the connections so we could control it as a motor. We then built a simple embedded device based on an ESP8266 that interfaces with our kit to control the motor speed, using a few magnets and a hall effect sensor to measure motor RPM. To communicate with NuvIoT, we decided to use a dedicated MQTT broker to allow efficient two-way communications. From start to finish, including writing some custom firmware, we probably spent about eight hours on hardware modifications. Although in this case we used this technology to control and monitor a toy experiment kit, the same sort of process could be used to instrument and control real world devices. The cost for building our wind turbine simulator was under $100.
Building our IoT Application
Since we knew what the messages looked like from the device, we were able to create templates for them in NuvIoT, where we describe the MQTT topic as well as the data the message would send. This allows for NuvIoT to automatically decode the message contents. We then created a listener to subscribe to messages from our MQTT broker based on the topic turbine/[DEVICEID]/status. Finally, we created a new device configuration and device type for our wind turbine with a predefined route indicating how status messages from the turbine should be processed. With all of this in place, we were able to assemble all those reusable parts into a reusable solution.
Deploying our Solution
To deploy our solution, we first needed to create a device repository and populate it with devices associated with our newly-created wind turbine device configuration. We then specified how and where we wanted our IoT application to run, then pressed deploy. The time it took from creating our first message type to pressing deploy and having a fully running application was under two hours.
We also wanted a few options to visualize the data. First, we went into the build in Dashboard Builder within NuvIoT and added and configured a few widgets. Since this is an integrated system, it was trivial to select the devices and display the desired data. Even with some fine tuning on the layouts, it probably took less than 30 minutes to create our views.
Adding Augmented Reality Overlay
A compelling use for augmented reality (AR) is to visualize data by overlaying real world objects. It will likely be part of many IoT applications in the future. For Cyclone Power, we built two such applications. The first application is built in Swift for iOS. This application allowed us to recognize our wind turbine with the camera, overlay power output and RPM, and control the pitch of the blade. The next application was built in Unity for Halolens. This application puts you in a field of wind turbines. As you look at a turbine, it displays the power output and RPM. Tapping the turbine enables and disables it. Much of the code developed for these applications was custom. However, we recognize the importance that AR will play in our IoT applications and have committed to provide a first class NuvIoT SDK to make AR interfaces much quicker and easier.
Considering Artificial Intelligence and Machine Learning
Just as AR is a big part of making IoT applications successful, so are Artificial Intelligence (AI) and Machine Learning. A common tool for doing data experiments that data scientists use is a Jupyter Notebook. We provide a set of Python libraries to get your sensor data out of NuvIoT to make it easy to build predictive models. After you create your models, you can deploy a custom pipeline module with an AI run time that takes live data from your devices and performs execution on your models.
This activity illustrates the agility of the platform and the ease at which it can be used to solve a company’s technical challenges without the need to buy new equipment, assemble a development team, and sign on for a massive development effort. It is important to note that more time was spent on building the hardware and electronics for this exercise than was spent on building the IoT application.
Using our NuvIoT platform, we were able to create a digital interaction with the wind turbine. Our platform relies on configuration, not coding, to define our desired interactions. In this case, from an iPad, we are able to view the turbine in action, turn the unit off and on, vary the pitch on the blades, and view the power output and total number of revolutions.
This exercise is just one example of how the NuvIoT platform has been designed to take a practical technical challenge and make solving it seem easy, creating a sophisticated and scalable IoT solution. We recognize that our clients have already made significant investment in hardware, sensors, and infrastructure. As in this example, our platform leverages what a company already has in place to configure, not code, most of the technical solution.