Project

General

Profile

Proof of Concept » History » Version 8

Hammel, 20 May 2018 11:14

1 1 Hammel
h1. Proof of Concept
2
3
This page will contain the plans for the Proof of Concept.
4
5 2 Hammel
{{>toc}}
6
7 4 Hammel
h1. Summary
8 1 Hammel
9 3 Hammel
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.
10
11 1 Hammel
The goal of this phase of development is to prove we understand enough about the following concepts to produce a minimal viable product (MVP).
12 4 Hammel
13 3 Hammel
* Server OS
14
* UI implementation
15
* Wireless communication
16
* Microcontroller platform hardware integration
17
* Microcontroller programming
18 1 Hammel
* Control of mechanical devices, specifically motors
19 3 Hammel
20 8 Hammel
Stretch Goal
21
22
* Jarvis - voice activated (not AI) control of devices
23
24 4 Hammel
h1. Block Diagram
25 1 Hammel
26
!proof-of-concept.png!
27
28 4 Hammel
h1. Components
29 1 Hammel
30 4 Hammel
h2. Server Node
31 1 Hammel
32 4 Hammel
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.
33 1 Hammel
34 6 Hammel
h3. Hardware
35
36
The Raspberry Pi will be physically connected to an external HDMI monitor.  The monitor will support 800x600 or higher.  
37
38
Input hardware will be provided by a wireless Favi keyboard/mouse combination.  
39
40
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).
41
42 4 Hammel
h3. UI
43 1 Hammel
44 4 Hammel
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.
45 1 Hammel
46 4 Hammel
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.
47 1 Hammel
48 4 Hammel
h3. Wifi
49
50
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.
51
52
h2. IoT Node
53
54
h3. Hardware Components
55
56 5 Hammel
There are three hardware components in the IoT node.
57
# The WiFi interface
58
# A microcontroller board
59
# A stepper or similar motor for control of an mechanical device.
60 7 Hammel
# A vent with adjustable fans.
61 5 Hammel
62
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.
63
64
The microcontroller platform must have GPIO pins for the motor.  
65 1 Hammel
66 7 Hammel
The motor must be allow for at least 4 settable states.  This will control the fins on the vent.
67 5 Hammel
68 7 Hammel
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.
69 5 Hammel
70 4 Hammel
h3. Software Components
71 3 Hammel
72 5 Hammel
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.  
73
74
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.
75
76 3 Hammel
h3. Mechanical Device
77 5 Hammel
78
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.