SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Open Source
building blocks for the
  Internet of Things
        Benjamin	
  Cabé	
  
         JFokus	
  2013	
  
Who I am



•  Benjamin Cabé
•  Open Source M2M
   Evangelist at Sierra Wireless
•  Long-time Eclipse lover
M2M? IoT?



❝   Technology that supports
    wired or wireless
    communication
    between devices
Smart
   Pill
   Box
           Near field
                                                        Patient
    Heartbeat
    Sensor
                           Medical
                           Services
                           Gateway                Clinical Trial
Weight                                 Internet
Scale                                 of Things



                                                  Doctor
         Blood
         Pressure
                       Blood
                       Sugar
However…
The market is fragmented
   –  Hardware, software, protocols…
      all different, independent
   –  Lack of integration…
      between devices, to enterprise systems

M2M development is complex
   –  Many different skills required…
      Hardware, Embedded, IT network, Telecom,
      web
   –  No common architectural guidelines

Current options are closed
   –  Monolithic solutions…
      device specific, app specific, market specific
   –  Proprietary SDKs, protocols, potential vendor
      lock-in
3 projects


Framework

Protocols

Tools
M2M embedded
           programming

•  low-level C     •  read sensor values
•  memory          •  control actuators
   management
                   •  consolidate data
•  multithreaded
   programming     •  communicate
Example: Sending an SMS
int main()	
{	
     unsigned char char1[10];	
     unsigned char char_buf[8]="AT+CSQn";	
     // unsigned char sms_buf[20] = "AT+CMGS="xxxxxxxxx";	
     	
     int wc_fd;	
                                                             sms.send(

     /********* Init of serial port ************/	
     wc_fd = init_wc(wc_fd);	
                                                                '+33612345678’,

     sleep(3);	
     //writing to serial port	                                  'My SMS’

                                                             )	
     write(wc_fd,char_buf,sizeof(char_buf));	
     usleep(40000);	
     //reading from serial port	
     read(wc_fd,char1,sizeof(char1));	
     	
     sleep(2);	
                                                             	
     close(wc_fd);	
     	
     return 0;	
} // end of main	
	
// initialization of serial port	
	
struct termios options;	
	
ttys5_fd = open("/dev/ttyS5", O_RDWR );	
if (ttys5_fd < 0)
Simplify M2M programming
What is Lua?
•  High-level programming language
•  Scripting
•  Simple
•  Extensible
•  Portable
Extensible by design
•  Small
  –  Trivial syntax and reduced keyword set
•  Simple but not stupid
  –  Simple enough for new users, powerful
     enough for advanced users (first-class
     functions, garbage collection, closures, tail
     calls, coercion, coroutines, metatables)
•  Lua core is tiny
  –  Compiled size is ~150kB
  –  Lua uses libraries for its extensions
Lua vs. other high-level
            languages
•  Same core features as Python, Ruby,
   Javascript
•  Better concurrency management
  –  Built-in – doesn’t rely on the OS
•  Cutting-edge execution technology
   & performances
Lua vs. other high-level
           languages
•  Restricted set of libraries
  –  Stay simple, the developer brings his own
•  Designed for C integration
  –  Performance
  –  Legacy
Lua for embedded and M2M?
•  High-level languages usually trade
   hardware resources for
   development & maintenance
   resources

  Lua allows to reconcile high-level
    languages accomplishments
     with embedded constraints
You need an IDE!
•    Project structure     •    Documentation
•    Syntax coloring       •    Code templates
•    Content assist        •    Debugger
•    Code navigation       •    Remote development
•    Code formatting       •    Embedded interpreter


                         June 2012: first release (0.8)
                         Dec. 2012: 0.9 release
                         June 2013: graduate w/ Kepler
                         50,000+ installations already! (Feb. 2013)
Using Koneki LDT for
remote Lua development

