SENSOR NETWORKS JAVA RASPBERRY EMBEDDEDPI
ABOUTME. CANOOENGINEERING Gerrit Grunwald Developer Leader of JUG Münster JavaFX & IoT community Co-Lead Java Champion, JavaOne RockStar
JAVA ONE 2013
MONITORING
IDEAS
Measure multiple locations Store data for analysis Access it from everywhere Use Java where possible Visualize the data on Pi
Create mobile clients Display current weather condition Measure local environmental data Use only embedded devices
QUESTIONS???
How to do the measurement? Where to store the data? Which technologies to use? What is affordable? Which hardware to use?
TODO
1 MONITOR 9 ROOMS 2 STORE DATA 3 VISUALIZE ON RASPBERRY PI 4 OTHER CLIENTS
MONITOR 9 ROOMS
BUT HOW
SENSOR NETWORK
SENSOR NETWORK Built of sensor nodes Star or mesh topology Pass data to coordinator Sensor nodes running on batteries
POSSIBLE SENSOR NODES
RASPBERRY PI
RASPBERRY PI Cheaper Support Flexible Connectivity Power supply Size Overkill limited I/O's
ARDUINO YUN
ARDUINO YUN Cheaper Support Power supply Oversized Flexible I/O's No Java Connectivity
ARDUINO + XBEE
ARDUINO + XBEE Cheap Support Power supply Oversized Flexible I/O's No Java Connectivity
XBEE
XBEE Cheap No Java Support Flexible
XBEE
XBEE 2.4 GHz at 2mW Indoor range up to 40m Outdoor range up to 120m 2.8-3.6 Volt -40-85 C operat. temp. Point to point, Star and Mesh support Programmable via AT cmd ZigBee standard
XBEE VCC DOUT DIN DO8 RST PWM0 PWM1 RSV DTR GND AD0 AD1 AD2 AD3 RTS AD5 VREF ON CTS AD4
XBEE SETUP VCC DOUT DIN DO8 RST PWM0 PWM1 RSV DTR GND TMP 36 AD0 AD1 AD2 AD3 RTS AD5 VREF ON CTS AD4
XBEE SETUP Wake up sleeping 5min Measure AD3 Transmit AD3 value and supply voltage Go to sleep
SENSOR NODE
SENSOR NODE 5 cm
SENSOR NODE 35
POSSIBLE TOPOLOGIES
SENSOR NODE MESH COORDINATOR SENSOR + ROUTER NODE LARGE-RANGE NETWORKS
SENSOR NODE STAR COORDINATOR SHORT-RANGE NETWORKS
SENSOR NODE STAR COORDINATOR
COORDINATOR Slice of Pi
SENSOR NODE STAR COORDINATOR RASPBERRY PI
RASPBERRY PI SETUP Debian Wheezy Linux JDK 8 Collect all current Xbee data via Java xbee-api Store every 5 min to database Populate live Xbee data via MQTT
MONITOR 9 ROOMS Xbee based Sensor Nodes Raspberry Pi as Coordinator Use Java 8 on the Raspberry Pi
1 MONITOR 9 ROOMS 2 STORE DATA 3 VISUALIZE ON RASPBERRY PI 4 OTHER CLIENTS
STORE DATA
Which database? Which hardware? Where to store the data?
WHICH DATABASE?
MONGO DB
MONGODB Flexible Developer friendly Free Java driver available ARM port available
WHICH HARDWARE?
CUBIEBOARD2 DualCore ARM A7 1GHz Mali-400 MP GPU 1 GB RAM 1 Micro SD 1 SATA 2.0 Ethernet I 2 C, SPI, LVDS
CUBIEBOARD2 SETUP Debian Wheezy Linux JDK 8 Act as mongodb server Collect Xbee data of last 7 days every 5 minutes Allow communication over MQTT
STORE DATA Use mongodb Use CubieBoard2 as server Use Java 8 on the CubieBoard2
1 MONITOR 9 ROOMS 2 STORE DATA 3 VISUALIZE ON RASPBERRY PI 4 OTHER CLIENTS
VISUALIZE ON RASPBERRY PI
VISUALIZE ON PI Show current weather condition Show environmental values Show live measured data Show history of last 7 days Show sensor voltage history Show daily temperature distribution
1. APPROACH
GOING "BIG"
10" TOUCH LCD
THE INTERFACE
WEATHER
ENVIRONMENT
LIVE XBEE DATA
7 DAY HISTORY
7 DAY HISTORY
7 DAY RADAR
THE "BIG" APPROACH JavaFX 8 based Simple touchable interface Get data via MQTT subscription Optimized for low cpu performance
2. APPROACH
GOING "SMALL"
2.8" TOUCH LCD
THE INTERFACE
WEATHER
WEATHER
ENVIRONMENT
ENVIRONMENT
ENVIRONMENT
LIVE XBEE DATA
7 DAY HISTORY TOO SMALL
THE "SMALL" APPROACH JavaFX 8 based Simple touchable interface Get data via MQTT subscription Portable Optimized for low cpu performance
1 MONITOR 9 ROOMS 2 STORE DATA 3 VISUALIZE ON RASPBERRY PI 4 OTHER CLIENTS
OTHER CLIENTS
POSSIBLE JAVAFX PLATFORMS Desktop (Windows, OS X, Linux) Cubox-i (i.mx6) ipad (ios) Nexus 7 (Android) SmartWatch (Android)
DESKTOP
DESKTOP
DESKTOP
Cubox-i (i.mx6) 5 cm
Cubox-i (i.mx6)
Cubox-i (i.mx6)
Cubox-i (i.mx6)
Cubox-i (i.mx6)
Cubox-i (i.mx6)
Cubox-i (i.mx6)
Cubox-i (i.mx6)
1 MONITOR 9 ROOMS 2 STORE DATA 3 VISUALIZE ON RASPBERRY PI 4 OTHER CLIENTS
FINAL SETUP
SensorNetwork
SensorNetwork Database Server
SensorNetwork Database Server MQTT Broker
SensorNetwork Database Server MQTT Broker Raspberry Pi Visualization
SensorNetwork Database Server MQTT Broker Raspberry Pi Visualization Other clients
SensorNetwork Database Server MQTT Broker Raspberry Pi Visualization Other clients
CONCLUSION
One can create a "cheap" sensor network based on Xbee's One could safe money by using embedded technology One could run nearly all of the systems on standard Java
DEMO ios & Android
KEEP CODING