Arduinos, Application Servers, and me Holly Cummins @holly_cummins © 2015 IBM Corporation

#arduinoappserver @holly_cummins

? #arduinoappserver @holly_cummins

#arduinoappserver @holly_cummins

#arduinoappserver @holly_cummins

#arduinoappserver @holly_cummins

#arduinoappserver @holly_cummins

#arduinoappserver @holly_cummins

“I think there is a world market for maybe five computers.” Thomas Watson chairman of IBM 1943 #arduinoadventures @holly_cummins

Then: HARDware #arduinoadventures @holly_cummins

Now: Everyware #arduinoadventures @holly_cummins

Next: Connected-ware #arduinoadventures @holly_cummins

Why care about the Internet of Things? #arduinoadventures @holly_cummins

Why care about the Internet of Things? This could really benefit my business #arduinoadventures @holly_cummins

Why care about the Internet of Things? This could really benefit my business #arduinoadventures This is so FUN and COOL and OOH I made it LIGHT UP!” @holly_cummins

Poll-time. #arduinoadventures @holly_cummins

Hmm. Can we be more precise? #arduinoadventures @holly_cummins

A bit of textile engineering. #arduinoadventures @holly_cummins

A bit more textile engineering. #arduinoadventures @holly_cummins

Ta-daa! #arduinoadventures @holly_cummins

Ta-daa! Presenting: The WebSphere Sphere #arduinoadventures @holly_cummins

Ta-daa! Presenting: The WebSphere Sphere (“the cuddly application server”) #arduinoadventures @holly_cummins

Remind you of anything? #arduinoadventures @holly_cummins

Not really. It’s very lumpy, isn’t it? #arduinoadventures @holly_cummins

Software faults can be corrected without re-typing the whole program. #arduinoadventures @holly_cummins

It’s a computer case #arduinoadventures @holly_cummins

Interfacing the ball to the computer LED sequins #arduinoadventures @holly_cummins

Soft circuits #arduinoadventures @holly_cummins

Soft circuits Conductive thread #arduinoadventures @holly_cummins

Soft circuits Conductive thread £6.78 #arduinoadventures @holly_cummins

Soft circuits Stainless steel Conductive thread £6.78 #arduinoadventures @holly_cummins

Soft circuits Stainless steel Conductive thread £6.78 #arduinoadventures Solderable @holly_cummins

Soft circuits Stainless steel Conductive thread £6.78 Solderable Sewable #arduinoadventures @holly_cummins

Architecture Sensors embedded application server #arduinoadventures @holly_cummins

Let’s have a play SSID: sphere password: websphere #arduinoadventures @holly_cummins

Let’s have a play http://192.168.8.1/sphere SSID: sphere password: websphere #arduinoadventures @holly_cummins

The physical world useful stuff #arduinoadventures @holly_cummins

The physical world useful stuff #arduinoadventures @holly_cummins

The physical world useful stuff Short #arduinoadventures @holly_cummins

The physical world useful stuff Short pcDuino #arduinoadventures @holly_cummins

The physical world useful stuff Short pcDuino #arduinoadventures @holly_cummins

The physical world useful stuff #arduinoadventures @holly_cummins

The physical world useful stuff #arduinoadventures @holly_cummins

The physical world useful stuff Loose connection #arduinoadventures @holly_cummins

The physical world sealed unit useful stuff Loose connection #arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

“Loose” connection #arduinoadventures @holly_cummins

What’s running it? #arduinoadventures @holly_cummins

Ubiquitous computing++ #arduinoadventures @holly_cummins

Ubiquitous computing++ #arduinoadventures @holly_cummins

Cloud-Embeddable convergence #arduinoadventures @holly_cummins

Cloud-Embeddable convergence Density #arduinoadventures @holly_cummins

Cloud-Embeddable convergence Density Small download Small memory footprint #arduinoadventures @holly_cummins

Cloud-Embeddable convergence Density Elasticity Small download Small memory footprint #arduinoadventures @holly_cummins

Cloud-Embeddable convergence Density Elasticity Enable and disable function …dynamically Small download Small memory footprint #arduinoadventures Easy install Easy uninstall @holly_cummins

But is it really IoT? #arduinoadventures @holly_cummins

But is it really IoT? #arduinoadventures @holly_cummins

But is it really IoT? Thing #arduinoadventures @holly_cummins