DEMO
101
•  http://www.eclipse.org/koneki/ldt
•  Download standalone IDE
•  Or install in existing Eclipse
  –  from Juno repository (0.8.2)
  –  from nightly/milestones repositories (0.9+)
•  Execution environments on Koneki wiki
  –  http://goo.gl/f6T80
•  Contact the team
  –  http://eclipse.org/forums/eclipse.koneki
http://www.sxc.hu/photo/1036004
•  Messaging protocol
•  Low-bandwidth / Low-power
•  Payload agnostic
•  Adjustable QoS
•  Large ecosystem
(optional) bridge

          broker                            broker
                                                       topic/#
                      topic/subtopic




                                               keepalive
publish
                                               last will & testament
          subscribe
                                               username/password
101
•  http://eclipse.org/paho/
•  Eclipse Paho delivers clients for MQTT in C and
   Java
  –  http://eclipse.org/paho/download.php
•  Lua client available soon
  –  https://github.com/geekscape/mqtt_lua
•  MQTT view in Eclipse
  –  http://git.eclipse.org/c/paho/org.eclipse.paho.esf.git/
•  Free broker hosted at Eclipse: m2m.eclipse.org
•  Contact the team
  –  paho-dev mailing-list
Lua VM + MQTT client to go?
Application framework for M2M
 •  Set of libraries providing building
    blocks to develop M2M applications:
   –  Serial and I/O management,
   –  Networking (FTP, HTTP, e-mail, …),
   –  GPS,
   –  Cryptography,
   –  Modbus,
   –  Local storage
   –  etc.                     http://www.eclipse.org/mihini
Smart agent for M2M
•  M2M data queues
•  Network bearers
•  Device management
•  Application container
•  Application configuration

                           http://www.eclipse.org/mihini
Asset management
•  User applications use an API to
   communicate with Mihini
  –  Send data or events
  –  Register listeners to handle data writing or
     commands
•  The Mihini agent takes care of
   network connection, buffering and
   reliable storage of unsent data, etc.
Asset management
local gh_asset = asset_mgt.newAsset("greenhouse")

gh_asset:start()

gh_asset:pushdata("sensors.temperature", 22, "now")
gh_asset:pushdata("sensors.humidity", 89, "hourly")
Device management
•  A Tree Manager presents device's
   data as
  –  variables,
  –  organized in a hierarchical tree,
  –  that can be read, written, and monitored for
     changes by user applications.
•  Standard paths for modem, network
   settings, …
Device management
local devicetree = require 'devicetree'
local APN        = 'system.cellular.apn.apn'
local RSSI       = 'system.cellular.link.rssi'

local apn = devicetree.get (APN)
log(LOG_NAME, "INFO", "Configure APN: %s", apn)

local function print_callback (values)
    for name, value in pairs(values) do
        log (LOG_NAME, "INFO",
                " - Variable %s changed: %s",name, value)
    end
end

devicetree.register(RSSI, print_callback)

devicetree.set(APN, 'foo')
Application Management
•  Language-agnostic application
   container
  –  install/uninstall
  –  start/stop, auto-start on boot
  –  restart on failure
•  Agent handles over-the-air software
   download and update mechanism
•  Remote script execution
101
•  http://www.eclipse.org/proposals/
   technology.mihini
•  http://eclipse.org/mihini
•  Code will be available (very) soon
  –  Initial contribution is pending IP review at
     Eclipse
Let me
show you!
A very common use case
•  Greenhouse business
  –  Connect gardening equipment
  –  Remote monitoring of sensors
  –  Remote control


•  M2M Gateway not selected yet,
   neither is the rest of the equipment
   (PLCs)
m2m.eclipse.org   MQTT broker




             Raspberry Pi              Mobile phone



Modbus RTU

                humidity
             temperature
              illuminance


             light ON/OFF
Two Lua applications
      Embedded                       Mobile

                               Corona SDK
–  Uses Modbus library to    –  Subscribes to MQTT
   communicate w/ Arduino       messages
