Arduinos, application servers, and me: Adventures in and out of the cloud
-
Upload
wasdev-community -
Category
Technology
-
view
657 -
download
0
Transcript of Arduinos, application servers, and me: Adventures in and out of the cloud
© 2013 IBM Corporation@holly_cummins
“Computers in the future may weigh no more than 1.5 tons.”
!Popular Mechanics,
1949 !
© 2013 IBM Corporation@holly_cummins
“I think there is a world market for maybe five computers.”
Thomas Watson chairman of IBM
1943
© 2013 IBM Corporation@holly_cummins
Why care about the Internet of Things?
It’s the future.“This could really benefit my business.”
© 2013 IBM Corporation@holly_cummins
Why care about the Internet of Things?
It’s the future.“This could really benefit my business.”
“This is so FUN and COOL and OOH I made it LIGHT UP!”
© 2013 IBM Corporation@holly_cummins
Working with IoT: step 1
“No, I did NOT mean jot. I meant iot. Gah!”
© 2013 IBM Corporation@holly_cummins
Working with IoT: step 1
“No, I did NOT mean jot. I meant iot. Gah!”
© 2013 IBM Corporation@holly_cummins
Taxonomy of embedded devices
MicrocontrollerSort-of-a-computer
Microprocessor
© 2013 IBM Corporation@holly_cummins
Taxonomy of embedded devices
MicrocontrollerSort-of-a-computer
MicroprocessorReally-a-computer
© 2013 IBM Corporation@holly_cummins
The microcontroller zoo
PIC (£2)Arduino (£23)Arduino-compatible (£9)
© 2013 IBM Corporation@holly_cummins
The microcontroller zoo
PIC (£2)Arduino (£23)Arduino-compatible (£9)NetDuino (£48)
© 2013 IBM Corporation@holly_cummins
The microcontroller zoo
PIC (£2)Arduino (£23)Arduino-compatible (£9)NetDuino (£48).NET micro platform
© 2013 IBM Corporation@holly_cummins
Arduino No on-board ethernet
Thing, but no internetCan buy an ethernet shield (£10)
© 2013 IBM Corporation@holly_cummins
Arduino No on-board ethernet
Thing, but no internetCan buy an ethernet shield (£10)Can buy wi-fi shield (£36, and no WPA2)
© 2013 IBM Corporation@holly_cummins
Arduino No on-board ethernet
Thing, but no internetCan buy an ethernet shield (£10)Can buy wi-fi shield (£36, and no WPA2)Can buy a raspberry pi (£20)
© 2013 IBM Corporation@holly_cummins
Arduino No on-board ethernet
Thing, but no internetCan buy an ethernet shield (£10)Can buy wi-fi shield (£36, and no WPA2)Can buy a raspberry pi (£20)Can find a raspberry pi in a drawer (free!)
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storage
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storageNo pins
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storageNo pins
Netduino (£48)
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storageNo pins
Netduino (£48).NET based
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storageNo pins
Netduino (£48).NET based
pcDuino (£50)
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storageNo pins
Netduino (£48).NET based
pcDuino (£50)BeagleBone black (£42)
© 2013 IBM Corporation@holly_cummins
The single board computer zoo
Rasberry pi (£25)No wi-fiNo flash storageNo pins
Netduino (£48).NET based
pcDuino (£50)BeagleBone black (£42)
© 2013 IBM Corporation@holly_cummins
Raspberry Pi£25Huge community
Well-supportedSlow
Limited RAMOld-model processor
© 2013 IBM Corporation@holly_cummins
Raspberry Pi£25Huge community
Well-supportedSlow
Limited RAMOld-model processorSD storage
© 2013 IBM Corporation@holly_cummins
Raspberry Pi£25Huge community
Well-supportedSlow
Limited RAMOld-model processorSD storage
Needs Arduino for IoT applications
© 2013 IBM Corporation@holly_cummins
Raspberry Pi£25Huge community
Well-supportedSlow
Limited RAMOld-model processorSD storage
Needs Arduino for IoT applicationsUSB is not my friend
© 2013 IBM Corporation@holly_cummins
Raspberry Pi£25Huge community
Well-supportedSlow
Limited RAMOld-model processorSD storage
Needs Arduino for IoT applicationsUSB is not my friend
Insufficient power for reliable wi-fi
© 2013 IBM Corporation@holly_cummins
Raspberry Pi£25Huge community
Well-supportedSlow
Limited RAMOld-model processorSD storage
Needs Arduino for IoT applicationsUSB is not my friend
Insufficient power for reliable wi-fiContention if used for wi-fi and Arduino
© 2013 IBM Corporation@holly_cummins
pcDuino£50Powerful
1 GHz ARM A7Cortex Dual core1 GB RAM4 GB Flash Storage
© 2013 IBM Corporation@holly_cummins
pcDuino£50Powerful
1 GHz ARM A7Cortex Dual core1 GB RAM4 GB Flash Storage
On-board wi-fi
© 2013 IBM Corporation@holly_cummins
pcDuino£50Powerful
1 GHz ARM A7Cortex Dual core1 GB RAM4 GB Flash Storage
On-board wi-fiArduino-compatible pins (sort of)
© 2013 IBM Corporation@holly_cummins
pcDuino£50Powerful
1 GHz ARM A7Cortex Dual core1 GB RAM4 GB Flash Storage
On-board wi-fiArduino-compatible pins (sort of)
© 2013 IBM Corporation@holly_cummins
pcDuino£50Powerful
1 GHz ARM A7Cortex Dual core1 GB RAM4 GB Flash Storage
On-board wi-fiArduino-compatible pins (sort of)Connectors for battery (sort of)
© 2013 IBM Corporation@holly_cummins
pcDuino£50Powerful
1 GHz ARM A7Cortex Dual core1 GB RAM4 GB Flash Storage
On-board wi-fiArduino-compatible pins (sort of)Connectors for battery (sort of)
© 2013 IBM Corporation@holly_cummins
Going mobilePopular
embeddable battery
PcDuino battery
interface
© 2013 IBM Corporation@holly_cummins
Going mobilePopular
embeddable battery
PcDuino battery
interface
© 2013 IBM Corporation@holly_cummins
Going mobilePopular
embeddable battery
PcDuino battery
interface
JST-PH
© 2013 IBM Corporation@holly_cummins
Going mobilePopular
embeddable battery
PcDuino battery
interface
JST-PH
© 2013 IBM Corporation@holly_cummins
Going mobilePopular
embeddable battery
PcDuino battery
interface
JST-PHJST-SH
© 2013 IBM Corporation@holly_cummins
BeagleBone black£42!1 GHz processor!Not arduino-compatible out of the box
© 2013 IBM Corporation@holly_cummins
Arduino Yún
© 2013 IBM Corporation@holly_cummins
Arduino Yún £57
© 2013 IBM Corporation@holly_cummins
Arduino Yún £57A microcontroller …
© 2013 IBM Corporation@holly_cummins
Arduino Yún £57A microcontroller …sharing a chip with an Atheros microprocessor
© 2013 IBM Corporation@holly_cummins
Arduino Yún £57A microcontroller …sharing a chip with an Atheros microprocessor
… that runs Linux (limited)
© 2013 IBM Corporation@holly_cummins
Arduino Yún £57A microcontroller …sharing a chip with an Atheros microprocessor
… that runs Linux (limited)… and has WiFi and ethernet
© 2013 IBM Corporation@holly_cummins
Embedded devices are changing
Modern microcontrollers are more powerful than microprocessors from a few years ago
© 2013 IBM Corporation@holly_cummins
Why is more powerful better?
You can do more!!You can know less!
© 2013 IBM Corporation@holly_cummins
Why is more powerful better?
You can do more!!You can know less!different things
© 2013 IBM Corporation@holly_cummins
Why is less powerful better
SmallerLower power consumptionCheaper!
© 2013 IBM Corporation@holly_cummins
Why is less powerful better
SmallerLower power consumptionCheaper!Can buy a PIC microcontroller for £2
© 2013 IBM Corporation@holly_cummins
Why is more powerful better?
You can have an application server!!JPA!Rest!WebSockets!CDI
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download60 MB footprint for biggish JEE app
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download60 MB footprint for biggish JEE appStarts in under 5s
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download60 MB footprint for biggish JEE appStarts in under 5s
Entirely modular and dynamic
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download60 MB footprint for biggish JEE appStarts in under 5s
Entirely modular and dynamicPowered by OSGi …
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download60 MB footprint for biggish JEE appStarts in under 5s
Entirely modular and dynamicPowered by OSGi …(originally designed for embedded systems)
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
A great fit for embeddablesVery very lightweight
50 MB download60 MB footprint for biggish JEE appStarts in under 5s
Entirely modular and dynamicPowered by OSGi …(originally designed for embedded systems)
No restarts!
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
Free toolsFree for developmentNew licensing: free for small-scale production
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
Free toolsFree for developmentNew licensing: free for small-scale productionUp 2 GB RAM free per organisation
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
Free toolsFree for developmentNew licensing: free for small-scale productionUp 2 GB RAM free per organisationA great fit for embedables
© 2013 IBM Corporation@holly_cummins
WebSphere Liberty Profile
Free toolsFree for developmentNew licensing: free for small-scale productionUp 2 GB RAM free per organisationA great fit for embedables
Unlikely to use 2 GB RAM on a raspberry pi
© 2013 IBM Corporation@holly_cummins
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density
© 2013 IBM Corporation@holly_cummins
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Enable and disable function
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Enable and disable functionFor extra points, do it
dynamically
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Enable and disable functionFor extra points, do it
dynamicallyEasy install
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Enable and disable functionFor extra points, do it
dynamicallyEasy install
Easy uninstall
Cloud-Embeddable convergence
Small downloadSmall memory
footprint
Density Elasticity
© 2013 IBM Corporation@holly_cummins
Managing headless devices
Most single-board computers accessible with HDMI display and USB keyboard.
© 2013 IBM Corporation@holly_cummins
Managing headless devices
Most single-board computers accessible with HDMI display and USB keyboard.
Works fine…
© 2013 IBM Corporation@holly_cummins
Managing headless devices
Most single-board computers accessible with HDMI display and USB keyboard.
Works fine…If you have a display and
cable and keyboard
© 2013 IBM Corporation@holly_cummins
Managing headless devices
Most single-board computers accessible with HDMI display and USB keyboard.
Works fine…If you have a display and
cable and keyboardIf the display drivers
support the display
© 2013 IBM Corporation@holly_cummins
Managing headless devices
Most single-board computers accessible with HDMI display and USB keyboard.
Works fine…If you have a display and
cable and keyboardIf the display drivers
support the display
© 2013 IBM Corporation@holly_cummins
Finding the IP addressmy-mac:~ holly$ ifconfig | grep -A3 bridge100bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=3<RXCSUM,TXCSUM> ether 3e:07:54:e0:26:64 inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255!my-mac:~ holly$ nmap -sn 192.168.2.0/24!Starting Nmap 6.47 ( http://nmap.org ) at 2015-02-28 16:26 GMTStrange error from connect (65):No route to hostNmap scan report for 192.168.2.3Host is up (0.00056s latency).Nmap done: 256 IP addresses (1 host up) scanned in 4.16 seconds
© 2013 IBM Corporation@holly_cummins
Ta-daa!
Presenting: The WebSphere Sphere
(“the cuddly application server”)
© 2013 IBM Corporation@holly_cummins
Um. But it’s lumpy.Software faults can be corrected without re-typing the whole program.
© 2013 IBM Corporation@holly_cummins
Um. But it’s lumpy.Software faults can be corrected without re-typing the whole program.
Lucky software engineers.
© 2013 IBM Corporation@holly_cummins
Um. But it’s lumpy.Software faults can be corrected without re-typing the whole program.
Lucky software engineers.Iterative development of physical things is hard.
© 2013 IBM Corporation@holly_cummins
Architecture
Sensors
SSID: WebSphereembedded
application server
© 2013 IBM Corporation@holly_cummins
Soft circuits
Conductive thread !Stainless steel!Sewable!
£6.78
© 2013 IBM Corporation@holly_cummins
Soft-hard connections
Normal jumper lead!Strip connector off one side!Solder to sewable eye
© 2013 IBM Corporation@holly_cummins
The physical worldShortsExtra-bad on a pcDuino, because they take down whole computer
© 2013 IBM Corporation@holly_cummins
The physical worldShortsExtra-bad on a pcDuino, because they take down whole computer
Loose connections
© 2013 IBM Corporation@holly_cummins
The physical worldShortsExtra-bad on a pcDuino, because they take down whole computer
Loose connectionsExtra bad in something sealed
© 2013 IBM Corporation@holly_cummins
Shields
Daughter-boards for ArduinoRe-arrange pinsProvide extra function
© 2013 IBM Corporation@holly_cummins
Shields
Daughter-boards for ArduinoRe-arrange pinsProvide extra functionProvide mechanical protection if a computer is crammed inside a ball
© 2013 IBM Corporation@holly_cummins
Let’s have a play
http://10.12.5.15:9080/sphere
© 2013 IBM Corporation@holly_cummins
But is it really IoT?Definitely embedded.Very very embedded.
One thing.
© 2013 IBM Corporation@holly_cummins
But is it really IoT?Definitely embedded.Very very embedded.
One thing. Network, but not internet.
© 2013 IBM Corporation@holly_cummins
But is it really IoT?Definitely embedded.Very very embedded.
One thing. Network, but not internet.No machine-to-machine.
© 2013 IBM Corporation@holly_cummins
M2MMQTT!Lightweight messaging protocol!OASIS standard!Widely supported!Widely used
© 2013 IBM Corporation@holly_cummins
Bluemix and IoT foundation // parse VCAP_SERVICES String VCAP_SERVICES = System.getenv("VCAP_SERVICES");! JSONObject vcap = new JSONObject(VCAP_SERVICES); JSONArray json = vcap.getJSONArray("iotf-service"); JSONObject credentials = json.getJSONObject(0).getJSONObject( "credentials"); String host = (String) credentials.get("mqtt_host"); Integer port = (Integer) credentials.get("mqtt_u_port"); …! MqttClient client = new MqttClient(uri, id); MqttConnectOptions opts = new MqttConnectOptions(); opts.setUserName(username); opts.setPassword(password.toCharArray()); client.connect(opts); client.setCallback(this); client.subscribe("iot-2/type/+/id/+/evt/+/fmt/+");