Proof of Concept

Note: This is completed and was demonstrated at the Denver Maker Faire 2018. The implementation didn't not include support for motor control but did implement all the infrastructure needed to manage a light switch.

This page will contain the plans for the Proof of Concept.


Show a server node managing an IoT node. The server node should be a Raspberry Pi running PiBox with the Media Server UI and the IoT should be a board utilizing an Atmel or similar chip capable of controlling a physical device. The physical device should be a vent whose fins can be opened and closed with the IoT device. The server node and IoT node should communicate over WiFi or, possibly, Bluetooth.

The goal of this phase of development is to prove we understand enough about the following concepts to produce a minimal viable product (MVP).

  • Server OS
  • UI implementation
  • Wireless communication
  • Microcontroller platform hardware integration
  • Microcontroller programming
  • Control of mechanical devices, specifically motors

Stretch Goal

  • Jarvis - voice activated (not AI) control of devices

Block Diagram


Server Node

PiBox will serve as the server node OS. This platform already supports Wifi and the Media Server release has a simple, easy to see (for demos) custom UI that should be easily extendable using examples like PiClock.


The Raspberry Pi will be physically connected to an external HDMI monitor. The monitor will support 800x600 or higher.

Input hardware will be provided by a wireless Favi keyboard/mouse combination.

This hardware is intended only for use in the PoC. More appropriate hardware for home automation will be required for the minimum viable product (MVP).


The UI will require a new app developed. This will be a GTK+ 2.x app that conforms to the app specification for PiBox's Media Server, which just means it provides its app icon for the navigation and installs an app configuration file with its opkgs.

The app will consist of two buttons and a text window. The first button will be use to open the vent. The second to close it. A text field will show the current status of the vent provided by the IoT Node.


Wifi setup can either use a router or use PiBox's configuration option for running as an access point. The latter may be more useful for demos.

IoT Node

Hardware Components

There are three hardware components in the IoT node.
  1. The WiFi interface
  2. A microcontroller board
  3. A stepper or similar motor for control of an mechanical device.
  4. A vent with adjustable fans.

The WiFi interface will be an ESP8266 or Bluetooth or BLE interface. An ESP8266 will be tried first as it may also serve as the microcontroller platform.

The microcontroller platform must have GPIO pins for the motor.

The motor must be allow for at least 4 settable states. This will control the fins on the vent.

Power for the hardware will come from 3 AAA batteries. All three devices will draw power from the same power source. There must be sufficient power to perform short demos lasting no more than an hour.

Software Components

There are two sofware components to the IoT node. The first is the WiFi interface. This will handle all communications traffic between the server node and the IoT.

The second software component in the IoT node will handle control of the hardware device. This software must accept commands via the WiFi interface to set a level on the motor it controls.

Mechanical Device

The device under control of the IoT node will be a simple air vent. A stepper (or similar motor) will be used to open and close the vent fins.

Updated by Hammel about 5 years ago · 9 revisions