But is it really IoT? Embedded thing #arduinoadventures @holly_cummins

But is it really IoT? Very very embedded thing #arduinoadventures @holly_cummins

But is it really IoT? Network, but not internet Very very embedded thing #arduinoadventures @holly_cummins

But is it really IoT? #arduinoadventures @holly_cummins

But is it really IoT? No machine-tomachine #arduinoadventures @holly_cummins

M2M #arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

Revised architecture #arduinoadventures @holly_cummins

Revised architecture IBM IoT Foundation #arduinoadventures @holly_cummins

Revised architecture IBM IoT Foundation #arduinoadventures Same source code @holly_cummins

http://sphere.mybluemix.net/sphere #arduinoadventures @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/+”); #arduinoadventures @holly_cummins

Working with IoT #arduinoadventures @holly_cummins

Working with IoT: step 1 #arduinoadventures @holly_cummins

Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!” #arduinoadventures @holly_cummins

Working with IoT: step 1 “No, I did NOT mean jot. I meant iot. Gah!” #arduinoadventures @holly_cummins

Working with IoT: step 2 #arduinoadventures @holly_cummins

Working with IoT: step 2 Get some kit #arduinoadventures @holly_cummins

Taxonomy of embedded devices #arduinoadventures @holly_cummins

Taxonomy of embedded devices Microcontroller #arduinoadventures @holly_cummins

Taxonomy of embedded devices Microcontroller Microprocessor #arduinoadventures @holly_cummins

Taxonomy of embedded devices Microcontroller Microprocessor Sort-of-a-computer #arduinoadventures @holly_cummins

Taxonomy of embedded devices Microcontroller Microprocessor Sort-of-a-computer Really-a-computer #arduinoadventures @holly_cummins

The microcontroller zoo #arduinoadventures @holly_cummins

The microcontroller zoo #arduinoadventures @holly_cummins

The microcontroller zoo PIC £2 #arduinoadventures @holly_cummins

The microcontroller zoo PIC £2 NetDuino £48 #arduinoadventures @holly_cummins

The microcontroller zoo Arduino £23 PIC £2 NetDuino £48 #arduinoadventures @holly_cummins

The microcontroller zoo Arduino £23 Arduino-compatible £9 #arduinoadventures PIC £2 NetDuino £48 @holly_cummins

Arduino #arduinoadventures @holly_cummins

Arduino £23 #arduinoadventures @holly_cummins

Arduino Ethernet £23 #arduinoadventures @holly_cummins

Arduino £23 #arduinoadventures @holly_cummins

Arduino NO Ethernet £23 #arduinoadventures @holly_cummins

Arduino NO Ethernet NO Wi-fi £23 #arduinoadventures @holly_cummins

Arduino NO Ethernet NO Wi-fi £23 #arduinoadventures Internet of Things @holly_cummins

Arduino NO Ethernet NO Wi-fi £23 #arduinoadventures Things @holly_cummins

Connecting an Arduino to the Internet #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet Ethernet shield #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £10 #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £10 #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £10 #arduinoadventures Wi-fi shield @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £10 Wi-fi shield £36 #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £10 Wi-fi shield £36 #arduinoadventures @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £10 Wi-fi shield £36 #arduinoadventures Raspberry pi @holly_cummins

Connecting an Arduino to the Internet Ethernet shield £25 £10 Wi-fi shield £36 #arduinoadventures Raspberry pi @holly_cummins

Connecting an Arduino to the Internet Ethernet shield free £10 Wi-fi shield £36 #arduinoadventures Raspberry pi @holly_cummins

#arduinoadventures @holly_cummins

Managing headless devices #arduinoadventures @holly_cummins

Managing headless devices #arduinoadventures @holly_cummins

Managing headless devices HDMI display #arduinoadventures @holly_cummins

Managing headless devices HDMI display USB keyboard #arduinoadventures @holly_cummins

Managing headless devices #arduinoadventures @holly_cummins

Managing headless devices #arduinoadventures @holly_cummins

Managing headless devices #arduinoadventures @holly_cummins

Managing headless devices #arduinoadventures @holly_cummins

Workflow for “pi and seek” #arduinoadventures @holly_cummins

Workflow for “pi and seek” Ethernet cable #arduinoadventures @holly_cummins

Workflow for “pi and seek” Ethernet cable DHCP #arduinoadventures @holly_cummins

