2. Plan
Let’s see what’s waiting for us
About me What is IoT? Some IoT Devices
Challenges
Q & ACoding TimeSome more questions
Few words about
me and why I’m
here
Let’s clarify some
stuff
Hardware!
Interesting topics
to discuss
Let’s create
something
awesome!
A quick way to
learn something
new
Day-to-day
problems when
working with IoT
3. About me
Working in IT for 8 years. Managing
AgileVision.io company for the last 3 years.
Worked on projects related to IoT
throughout the whole career, way before the
term became so popular.
Fond of doing interesting PoC’s involving
both software and hardware.
Helping clients with replacing boring and
error-prone work with automated software,
smart devices or both.
Few words about me and why I’m here
Volodymyr Rudyi
Managing Director @ AgileVision.io
https://www.linkedin.com/in/vrudyi/
4. What is IoT?
Let’s clarify some stuff
A network of computing devices which interact and can be
controlled remotely.
5. Examples of IoT-enabled Devices
Hardware!
Amazon Alexa
Smart Home Appliance
AWS IoT Button
Industrial Automation
M5 Stack
ESP32 Prototyping Board
NRF52-DK
nRF52 Prototyping Board
…and many more, including cars, smart counters,
healthcare equipment, fleet management equipment…
6. Challenges
The world is cruel
Energy Efficiency
Not all devices can be attached to a socket. How can we
be sure the battery life is long enough to perform tasks?
Connectivity
How to connect thousand of devices that use different
protocols on all layers, starting from the physical layer?
Security
How to exchange data in a secure way? Can we trust other
parties? How do we protect from impostors?
Economic Feasibility
Technological progress allows creating amazing things. The
only problem is… the price!
7. Why does “On Time” is more important than “Awesome”?
In some cases, the hot-dog test must work without any delays
• Successful engineers borrow ideas from nature!
• Some decisions must be taken immediately, without a risk of being delayed by data
transfer rates or network outages
• Single point of failure can be unacceptable for life support systems
• Batch processing of non mission-critical data is more cost-efficient than parallel
processing
• Specialized hardware can provide better results for specific tasks
8. What is “Edge Computing”?
Definitions for bleeding edge terms!
A distributed computing paradigm in which computations
are performed on distributed device nodes that are located closer
to the data.
9. Why does “smart enough” is not enough?
There is no limit for perfection
• The approach “Implement once use everywhere” doesn’t work anymore
• Luckily we can use the “Learn Continuously” approach
• Responding to change is the key requirement for modern software solutions
• We know nothing about upcoming changes
10. There is a cloud service for that!
Don’t let your competition to beat you because you had to reinvent the wheel
AWS GreenGrass Azure IoT Edge Google IoT Edge
Production-ready
service. Supports ML
inference, offline mode
and various execution
environments
Production-ready
service. Uses Moby
containers as an
execution environment
for functions.
Still in Alpha. Not much
public information
available.
11. What is Google IoT?
A closer look
“Google Cloud IoT is a complete set of tools to connect, process,
store, and analyze data both at the edge and in the cloud.”
12. How it works?
A closer look
MQTT
Google IoT Core
VideoStream
Private key Public key
Public key
14. Hands-on part: Object Detection
Let’s build our very own IoT-enabled, real-time, scalable plant(and some other stuff) detector
• Device connects to a VPU and uploads a
neural network model to it
• Device connects to the Google IoT
• Inference is happening on the device and
is being sent to the cloud
• Device monitoring is performed in the
cloud. Decisions can be made both on the
edge device(e.g. inform the user the plant
was detected) and in the cloud (analyze
anomalies, like objects appearing/
disappearing after being there for a while)
15. Hands-on part: Show me the CODE
Yep, that simple. Everything else is just data preparation/conversion/initialization.
# Routine code to initialize the device and load the model
device.OpenDevice()
ssd_mobilenet_graph = device.AllocateGraph(graph_data)
ssd_mobilenet_graph.LoadTensor(resized_image.astype(numpy.float16), None)
output = ssd_mobilenet_graph.GetResult()
# Routine code to free resources
ssd_mobilenet_graph.DeallocateGraph()
device.CloseDevice()
16. Hands-on part: Output
Let’s build our very own IoT-enabled, real-time, scalable plant(and some other stuff) detector
17. Summary
Continuous learning is the key
• Google IoT is rather easy to integrate with
• Security is achieved by using standard protocols
• Some of the usual services are not present in Google IoT, including video streaming and
video stream processing. Google offers third-party services hosted on GCP instead
• Google IoT Edge is still not publicly available and right now in the alpha program,
meaning it’s not possible to use it in the production
• Competitors, especially Amazon, provide wider range of services that are connected with
each other and require almost zero configuration