Program MKR Over-the-Air + Goodies: Voice Control, etc.
Secure OTA via Azure. Control via voice capable UWP app. Includes sample: room thermostat controlled via phone.
Our contribution has 2 parts.
Part 1: A collection of reusable components. They can serve as a framework for building various IoT projects that leverage useful features:
- Over-the-Air (OTA) programming of the Arduino MKR1000 (i.e. uploading the compiled binary code). Several methods are available: e.g. from within LAN or from Internet, securely, via Microsoft Azure IoT Hub.
- Universal Windows Platform (UWP) client app, with a nice user interface. It communicates securely with the board via Azure IoT Hub.
- Voice recognition (on the client app), via the Speech Recognition API provided by Microsoft Project Oxford. Spoken commands can be used to control the board via Azure IoT Hub.
Part 2: An use case / sample, built with the above components: a room thermostat, controlled via phone (UWP app). We have built it to serve as an example of how to use the components. And we went even further: we have installed it in our office, and as we are writing these lines, the office heating system is controlled by this very project.
We have developed the following components:
For Arduino IDE:
- a run-time library. It handles the firmware upload and copy mechanics.
- a custom “boards” package. It has a few linker related settings, needed by the library.
- an Arduino IDE plugin. It sends download signals and compiled binary sketches (a.k.a. firmware). It communicates with the board, Azure IoT Hub, the IoT dispatcher server app (cf. below).
To be installed on a third party server (e.g. such as Microsoft Azure Web Site):
- IoT Dispatcher, a PHP + MySQL application that stores and serves firmware.
UWP App Working Principle
We have developed:
- An UWP client app, written in C#. It communicates with the board via Azure IoT Hub, and recognizes spoken commands via Microsoft Project Oxford. It can be used as starting point for various projects.
Part 2: Use Case / Sample: Room Thermostat
As mentioned before, we developed the room thermostat to demonstrate how one can combine our components to build a real life project. In our case, we even put it into production, i.e. it controls the heating of our office.
The logic is simple:
- when the temperature drops below the preset temperature => the relay (i.e. heating) turns ON
- when the temperature is above the preset temperature => the relay/heating turns OFF
- the user interface/UWP client: shows the status, and sets the preset temperature (via text box or voice)
JLCPCB – Prototype 10 PCBs for $2 + 2 days Lead Time
China’s Largest PCB Prototype Enterprise, 300,000+ Customers & 10,000+ Online Orders Per Day
Inside a huge PCB factory: https://www.youtube.com/watch?v=_XCznQFV-Mw