Workflow for “pi and seek” Ethernet cable Network sharing DHCP #arduinoadventures @holly_cummins

Getting a connection #arduinoadventures @holly_cummins

Finding the IP address my-mac:~ holly$ ifconfig | grep -A3 bridge100 bridge100: 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 GMT Strange error from connect (65):No route to host Nmap scan report for 192.168.2.3 Host is up (0.00056s latency). Nmap done: 256 IP addresses (1 host up) scanned in 4.16 seconds #arduinoadventures @holly_cummins

The single board computer zoo #arduinoadventures @holly_cummins

Raspberry Pi #arduinoadventures @holly_cummins

Raspberry Pi £25 #arduinoadventures @holly_cummins

Raspberry Pi GPIO pins SD storage Oldish CPU £25 RAM (some) USB #arduinoadventures @holly_cummins

Raspberry Pi GPIO pins SD storage Oldish CPU £25 RAM (some) USB (not my friend) #arduinoadventures @holly_cummins

Raspberry Pi SD storage GPIO pins (no analog pins) Oldish CPU £25 RAM (some) USB (not my friend) #arduinoadventures @holly_cummins

Raspberry Pi 2 #arduinoadventures @holly_cummins

Raspberry Pi 2 £30 #arduinoadventures @holly_cummins

Raspberry Pi 2 GPIO pins SD storage New CPU £30 RAM (more) USB #arduinoadventures @holly_cummins

Raspberry Pi 2 GPIO pins SD storage New CPU £30 RAM (more) USB (more) #arduinoadventures @holly_cummins

Raspberry Pi 2 SD storage GPIO pins (no analog pins) New CPU £30 RAM (more) USB (more) #arduinoadventures @holly_cummins

BeagleBone black #arduinoadventures @holly_cummins

BeagleBone black £42 #arduinoadventures @holly_cummins

BeagleBone black Ethernet 1 GHz CPU 2 Microcontrollers £42 #arduinoadventures 4 GB flash storage 512 MB RAM @holly_cummins

Arduino Yún #arduinoadventures @holly_cummins

Arduino Yún £57 #arduinoadventures @holly_cummins

Arduino Yún Atheros microprocessor Ethernet Arduino microcontroller Wi-fi £57 #arduinoadventures @holly_cummins

pcDuino #arduinoadventures @holly_cummins

pcDuino #arduinoadventures @holly_cummins

pcDuino £60 #arduinoadventures @holly_cummins

pcDuino Battery connector Wi-fi Dual-core CPU 4 GB flash storage £60 #arduinoadventures “Arduino-ish” pins 1 GB RAM @holly_cummins

#arduinoadventures @holly_cummins

PcDuino battery interface #arduinoadventures @holly_cummins

Popular embeddable battery PcDuino battery interface #arduinoadventures @holly_cummins

Popular embeddable battery PcDuino battery interface #arduinoadventures @holly_cummins

Popular embeddable battery JST-PH PcDuino battery interface #arduinoadventures @holly_cummins

Popular embeddable battery JST-PH PcDuino battery interface #arduinoadventures @holly_cummins

Popular embeddable battery JST-PH JST-SH PcDuino battery interface #arduinoadventures @holly_cummins

“The board features a difficult-to-get JST-SH connector. You won’t find a battery with a ready-made fivepin JST-SH connector. ” http://wt.tuxomania.net #arduinoadventures @holly_cummins

“The board features a difficult-to-get JST-SH connector. You won’t find a battery with a ready-made fivepin JST-SH connector. ” !&!^@*! http://wt.tuxomania.net #arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

Power. #arduinoadventures @holly_cummins

You can do more. #arduinoadventures @holly_cummins

You can know less. #arduinoadventures @holly_cummins

You can know different things. #arduinoadventures @holly_cummins

You can know different things. #arduinoadventures @holly_cummins

But … #arduinoadventures @holly_cummins

£30 #arduinoadventures @holly_cummins

£2 #arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

Size #arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

A power brick #arduinoadventures @holly_cummins

A power brick (sorry) #arduinoadventures @holly_cummins

Then again … #arduinoadventures @holly_cummins

You can have an application server! #arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

#arduinoadventures @holly_cummins

Any questions? www.wasdev.net www.wasdev.net @holly_cummins #arduinoadventures @holly_cummins