–  Collects sensor data/     –  Displays sensor data
   controls actuators           with a fancy UI
–  Publishes MQTT messages   –  Publish command to
–  Subscribe to commands        switch on/off the light
Telco	
  

   M2M server
                      Billing	
     etc…	
  




 Rugged wireless
                    Mobile phones
 gateways

Modbus              Web applications

                    IT applications
control sensors &
actuators
                    …
Roadmap
•  Protocols
  –  M3DA (Micro M2M Data Access) – see the spec. at
     http://wiki.eclipse.org/Mihini/M3DA_Specification

•  REST API
  –  Ease the communication of 3rd party apps with
     the Agent
  –  Provide better tooling

•  Polyglot framework
  –  C and Java on their way
Join the party!
Thank you!

Mais conteúdo relacionado

Semelhante a Open source building blocks for the Internet of Things - Jfokus 2013

Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Benjamin Cabé
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Benjamin Cabé
 
Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Benjamin Cabé
 
Building an Open M2M community one step at a time
Building an Open M2M community one step at a timeBuilding an Open M2M community one step at a time
Building an Open M2M community one step at a timeBenjamin Cabé
 
Securing IoT Applications
Securing IoT Applications Securing IoT Applications
Securing IoT Applications WSO2
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBenjamin Cabé
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshopNitesh Malviya
 
From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...
From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...
From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...Rick G. Garibay
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformSasa Klopanovic
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformSasa Klopanovic
 
Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTHenrik Sjöstrand
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of ThingsPaul Fremantle
 
Industrial IoT Mayhem? Java IoT Gateways to the Rescue
Industrial IoT Mayhem? Java IoT Gateways to the RescueIndustrial IoT Mayhem? Java IoT Gateways to the Rescue
Industrial IoT Mayhem? Java IoT Gateways to the RescueEurotech
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoTIan Skerrett
 

Semelhante a Open source building blocks for the Internet of Things - Jfokus 2013 (20)

Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
 
Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013Using Eclipse and Lua for the Internet of Things - JAX2013
Using Eclipse and Lua for the Internet of Things - JAX2013
 
Building an Open M2M community one step at a time
Building an Open M2M community one step at a timeBuilding an Open M2M community one step at a time
Building an Open M2M community one step at a time
 
OWF12/Java Building an Open M2M community
OWF12/Java Building an Open M2M communityOWF12/Java Building an Open M2M community
OWF12/Java Building an Open M2M community
 
Securing IoT Applications
Securing IoT Applications Securing IoT Applications
Securing IoT Applications
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Smartblitzmerker
SmartblitzmerkerSmartblitzmerker
Smartblitzmerker
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshop
 
From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...
From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...
From the Internet of Things to Intelligent Systems A Developer's Primer - Gar...
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT Platform
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT Platform
 
Low Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTTLow Latency Mobile Messaging using MQTT
Low Latency Mobile Messaging using MQTT
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of Things
 
Industrial IoT Mayhem? Java IoT Gateways to the Rescue
Industrial IoT Mayhem? Java IoT Gateways to the RescueIndustrial IoT Mayhem? Java IoT Gateways to the Rescue
Industrial IoT Mayhem? Java IoT Gateways to the Rescue
 
Using open source for IoT
Using open source for IoTUsing open source for IoT
Using open source for IoT
 
Facebook_TIP_Nov
Facebook_TIP_NovFacebook_TIP_Nov
Facebook_TIP_Nov
 
Facebook and Telecom
Facebook and TelecomFacebook and Telecom
Facebook and Telecom
 

Mais de Benjamin Cabé

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018Benjamin Cabé
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?Benjamin Cabé
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Benjamin Cabé
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Benjamin Cabé
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016Benjamin Cabé
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handBenjamin Cabé
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Benjamin Cabé
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Benjamin Cabé
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTBenjamin Cabé
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Benjamin Cabé
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackBenjamin Cabé
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbookBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Benjamin Cabé
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014Benjamin Cabé
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleBenjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Benjamin Cabé
 
