title 44pt title iot quickstart - arm architecture · iot quickstart maggie mei austin blackstone...
TRANSCRIPT
Title 44pt Title Case
Affiliations 24pt sentence case
20pt sentence case
© ARM 2016
IoT quickstart
Maggie MeiAustin Blackstone
ARM mbed Connect / Shenzhen, China
Applications Engineer / ARM
December 5th, 2016
© ARM 2016 2
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Topics
§ Overview§ mbed URI format§ LWM2M resources§ REST API
§ mbed Client endpoint example§ mbed Connector web app example
§ Node.js or python
§ Challenges
© ARM 2016 3
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Prerequisites
§ Free mbed developer account§ Python 2.7.*§ Node.js§ Git§ mbed Windows serial driver§ Clone example code
§ git clone https://github.com/armmbed/mbed-connector-api-python-quickstart.git § git clone https://github.com/armmbed/mbed-connector-api-node-quickstart.git
© ARM 2016
Using mbed Device Connector
HTTP/REST
● GET● PUT● POST
mbed DeviceConnector
LWM2M
CoAP
Web appmbed Client
White background slide version is easier to read
© ARM 2016 5
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Using mbed Device Connector
HTTP/REST
● GET● PUT● POST
mbed DeviceConnector
LWM2M
CoAP
Web appmbed Client
© ARM 2016 6
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Data model
§ Domain§ Endpoint
§ ResourceDomain
Endpoint₄Endpoint₃Endpoint₂Endpoint₁
R₁ R₂ R₁ R₁ R₁R₂ R₂R₃
/endpoints/endpointName/{LWM2M Resource}
© ARM 2016 7
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Resource: LWM2M data model
Hierarchy{ObjectID}/(ObjectInstance)/{ResourceID}
/3303/0/5602/3303/0/5601/3303/0/5700
ex) temperature sensor object/temp/0/maxValue/temp/0/minValue/temp/0/sensorValue
R
Endpoint
Endpoint
/3303/0/5602
/3303/0/5601
/3303/0/5700
© ARM 2016 8
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
LWM2M Spec
http://technical.openmobilealliance.org/Technical/technical-information/omna/lightweight-m2m-lwm2m-object-registry
§ XML§ Detail
© ARM 2016 9
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Example: LWM2M
Example: Get temperature and humidity sensor data(assume 1 sensor per endpoint)
Humidity Resource/3304/0/5700
Temperature Resource/3303/0/5700
Temperature ObjectID = 3303Humidity ObjectID = 3304Sensor Value ResourceID = 5700
© ARM 2016 10
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Takeaway
Path describes data§ How you access the data tells you what the data is§ URL-based accessors§ ResourceID can have same number but different meaning, depending on
object ID
© ARM 2016
mbed Client code
Let’s build an endpoint!
mbed DeviceConnector
LWM2M
CoAP
mbed Client
© ARM 2016 12
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
mbed Client code
HTTP/REST
● GET● PUT● POST
mbed DeviceConnector
LWM2M
CoAP
Web appmbed Client
Let’s build an endpoint!
© ARM 2016 13
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
mbed Client endpoint code
1. Plug in board to computer2. Open mbed.html on board3. Import code to online compiler: mbed.com/s/mc20164. Get security certificate from connector.mbed.com/#credentials5. Paste into security.h6. Compile / download code7. Drag and drop code to board8. Turn on board
© ARM 2016 14
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Serial console
1. Open CoolTerm2. Options -> Baudrate -> 115200 -> OK3. Connect4. Reset board
© ARM 2016 15
Text 54pt sentence case API ConsoleView endpoint data on connector website
© ARM 2016 16
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
connector.mbed.com/#console
© ARM 2016 17
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Use API Console
§ GET number of button presses ‘/3200/0/5501’§ POST to blink LED ‘/3201/0/5850’§ PUT to /3201/0/5853 change pattern of LED ‘1000:500:1000:500:1000:500’
© ARM 2016
Web app
Create python or Node.js web app
HTTP/REST
● GET● PUT● POST
mbed Device Connector
Web app
© ARM 2016 19
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Web app
HTTP/REST
● GET● PUT● POST
mbed DeviceConnector
LWM2M
CoAP
Web appmbed Client
Create python or Node.js web app
© ARM 2016 20
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Node.js web app
1. Open node.app in editor2. Get access key from connector.mbed.com/#accesskeys3. Replace ‘Change Me’ with access key in quotes4. Save5. Run command `npm install`6. Run app `node app.js`7. Open web browser to 127.0.0.1:80808. See the app run!
© ARM 2016 21
Text 54pt sentence case ChallengeLet’s modify the code!
© ARM 2016 22
Title 40pt Title Case
Bullets 24pt sentence casebullets 20pt sentence case
Challenge 1 & 2
§ Challenge 1 – Add a resource to endpoint§ Add resource to change light color
§ Hint: LED1, LED2, LED3§ Compile; load code to board§ Verify in API Console
§ Challenge 2 – Add resource to web app§ Modify web app code to accept input and send value to device
© ARM 2016
Questions?
Ask anything about mbed Client or mbed Device Connector?