SlideShare a Scribd company logo
1 of 33
Download to read offline
REMOTE CONTROL OF IoT
LINUX DEVICES
ARDUINO CONNECTOR | LINUXLAB 2018
04|12|2018
2Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
ABOUT ME
LUCA
CIPRIANI
CIO, ARDUINO
@MASTROLINUX
3Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT 3
INTRO |
GOALS
4Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
ARDUINO - KNOWN FOR MICROCONTROLLERS
MKR FOX
1200
MKR WAN
1300
MKR GSM
1400
MKR NB
1500
MKR WIFI
1010
MKR ETH
SHIELD
MKR1000
5Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
RUNS ON LINUX TOO
6Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
USE CASE
Give users a quick and easy web interface to
• Check the status of the system
• Configure networking
• Install packages
• Deploy apps/containers, Arduino Sketches
7Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
CONTROL LINUX FROM THE WEB
• Old problem, Old
solutions
• HTTPS is hard to achieve
• Bi-directional
communication
• Work on most network
topologies
• Create a web server,
contact it via http
• Cannot have HTTPS
unless domain name is
registered and IP address
is static/known
• UDP port are often
closed
8Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
KNOWN SOLUTIONS DID NOT FIT USE CASE
Here is a random list
• Ubuntu Landscape
• Zentyal
• Ajenti
• Webmin
• Others
9Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
LANDSCAPE - DO NOT BE OVERKILL
We do not want to store users’ data
unless needed or with big
advantages for both users and us.
We do not want to deal with state
synchronization.
Scaling is really expensive!
10Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
SECTION TITLE
11Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
ZENTIAL - OUR TARGET ARE NOT SMB
You have to control a
Raspberry, not a small office, do
you really need a whole OS?
12Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
13Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
AJENTI - GOOD PRODUCT BUT STILL WEB SERVER
They have a nice, well designed
product but has the same
issues we mentioned already.
HTTP server based system!
14Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
15Remote Control of IoT Linux Devices | LinuxLab 2018 - Firenze, IT
ARDUINO CONNECTOR
FEATURES
One single binary ~20MB (no external deps)01
Works on every Debian-like Linux distros02
Works on slow connections05
No need to know the IP in advance06
Secure only connections03
MQTT (Stable TCP socket with the remote server)04
16Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
MQTT is:
• Well known
• Widely used
• Feature complete
• Simple enough
• Bi-directional
I like AMQP more ;)
17Remote Control of IoT Linux Devices | LinuxLab 2018 - Firenze, IT
SERVER SIDE
WHAT YOU NEED
MQTT Server01
SSL Support02
MQTT over Websocket (optional)05
MQTT Client03
Oauth2 server (optional)04
18Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
SHOW ME THE CODE
Go Language runs on:
arm v5, v6, v7
arm64 v8
x86
x86_64
Public repo:
https://github.com/arduino
/arduino-connector
19Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
{}
--> $aws/things/{{id}}/stats/post
INFO: {
"memory":{
"FreeMem":1317964,
"TotalMem":15859984,
"AvailableMem":8184204,
"Buffers":757412,
"Cached":6569888,
"FreeSwapMem":0,
"TotalSwapMem":0
},
<-- $aws/things/{{id}}/stats
EXAMPLE API
{}
--> $aws/things/{{id}}/apt/list/post
INFO: {"packages":[
{"Name":"firefox","Status":"upgradable","
Architecture":"amd64","Version":"57.0.3+b
uild1-0ubuntu0.17.10.1"}, ...],
"page":0,"pages":1}
<-- $aws/things/{{id}}/apt/list
20Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
Use /proc Luke!
And remember, everything is a file in Linux
We released
https://github.com/arduino/go-system-stats
STATS API
21Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
APT integration is dummy, APT lib api are in
C++ only and nearly impossible to integrate
with Go, so we used the CLI as an API
We released
https://github.com/arduino/go-apt-client/
A combination of dpkg + apt commands
wrapped in an API
Supports managing repos
APT INTEGRATION
22Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
DOCKER INTEGRATION
23Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
NetworkManager has stable API (0.98 is really
stable)
We released
https://github.com/arduino/gonetworkmanager
You can add ETH or WiFi networks
NETWORK MANAGER INTEGRATION
24Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
DOCKER INTEGRATION
25Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
We install docker if not previously installed and
if target supports it.
Docker Go APIs are really easy to manage
(imagine why)
Works with private registry
Runs on huge servers (we tried with Intel Data
Center with 64 core CPU)
And Small devices (like Beaglebone Black and
Raspberry Pi)
DOCKER INTEGRATION
26Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
DOCKER INTEGRATION
27Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
We can run Arduino compiled code directly as
a Linux binary
Integrations with all Hardware sensors and
GPIO is provided by the MRAA library
https://github.com/intel-iot-devkit/mraa
ARDUINO INTEGRATION
28Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
Support for all Debian
Based devices.
Porting to other OS is
simple.
29Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
Communicate with the
hardware directly from
Arduino to Linux API and
vice-versa
30Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
Run Shell commands in Arduino and manage hardware directly
https://create.arduino.cc/projecthub/Arduino_Genuino/arduino-linux-on-
up2-board-with-intel-mraa-a30f87
31Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
ARDUINO INTEGRATION
32Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
Let’s give it a try!
https://create.arduino.cc
THANK YOU!
ARDUINO.CC
Luca Cipriani - CIO
l.cipriani@arduino.cc - @mastrolinux

More Related Content

What's hot

Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...linuxlab_conf
 
MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206Linaro
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesLinaro
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108Linaro
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITELinaro
 
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on LinuxTommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linuxlinuxlab_conf
 
Introduction to Linux-wpan and Potential Collaboration
Introduction to Linux-wpan and Potential CollaborationIntroduction to Linux-wpan and Potential Collaboration
Introduction to Linux-wpan and Potential CollaborationSamsung Open Source Group
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryLinaro
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr Linaro
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLinaro
 
SGX Trusted Execution Environment
SGX Trusted Execution EnvironmentSGX Trusted Execution Environment
SGX Trusted Execution EnvironmentKernel TLV
 
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressBKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressLinaro
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Linaro
 
Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Linaro
 
Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux
Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in LinuxSelf Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux
Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linuxinaz2
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Linaro
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLinaro
 

What's hot (20)

Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
 
MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206MOVED: RDK/WPE Port on DB410C - SFO17-206
MOVED: RDK/WPE Port on DB410C - SFO17-206
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108
 
BKK16-105 HALs for LITE
BKK16-105 HALs for LITEBKK16-105 HALs for LITE
BKK16-105 HALs for LITE
 
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on LinuxTommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
Tommaso Cucinotta - Low-latency and power-efficient audio applications on Linux
 
Introduction to Linux-wpan and Potential Collaboration
Introduction to Linux-wpan and Potential CollaborationIntroduction to Linux-wpan and Potential Collaboration
Introduction to Linux-wpan and Potential Collaboration
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End Story
 
BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr BUD17-405: Building a reference IoT product with Zephyr
BUD17-405: Building a reference IoT product with Zephyr
 
LAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome KeynoteLAS16-100K1: Welcome Keynote
LAS16-100K1: Welcome Keynote
 
SGX Trusted Execution Environment
SGX Trusted Execution EnvironmentSGX Trusted Execution Environment
SGX Trusted Execution Environment
 
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressBKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
 
Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403Optimizing the Design and Implementation of KVM/ARM - SFO17-403
Optimizing the Design and Implementation of KVM/ARM - SFO17-403
 
Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux
Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in LinuxSelf Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux
Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux
 
JerryScript on RIOT
JerryScript on RIOTJerryScript on RIOT
JerryScript on RIOT
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from HellLAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
LAS16-500: The Rise and Fall of Assembler and the VGIC from Hell
 
Secure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-VSecure IoT Firmware for RISC-V
Secure IoT Firmware for RISC-V
 

Similar to Remote Control IoT Linux Devices with Arduino Connector

#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...Paris Open Source Summit
 
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conferenceFIWARE
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015ICT PRISTINE
 
RINA essentials, PISA Internet Festival 2015
RINA essentials, PISA Internet Festival 2015RINA essentials, PISA Internet Festival 2015
RINA essentials, PISA Internet Festival 2015ICT PRISTINE
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...MediaTek Labs
 
Understanding IoT Data Protocol - PyCon ID 2018
Understanding IoT Data Protocol - PyCon ID 2018Understanding IoT Data Protocol - PyCon ID 2018
Understanding IoT Data Protocol - PyCon ID 2018Tegar Imansyah
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentJonathan Ruiz de Garibay
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxSamsung Open Source Group
 
Distributech_Presentation DTECH_2013
Distributech_Presentation DTECH_2013Distributech_Presentation DTECH_2013
Distributech_Presentation DTECH_2013Dorian Hernandez
 
RIOT: towards open source, secure DevOps on microcontroller-based IoT
RIOT: towards open source, secure DevOps on microcontroller-based IoTRIOT: towards open source, secure DevOps on microcontroller-based IoT
RIOT: towards open source, secure DevOps on microcontroller-based IoTAlexandre Abadie
 
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...Paris Open Source Summit
 
Internet of Things – Contiki.pdf
Internet of Things – Contiki.pdfInternet of Things – Contiki.pdf
Internet of Things – Contiki.pdfSudhanshiBakre1
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)Balena
 
robotics for embedded systems.pptx
robotics for embedded systems.pptxrobotics for embedded systems.pptx
robotics for embedded systems.pptxVikasMahor3
 
Edge Computing: A Unified Infrastructure for all the Different Pieces
Edge Computing: A Unified Infrastructure for all the Different PiecesEdge Computing: A Unified Infrastructure for all the Different Pieces
Edge Computing: A Unified Infrastructure for all the Different PiecesCloudify Community
 
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...Codemotion
 
NETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power socketsNETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power socketsLenka Peřinová
 
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...Puppet
 

Similar to Remote Control IoT Linux Devices with Arduino Connector (20)

#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
#OSSPARIS19 : Control your Embedded Linux remotely by using WebSockets - Gian...
 
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015
 
RINA essentials, PISA Internet Festival 2015
RINA essentials, PISA Internet Festival 2015RINA essentials, PISA Internet Festival 2015
RINA essentials, PISA Internet Festival 2015
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
 
Understanding IoT Data Protocol - PyCon ID 2018
Understanding IoT Data Protocol - PyCon ID 2018Understanding IoT Data Protocol - PyCon ID 2018
Understanding IoT Data Protocol - PyCon ID 2018
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
Distributech_Presentation DTECH_2013
Distributech_Presentation DTECH_2013Distributech_Presentation DTECH_2013
Distributech_Presentation DTECH_2013
 
RIOT: towards open source, secure DevOps on microcontroller-based IoT
RIOT: towards open source, secure DevOps on microcontroller-based IoTRIOT: towards open source, secure DevOps on microcontroller-based IoT
RIOT: towards open source, secure DevOps on microcontroller-based IoT
 
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
#OSSPARIS19 : RIOT: towards open source, secure DevOps on microcontroller-bas...
 
Internet of Things – Contiki.pdf
Internet of Things – Contiki.pdfInternet of Things – Contiki.pdf
Internet of Things – Contiki.pdf
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)
 
robotics for embedded systems.pptx
robotics for embedded systems.pptxrobotics for embedded systems.pptx
robotics for embedded systems.pptx
 
Ppt 11 - netopeer
Ppt   11 - netopeerPpt   11 - netopeer
Ppt 11 - netopeer
 
Edge Computing: A Unified Infrastructure for all the Different Pieces
Edge Computing: A Unified Infrastructure for all the Different PiecesEdge Computing: A Unified Infrastructure for all the Different Pieces
Edge Computing: A Unified Infrastructure for all the Different Pieces
 
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
Open Source Serverless: a practical view. - Gabriele Provinciali Luca Postacc...
 
NETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power socketsNETIO products company: Manufacturer of networked power sockets
NETIO products company: Manufacturer of networked power sockets
 
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
PuppetConf 2016: Why Network Automation Matters, and What You Can Do About It...
 
What's new in the integrated architecture hardware
What's new in the integrated architecture hardwareWhat's new in the integrated architecture hardware
What's new in the integrated architecture hardware
 

More from linuxlab_conf

Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Reportlinuxlab_conf
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...linuxlab_conf
 
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketBruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketlinuxlab_conf
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchlinuxlab_conf
 
Jacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complexJacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complexlinuxlab_conf
 
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugsDario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugslinuxlab_conf
 
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...linuxlab_conf
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Projectlinuxlab_conf
 
Davide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionDavide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionlinuxlab_conf
 
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmLuca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmlinuxlab_conf
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Joblinuxlab_conf
 

More from linuxlab_conf (12)

Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Report
 
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
Marco Cavallini - Yocto Project, an automatic generator of embedded Linux dis...
 
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocketBruno Verachten - The Android device farm that fits in a (cloudy) pocket
Bruno Verachten - The Android device farm that fits in a (cloudy) pocket
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Jacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complexJacopo Mondi - Complex cameras are complex
Jacopo Mondi - Complex cameras are complex
 
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugsDario Faggioli - Virtualization in the age of speculative execution HW bugs
Dario Faggioli - Virtualization in the age of speculative execution HW bugs
 
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Davide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruptionDavide Berardi - Linux hardening and security measures against Memory corruption
Davide Berardi - Linux hardening and security measures against Memory corruption
 
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvmLuca Abeni - Real-Time Virtual Machines with Linux and kvm
Luca Abeni - Real-Time Virtual Machines with Linux and kvm
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

Remote Control IoT Linux Devices with Arduino Connector

  • 1. REMOTE CONTROL OF IoT LINUX DEVICES ARDUINO CONNECTOR | LINUXLAB 2018 04|12|2018
  • 2. 2Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT ABOUT ME LUCA CIPRIANI CIO, ARDUINO @MASTROLINUX
  • 3. 3Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT 3 INTRO | GOALS
  • 4. 4Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT ARDUINO - KNOWN FOR MICROCONTROLLERS MKR FOX 1200 MKR WAN 1300 MKR GSM 1400 MKR NB 1500 MKR WIFI 1010 MKR ETH SHIELD MKR1000
  • 5. 5Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT RUNS ON LINUX TOO
  • 6. 6Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT USE CASE Give users a quick and easy web interface to • Check the status of the system • Configure networking • Install packages • Deploy apps/containers, Arduino Sketches
  • 7. 7Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT CONTROL LINUX FROM THE WEB • Old problem, Old solutions • HTTPS is hard to achieve • Bi-directional communication • Work on most network topologies • Create a web server, contact it via http • Cannot have HTTPS unless domain name is registered and IP address is static/known • UDP port are often closed
  • 8. 8Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT KNOWN SOLUTIONS DID NOT FIT USE CASE Here is a random list • Ubuntu Landscape • Zentyal • Ajenti • Webmin • Others
  • 9. 9Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT LANDSCAPE - DO NOT BE OVERKILL We do not want to store users’ data unless needed or with big advantages for both users and us. We do not want to deal with state synchronization. Scaling is really expensive!
  • 10. 10Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT SECTION TITLE
  • 11. 11Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT ZENTIAL - OUR TARGET ARE NOT SMB You have to control a Raspberry, not a small office, do you really need a whole OS?
  • 12. 12Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
  • 13. 13Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT AJENTI - GOOD PRODUCT BUT STILL WEB SERVER They have a nice, well designed product but has the same issues we mentioned already. HTTP server based system!
  • 14. 14Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT
  • 15. 15Remote Control of IoT Linux Devices | LinuxLab 2018 - Firenze, IT ARDUINO CONNECTOR FEATURES One single binary ~20MB (no external deps)01 Works on every Debian-like Linux distros02 Works on slow connections05 No need to know the IP in advance06 Secure only connections03 MQTT (Stable TCP socket with the remote server)04
  • 16. 16Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT MQTT is: • Well known • Widely used • Feature complete • Simple enough • Bi-directional I like AMQP more ;)
  • 17. 17Remote Control of IoT Linux Devices | LinuxLab 2018 - Firenze, IT SERVER SIDE WHAT YOU NEED MQTT Server01 SSL Support02 MQTT over Websocket (optional)05 MQTT Client03 Oauth2 server (optional)04
  • 18. 18Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT SHOW ME THE CODE Go Language runs on: arm v5, v6, v7 arm64 v8 x86 x86_64 Public repo: https://github.com/arduino /arduino-connector
  • 19. 19Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT {} --> $aws/things/{{id}}/stats/post INFO: { "memory":{ "FreeMem":1317964, "TotalMem":15859984, "AvailableMem":8184204, "Buffers":757412, "Cached":6569888, "FreeSwapMem":0, "TotalSwapMem":0 }, <-- $aws/things/{{id}}/stats EXAMPLE API {} --> $aws/things/{{id}}/apt/list/post INFO: {"packages":[ {"Name":"firefox","Status":"upgradable"," Architecture":"amd64","Version":"57.0.3+b uild1-0ubuntu0.17.10.1"}, ...], "page":0,"pages":1} <-- $aws/things/{{id}}/apt/list
  • 20. 20Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT Use /proc Luke! And remember, everything is a file in Linux We released https://github.com/arduino/go-system-stats STATS API
  • 21. 21Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT APT integration is dummy, APT lib api are in C++ only and nearly impossible to integrate with Go, so we used the CLI as an API We released https://github.com/arduino/go-apt-client/ A combination of dpkg + apt commands wrapped in an API Supports managing repos APT INTEGRATION
  • 22. 22Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT DOCKER INTEGRATION
  • 23. 23Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT NetworkManager has stable API (0.98 is really stable) We released https://github.com/arduino/gonetworkmanager You can add ETH or WiFi networks NETWORK MANAGER INTEGRATION
  • 24. 24Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT DOCKER INTEGRATION
  • 25. 25Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT We install docker if not previously installed and if target supports it. Docker Go APIs are really easy to manage (imagine why) Works with private registry Runs on huge servers (we tried with Intel Data Center with 64 core CPU) And Small devices (like Beaglebone Black and Raspberry Pi) DOCKER INTEGRATION
  • 26. 26Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT DOCKER INTEGRATION
  • 27. 27Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT We can run Arduino compiled code directly as a Linux binary Integrations with all Hardware sensors and GPIO is provided by the MRAA library https://github.com/intel-iot-devkit/mraa ARDUINO INTEGRATION
  • 28. 28Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT Support for all Debian Based devices. Porting to other OS is simple.
  • 29. 29Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT Communicate with the hardware directly from Arduino to Linux API and vice-versa
  • 30. 30Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT Run Shell commands in Arduino and manage hardware directly https://create.arduino.cc/projecthub/Arduino_Genuino/arduino-linux-on- up2-board-with-intel-mraa-a30f87
  • 31. 31Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT ARDUINO INTEGRATION
  • 32. 32Remote Control of IoT Linux Devices | LinuxLab2018 - Firenze, IT Let’s give it a try! https://create.arduino.cc
  • 33. THANK YOU! ARDUINO.CC Luca Cipriani - CIO l.cipriani@arduino.cc - @mastrolinux