A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013Benjamin Cabé
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MBenjamin Cabé
 
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...Benjamin Cabé
 

Mais de Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 
A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2M
 
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
Open Source building blocks for the IoT/M2M market - M2M Innovation World Con...
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Open source building blocks for the Internet of Things - Jfokus 2013

  • 1. Open Source building blocks for the Internet of Things Benjamin  Cabé   JFokus  2013  
  • 2. Who I am •  Benjamin Cabé •  Open Source M2M Evangelist at Sierra Wireless •  Long-time Eclipse lover
  • 3. M2M? IoT? ❝ Technology that supports wired or wireless communication between devices
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Smart Pill Box Near field Patient Heartbeat Sensor Medical Services Gateway Clinical Trial Weight Internet Scale of Things Doctor Blood Pressure Blood Sugar
  • 9. However… The market is fragmented –  Hardware, software, protocols… all different, independent –  Lack of integration… between devices, to enterprise systems M2M development is complex –  Many different skills required… Hardware, Embedded, IT network, Telecom, web –  No common architectural guidelines Current options are closed –  Monolithic solutions… device specific, app specific, market specific –  Proprietary SDKs, protocols, potential vendor lock-in
  • 10.
  • 12. M2M embedded programming •  low-level C •  read sensor values •  memory •  control actuators management •  consolidate data •  multithreaded programming •  communicate
  • 13. Example: Sending an SMS int main() { unsigned char char1[10]; unsigned char char_buf[8]="AT+CSQn"; // unsigned char sms_buf[20] = "AT+CMGS="xxxxxxxxx"; int wc_fd; sms.send(
 /********* Init of serial port ************/ wc_fd = init_wc(wc_fd); '+33612345678’,
 sleep(3); //writing to serial port 'My SMS’
 ) write(wc_fd,char_buf,sizeof(char_buf)); usleep(40000); //reading from serial port read(wc_fd,char1,sizeof(char1)); sleep(2); close(wc_fd); return 0; } // end of main // initialization of serial port struct termios options; ttys5_fd = open("/dev/ttyS5", O_RDWR ); if (ttys5_fd < 0)
  • 15. What is Lua? •  High-level programming language •  Scripting •  Simple •  Extensible •  Portable
  • 16. Extensible by design •  Small –  Trivial syntax and reduced keyword set •  Simple but not stupid –  Simple enough for new users, powerful enough for advanced users (first-class functions, garbage collection, closures, tail calls, coercion, coroutines, metatables) •  Lua core is tiny –  Compiled size is ~150kB –  Lua uses libraries for its extensions
  • 17. Lua vs. other high-level languages •  Same core features as Python, Ruby, Javascript •  Better concurrency management –  Built-in – doesn’t rely on the OS •  Cutting-edge execution technology & performances
  • 18. Lua vs. other high-level languages •  Restricted set of libraries –  Stay simple, the developer brings his own •  Designed for C integration –  Performance –  Legacy
  • 19. Lua for embedded and M2M? •  High-level languages usually trade hardware resources for development & maintenance resources Lua allows to reconcile high-level languages accomplishments with embedded constraints
  • 20. You need an IDE! •  Project structure •  Documentation •  Syntax coloring •  Code templates •  Content assist •  Debugger •  Code navigation •  Remote development •  Code formatting •  Embedded interpreter June 2012: first release (0.8) Dec. 2012: 0.9 release June 2013: graduate w/ Kepler 50,000+ installations already! (Feb. 2013)
  • 21. Using Koneki LDT for remote Lua development DEMO
  • 22. 101 •  http://www.eclipse.org/koneki/ldt •  Download standalone IDE •  Or install in existing Eclipse –  from Juno repository (0.8.2) –  from nightly/milestones repositories (0.9+) •  Execution environments on Koneki wiki –  http://goo.gl/f6T80 •  Contact the team –  http://eclipse.org/forums/eclipse.koneki
  • 24. •  Messaging protocol •  Low-bandwidth / Low-power •  Payload agnostic •  Adjustable QoS •  Large ecosystem
  • 25. (optional) bridge broker broker topic/# topic/subtopic keepalive publish last will & testament subscribe username/password
  • 26. 101 •  http://eclipse.org/paho/ •  Eclipse Paho delivers clients for MQTT in C and Java –  http://eclipse.org/paho/download.php •  Lua client available soon –  https://github.com/geekscape/mqtt_lua •  MQTT view in Eclipse –  http://git.eclipse.org/c/paho/org.eclipse.paho.esf.git/ •  Free broker hosted at Eclipse: m2m.eclipse.org •  Contact the team –  paho-dev mailing-list
  • 27. Lua VM + MQTT client to go?
  • 28. Application framework for M2M •  Set of libraries providing building blocks to develop M2M applications: –  Serial and I/O management, –  Networking (FTP, HTTP, e-mail, …), –  GPS, –  Cryptography, –  Modbus, –  Local storage –  etc. http://www.eclipse.org/mihini
  • 29. Smart agent for M2M •  M2M data queues •  Network bearers •  Device management •  Application container •  Application configuration http://www.eclipse.org/mihini
  • 30. Asset management •  User applications use an API to communicate with Mihini –  Send data or events –  Register listeners to handle data writing or commands •  The Mihini agent takes care of network connection, buffering and reliable storage of unsent data, etc.
  • 31. Asset management local gh_asset = asset_mgt.newAsset("greenhouse") gh_asset:start() gh_asset:pushdata("sensors.temperature", 22, "now") gh_asset:pushdata("sensors.humidity", 89, "hourly")
  • 32. Device management •  A Tree Manager presents device's data as –  variables, –  organized in a hierarchical tree, –  that can be read, written, and monitored for changes by user applications. •  Standard paths for modem, network settings, …
  • 33. Device management local devicetree = require 'devicetree' local APN = 'system.cellular.apn.apn' local RSSI = 'system.cellular.link.rssi' local apn = devicetree.get (APN) log(LOG_NAME, "INFO", "Configure APN: %s", apn) local function print_callback (values) for name, value in pairs(values) do log (LOG_NAME, "INFO", " - Variable %s changed: %s",name, value) end end devicetree.register(RSSI, print_callback) devicetree.set(APN, 'foo')
  • 34. Application Management •  Language-agnostic application container –  install/uninstall –  start/stop, auto-start on boot –  restart on failure •  Agent handles over-the-air software download and update mechanism •  Remote script execution
  • 35. 101 •  http://www.eclipse.org/proposals/ technology.mihini •  http://eclipse.org/mihini •  Code will be available (very) soon –  Initial contribution is pending IP review at Eclipse
  • 37. A very common use case •  Greenhouse business –  Connect gardening equipment –  Remote monitoring of sensors –  Remote control •  M2M Gateway not selected yet, neither is the rest of the equipment (PLCs)
  • 38. m2m.eclipse.org MQTT broker Raspberry Pi Mobile phone Modbus RTU humidity temperature illuminance light ON/OFF
  • 39. Two Lua applications Embedded Mobile Corona SDK –  Uses Modbus library to –  Subscribes to MQTT communicate w/ Arduino messages –  Collects sensor data/ –  Displays sensor data controls actuators with a fancy UI –  Publishes MQTT messages –  Publish command to –  Subscribe to commands switch on/off the light
  • 40. Telco   M2M server Billing   etc…   Rugged wireless Mobile phones gateways Modbus Web applications IT applications control sensors & actuators …
  • 41. Roadmap •  Protocols –  M3DA (Micro M2M Data Access) – see the spec. at http://wiki.eclipse.org/Mihini/M3DA_Specification •  REST API –  Ease the communication of 3rd party apps with the Agent –  Provide better tooling •  Polyglot framework –  C and Java on their way