Pulga, a Tiny Open-Source MQTT Broker
for Flexible and Secure IoT Deployments
Jose Luis Espinosa-Aranda, Noelia Vallez, Carlos Sanchez-Bueno, Daniel Aguado-Araujo, Gloria Bueno, Oscar Deniz
University of Castilla-La Mancha, Spain
This project has received funding from
the European Union’s Horizon 2020
research and innovation programme under grant agreement No 643924
Contents
• EOT/IOT. Motivation and Context
•Challenges
• The MQTT Broker: Pulga
•Conclusions
Motivation and Context
Vision is our richest sensor
One of the most complex tasks for both humans and
machines
Proven success in ‘machine vision’ context, i.e. factory automation, inspection,…
Motivation and Context
CV is going out-of-factory … • Microsoft Kinect
• Google Project Tango
• Google Glass
Lots of new developments • Drones
• ADAS
• Multispectral, 3D, …
• Mobile imaging
• Deep learning
Motivation and Context
• Many innovative
‘out-of-the-factory’ CV applications developed for smartphones, which are cheap, easy-to-use …
Motivation and Context
• But smartphones are not appropriate for many applications
• Wearable for the IOT/EOT? No
• Low power consumption? No
• Optimized for CV? No
• No flexible open
platform for mobile
embedded vision is
currently available
• New-platform
needed
Challenges
EOT => IOT + CV
Challenges
Build a generic vision system that can be used standalone but also embedded in more
complex artifacts
BOM < $15
camera
3mm x 3mm x 3mm
EoT board
camera cable
0-200cm
Efficiency Size
Cost Flexibility
Challenges
Challenges
Alternative: IOT + Cloud?
• Image analysis requires massive computing power • Send the data to the Cloud • Send the data to local computers: Cloudlets
• In both cases raw sensor data would be streamed to an externally-managed device • Security problems!
• Too much data • High Wi-Fi power consumption!
Challenges
However we do need to:
• We should use Wi-Fi data transfer • For device configuration, application
metadata, etc
• Texas Instruments’ CC3100
• Common Internet protocols such as HTTP are not appropriate in IoT
MQTT Broker: Pulga
• We selected the MQTT protocol
• Open lightweight publish/subscribe protocol
• Efficient 1-to-n communication mechanism
MQTT Broker: Pulga
MQTT Broker: Pulga
Typical MQTT scenario
Problems: 1. The broker is in the
cloud (security risk) 2. Sometimes it has to
be leased
MQTT Broker: Pulga
Our proposal: MQTT broker in the embedded device
Pros:
• Don’t need leased broker
• Reduce security risks (information is in the LAN)
Cons:
• Broker is complex software
MQTT Broker: Pulga
The most popular (desktop) MQTT broker: Mosquitto
3MB RAM
Our implementation for EoT: Pulga (flea in Spanish)
512KB RAM (can be less)
MQTT Broker: Pulga
MQTT Broker: Pulga
Pulga has a specific configuration topic
EOT Prototype
Conclusions
• The EOT building elements have been all optimized for size and cost
• Software and protocols used have been also optimized
• A novel architecture is proposed in which each device can act as a broker itself
• Since no data is initially sent through the Internet is an advantage in terms of security
• The proposed embedded MQTT broker, Pulga, offers the opportunity to install and configure applications
Thanks for your attention