SlideShare a Scribd company logo
1 of 29
Download to read offline
 
T3
Session	
  
4/16/2015	
  11:00	
  AM	
  
	
  
	
  
	
  
"The Software Developers Guide
to Prototyping Wearable
Devices"
	
  
Presented by:
Lance Gleason
Polyglot Programming Inc.	
  
	
  
	
  
	
  
	
  
	
  
Brought	
  to	
  you	
  by:	
  
	
  
	
  
	
  
340	
  Corporate	
  Way,	
  Suite	
  300,	
  Orange	
  Park,	
  FL	
  32073	
  
888-­‐268-­‐8770	
  ·∙	
  904-­‐278-­‐0524	
  ·∙	
  sqeinfo@sqe.com	
  ·∙	
  www.sqe.com
Lance Gleason
Polyglot Programming Inc.
Lance Gleason has been a computer nut ever since his dad bought him a
computer when he was a kid. After getting a BS and MS in Computer Science,
he worked on a number of large projects as a Java developer and architect for
companies like Kodak, CNN, and GE. These days he is the CEO and founder of
Polyglot Programming LLC. which focuses on Ruby, mobile and wearable
software development. Lance regularly speaks about Ruby/wearable
development at conferences around the world and is the co-organizer of the
Atlanta Sensors and Startups Meetup, Ruby DCamp ZA, and Rubyfuza (the only
Ruby conference in Africa). He is known to practice interspecies pair (purr)
programming with his orange tabby, Allie, and when he’s not writing code, you
will find him diving with sharks, trekking through Chernobyl, sampling wine,
cheering on the Springboks or perfecting his biltong recipe. Follow Lance on
Twitter @lgleasain.	
  
Introductions
Twitter @lgleasain
Github lgleasain
www.lancegleason.com
www.polyglotprogrammincinc.com
lgleason@polyglotprogramminginc.com
The Software Developers Guide to Prototyping Wearable Devices
The Software Developers Guide to Prototyping Wearable Devices
The Software Developers Guide to Prototyping Wearable Devices
http://www.polyglotprogramminginc.com/purr-
programming-2-0/
The Software Developers Guide to Prototyping Wearable Devices
Software
Options
Pros
•Extensible
•Common Pinouts
Cons
• Impossible to create a at
scale prototype
• Many extensions overkill for
wearables
Pros
• Inexpensive
• Available GPS Module
• Low Power
• Aduino Based
• Lots of Support
Cons
• No easy way to integrate Bluetooth
or Wifi
• Requires a physical connection to
get data
• Things like an accelerometer require
a separate component
The Software Developers Guide to Prototyping Wearable Devices
The Software Developers Guide to Prototyping Wearable Devices
Features
• Bluetooth Support
• Robust API for Android and IOS
• Built in Sensors (temperature,
accelerometer etc.)
• Built in support for rechargeable
batteries
Specs
• ! Nordic Semiconductor nRF51822 BLE SoC
• ! 2.4 GHz transceiver
• ! ARM®Cortex™-M0 32 bit processor
• ! 256 kB flash program memory
• ! 16 kB RAM
• ! 8/9/10 bit ADC
Specs Continued
• Accelerometer
• Temperature Sensor
• Push Button Switch
• Bright LED
• Driver for vibration motor
• micro usb chargable
• I2C bus, and support for 4 digital/analog and 4 digital pins
Cons
• Really Small
• Tough to write custom drivers
• Proprietary
Bluetooth
• Same Frequency range as
2.4 Gigahertz Wifi
• 79 Channels VS 13
• Less Throughput
Bluetooth LE
• Always off
• Less Throughput
• Often lower transmit power
• Designed for low data low power
Applications
IOS
• IPad 3rd Generation or better
• Iphone 4S or greater
Android
• Bluetooth 4.0 supported radio
• Android 4.3 or greater
The Software Developers Guide to Prototyping Wearable Devices
repositories {
ivy {
url "http://ivyrep.mbientlab.com"
layout "gradle"
}
}
compile 'com.mbientlab:metawear:1.5.3'
Include the Repo
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<service
android:name="com.mbientlab.metawear.api.MetaWearBleService" />
<!-- Other application info -->
</application>
Update The Manifest
package com.example.metawear;
import com.mbientlab.metawear.api.MetaWearBleService;
import android.app.Activity;
import android.content.ServiceConnection;
public class ExampleActivity extends Activity implements ServiceConnection {
private MetaWearBleService mwService= null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//< Bind the MetaWear service when the activity is created
getApplicationContext().bindService(new Intent(this, MetaWearBleService.class),
this, Context.BIND_AUTO_CREATE);
}
@Override
public void onDestroy() {
super.onDestroy();
//< Unbind the service when the activity is destroyed
getApplicationContext().unbindService(this);
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//< Get a reference to the MetaWear service from the binder
mwService= ((MetaWearBleService.LocalBinder) service).getService();
}
//< Don't need this callback method but we must implement it
@Override
public void onServiceDisconnected(ComponentName name) { }
}
public class ExampleActivity extends Activity implements ServiceConnection {
@Override
protected void onResume() {
super.onResume();
registerReceiver(MetaWearBleService.getMetaWearBroadcastReceiver(),
MetaWearBleService.getMetaWearIntentFilter());
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(MetaWearBleService.getMetaWearBroadcastReceiver());
}
}
Nofifications via Activity
private final string MW_MAC_ADDRESS= "EC:2C:09:81:22:AC";
private MetaWearController mwCtrllr;
public void onServiceConnected(ComponentName name, IBinder service) {
mwService= ((MetaWearBleService.LocalBinder) service).getService();
final BluetoothManager btManager=
(BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
final mwBoard= btManager.getAdapter().getRemoteDevice(MW_MAC_ADDRESS)
mwCtrllr= mwService.getMetaWearController(mwBoard);
}
//< Connect to the board the object is controlling
mwCtrllr.connect();
///< Close the Bluetooth connection
mwCtrllr.close();
Instantiate and Connect
private DeviceCallbacks dCallbacks= new DeviceCallbacks() {
@Override
public void connected() {
Log.i("ExampleActivity", "A Bluetooth LE connection has been established!");
}
@Override
public void disconnected() {
Log.i("ExampleActivity", "Lost the Bluetooth LE connection!");
}
};
///< Register the callback, log message will appear when connected
mwController.addDeviceCallback(dCallbacks);
///< Remove the callback, no feedback for when a ble connection is made
mwController.removeDeviceCallback(dCallbacks);
Registering Callbacks
import com.mbientlab.metawear.api.characteristic;
//< Setup callback for receiving device information
mwCtrllr.addDeviceCallback(new DeviceCallbacks() {
@Override
public void receivedGATTCharacteristic(GATTCharacteristic characteristic,
byte[] data) {
Log.i("ExampleActivity", String.format("%s= %s", characteristic.toString(),
new String(data));
}
@Override
public void receivedRemoteRSSI(int rssi) {
log.i("ExampleActivity", String.format("RSSI= %d dBm", rssi));
}
});
//< Read characteristics from the device information service
//< GATT characteristics are from the DeviceInformation enum
mwCtrllr.readDeviceInfo();
//< Read battery level from the battery service
//< GATT characteristics are from the Battery enum
mwCtrllr.readBatteryLevel();
//< Read RSSI value
mwCtrllr.readRemoteRSSI();
mwController.addModuleCallback(new MechanicalSwitch.Callbacks() {
@Override
public void pressed() {
if (saviours != null && saviours.getCount() > 0) {
Toast.makeText(getActivity(), "button pressed", Toast.LENGTH_SHORT).show();
sendText(true);
} else {
Toast.makeText(getActivity(), R.string.error_no_contact, Toast.LENGTH_SHORT).show();
}
}
})
Switch Callback
.addModuleCallback(new Accelerometer.Callbacks() {
@Override
public void shakeDetected(MovementData moveData) {
shakeCounts.getAndIncrement();
if (!setTimerTask.get()) {
resetTask= new TimerTask() {
@Override
public void run() {
shakeCounts.set(0);
setTimerTask.getAndSet(false);
}
};
timer.schedule(resetTask, RESET_DELAY);
setTimerTask.getAndSet(true);
}
if (shakeCounts.get() == MAX_SHAKES) {
resetTask.cancel();
setTimerTask.getAndSet(false);
shakeCounts.getAndSet(0);
if (saviours != null && saviours.getCount() > 0) {
sendText(false);
} else {
Toast.makeText(getActivity(), R.string.error_no_contact, Toast.LENGTH_SHORT).show();
}
}
}
});
Shake Callback
The Software Developers Guide to Prototyping Wearable Devices
Example Code Available at
https://github.com/lgleasain/Metawear-Android-SOS
Twitter @lgleasain
Github lgleasain
www.lancegleason.com
www.polyglotprogrammincinc.com
lgleason@polyglotprogramminginc.com

More Related Content

What's hot

Software for the Internet of Things
Software for the Internet of ThingsSoftware for the Internet of Things
Software for the Internet of ThingsAlexandru Radovici
 
Getting started on IoT with AWS and NodeMCU for less than 5€
Getting started on IoT with AWS and NodeMCU for less than 5€Getting started on IoT with AWS and NodeMCU for less than 5€
Getting started on IoT with AWS and NodeMCU for less than 5€Stylight
 
Io t basic-exercises
Io t basic-exercisesIo t basic-exercises
Io t basic-exercisesFermin Galan
 
Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266Hammad Tariq
 
Lightning Fast Monitoring against Lightning Fast Outages
Lightning Fast Monitoring against Lightning Fast OutagesLightning Fast Monitoring against Lightning Fast Outages
Lightning Fast Monitoring against Lightning Fast OutagesMaxime Petazzoni
 
OSMC 2021 | Thola – A tool for monitoring and provisioning network devices
OSMC 2021 | Thola – A tool for monitoring and provisioning network devicesOSMC 2021 | Thola – A tool for monitoring and provisioning network devices
OSMC 2021 | Thola – A tool for monitoring and provisioning network devicesNETWAYS
 
MoniTutor
MoniTutorMoniTutor
MoniTutorIcinga
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of ThingsKinoma
 
Splunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module InputSplunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module InputDamien Dallimore
 
Afpified Monitoring with Icinga2
Afpified Monitoring with Icinga2Afpified Monitoring with Icinga2
Afpified Monitoring with Icinga2Icinga
 
Icinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
Icinga Camp Kuala Lumpur 2015 Opening By Eric LippmannIcinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
Icinga Camp Kuala Lumpur 2015 Opening By Eric LippmannIcinga
 
FIWARE Global Summit - Building Your Own IoT Agent
FIWARE Global Summit - Building Your Own IoT AgentFIWARE Global Summit - Building Your Own IoT Agent
FIWARE Global Summit - Building Your Own IoT AgentFIWARE
 
Introduction to Oberon HomeKit SDKs
Introduction to Oberon HomeKit SDKsIntroduction to Oberon HomeKit SDKs
Introduction to Oberon HomeKit SDKsCuno Pfister
 
Windows 10 IoT-Core to Azure IoT Suite
Windows 10 IoT-Core to Azure IoT SuiteWindows 10 IoT-Core to Azure IoT Suite
Windows 10 IoT-Core to Azure IoT SuiteDavid Jones
 
FIWARE Global Summit - Connecting to IoT
FIWARE Global Summit - Connecting to IoTFIWARE Global Summit - Connecting to IoT
FIWARE Global Summit - Connecting to IoTFIWARE
 
Elixir Programming Language 101
Elixir Programming Language 101Elixir Programming Language 101
Elixir Programming Language 101Around25
 
Internet of Things 101 - Part II
Internet of Things 101 - Part IIInternet of Things 101 - Part II
Internet of Things 101 - Part IIYoonseok Hur
 

What's hot (18)

Software for the Internet of Things
Software for the Internet of ThingsSoftware for the Internet of Things
Software for the Internet of Things
 
Getting started on IoT with AWS and NodeMCU for less than 5€
Getting started on IoT with AWS and NodeMCU for less than 5€Getting started on IoT with AWS and NodeMCU for less than 5€
Getting started on IoT with AWS and NodeMCU for less than 5€
 
Io t basic-exercises
Io t basic-exercisesIo t basic-exercises
Io t basic-exercises
 
Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266
 
Lightning Fast Monitoring against Lightning Fast Outages
Lightning Fast Monitoring against Lightning Fast OutagesLightning Fast Monitoring against Lightning Fast Outages
Lightning Fast Monitoring against Lightning Fast Outages
 
OSMC 2021 | Thola – A tool for monitoring and provisioning network devices
OSMC 2021 | Thola – A tool for monitoring and provisioning network devicesOSMC 2021 | Thola – A tool for monitoring and provisioning network devices
OSMC 2021 | Thola – A tool for monitoring and provisioning network devices
 
MoniTutor
MoniTutorMoniTutor
MoniTutor
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of Things
 
Splunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module InputSplunk Modular Inputs / JMS Messaging Module Input
Splunk Modular Inputs / JMS Messaging Module Input
 
Afpified Monitoring with Icinga2
Afpified Monitoring with Icinga2Afpified Monitoring with Icinga2
Afpified Monitoring with Icinga2
 
Icinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
Icinga Camp Kuala Lumpur 2015 Opening By Eric LippmannIcinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
Icinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
 
Blynk presentation
Blynk presentationBlynk presentation
Blynk presentation
 
FIWARE Global Summit - Building Your Own IoT Agent
FIWARE Global Summit - Building Your Own IoT AgentFIWARE Global Summit - Building Your Own IoT Agent
FIWARE Global Summit - Building Your Own IoT Agent
 
Introduction to Oberon HomeKit SDKs
Introduction to Oberon HomeKit SDKsIntroduction to Oberon HomeKit SDKs
Introduction to Oberon HomeKit SDKs
 
Windows 10 IoT-Core to Azure IoT Suite
Windows 10 IoT-Core to Azure IoT SuiteWindows 10 IoT-Core to Azure IoT Suite
Windows 10 IoT-Core to Azure IoT Suite
 
FIWARE Global Summit - Connecting to IoT
FIWARE Global Summit - Connecting to IoTFIWARE Global Summit - Connecting to IoT
FIWARE Global Summit - Connecting to IoT
 
Elixir Programming Language 101
Elixir Programming Language 101Elixir Programming Language 101
Elixir Programming Language 101
 
Internet of Things 101 - Part II
Internet of Things 101 - Part IIInternet of Things 101 - Part II
Internet of Things 101 - Part II
 

Viewers also liked

Мысль №11
Мысль №11Мысль №11
Мысль №11rasparin
 
Контакт центр – ефективний інструмент керування містом
Контакт центр – ефективний інструмент керування містомКонтакт центр – ефективний інструмент керування містом
Контакт центр – ефективний інструмент керування містомOlena Ursu
 
Khao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTA
Khao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTAKhao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTA
Khao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTADung Tri
 
Personajes
PersonajesPersonajes
PersonajesAFC_73
 
Использование социальных медиа как инструмент продвижения гостиничного бизнеса
Использование социальных медиа как инструмент продвижения гостиничного бизнесаИспользование социальных медиа как инструмент продвижения гостиничного бизнеса
Использование социальных медиа как инструмент продвижения гостиничного бизнесаAstra Media Group, Russia
 
Cycles of a film
Cycles of a filmCycles of a film
Cycles of a filmRosielw
 
Del Off al On y viceversa. Verdades y mitos del Comercio Electrónico
Del Off al On y viceversa. Verdades y mitos del Comercio ElectrónicoDel Off al On y viceversa. Verdades y mitos del Comercio Electrónico
Del Off al On y viceversa. Verdades y mitos del Comercio ElectrónicoOffOnCommerceDay
 
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...Olena Ursu
 
La resistencia aeróbica
La resistencia aeróbicaLa resistencia aeróbica
La resistencia aeróbicagabriela9791
 
数字时代阅读报告 第五期 2011年3月号
数字时代阅读报告 第五期 2011年3月号数字时代阅读报告 第五期 2011年3月号
数字时代阅读报告 第五期 2011年3月号武挥 魏
 
InDesign Experiments
InDesign ExperimentsInDesign Experiments
InDesign Experimentscloestead
 
Эффективный SMM или почему 100 лайков не означает 100 клиентов
Эффективный SMM или почему 100 лайков не означает 100 клиентовЭффективный SMM или почему 100 лайков не означает 100 клиентов
Эффективный SMM или почему 100 лайков не означает 100 клиентовAstra Media Group, Russia
 
Мысль вслух №1
Мысль вслух №1Мысль вслух №1
Мысль вслух №1rasparin
 
Comparativos
ComparativosComparativos
ComparativosAFC_73
 
Marine corps intelligence activity romania country handbook
Marine corps intelligence activity romania country handbookMarine corps intelligence activity romania country handbook
Marine corps intelligence activity romania country handbookRepentSinner
 
The power of social media uwo
The power of social media uwoThe power of social media uwo
The power of social media uwoThomas Clifford
 

Viewers also liked (20)

Мысль №11
Мысль №11Мысль №11
Мысль №11
 
Контакт центр – ефективний інструмент керування містом
Контакт центр – ефективний інструмент керування містомКонтакт центр – ефективний інструмент керування містом
Контакт центр – ефективний інструмент керування містом
 
Khao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTA
Khao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTAKhao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTA
Khao sat Hanh Vi Lua Tuoi Teen Viet Nam 2012 by FTA
 
Personajes
PersonajesPersonajes
Personajes
 
Использование социальных медиа как инструмент продвижения гостиничного бизнеса
Использование социальных медиа как инструмент продвижения гостиничного бизнесаИспользование социальных медиа как инструмент продвижения гостиничного бизнеса
Использование социальных медиа как инструмент продвижения гостиничного бизнеса
 
Cycles of a film
Cycles of a filmCycles of a film
Cycles of a film
 
Del Off al On y viceversa. Verdades y mitos del Comercio Electrónico
Del Off al On y viceversa. Verdades y mitos del Comercio ElectrónicoDel Off al On y viceversa. Verdades y mitos del Comercio Electrónico
Del Off al On y viceversa. Verdades y mitos del Comercio Electrónico
 
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
 
Ver. Caffé
Ver. CafféVer. Caffé
Ver. Caffé
 
La resistencia aeróbica
La resistencia aeróbicaLa resistencia aeróbica
La resistencia aeróbica
 
数字时代阅读报告 第五期 2011年3月号
数字时代阅读报告 第五期 2011年3月号数字时代阅读报告 第五期 2011年3月号
数字时代阅读报告 第五期 2011年3月号
 
Praktijkonderzoek als competentie
Praktijkonderzoek als competentiePraktijkonderzoek als competentie
Praktijkonderzoek als competentie
 
InDesign Experiments
InDesign ExperimentsInDesign Experiments
InDesign Experiments
 
Эффективный SMM или почему 100 лайков не означает 100 клиентов
Эффективный SMM или почему 100 лайков не означает 100 клиентовЭффективный SMM или почему 100 лайков не означает 100 клиентов
Эффективный SMM или почему 100 лайков не означает 100 клиентов
 
Мысль вслух №1
Мысль вслух №1Мысль вслух №1
Мысль вслух №1
 
Comparativos
ComparativosComparativos
Comparativos
 
Doklad
DokladDoklad
Doklad
 
Marine corps intelligence activity romania country handbook
Marine corps intelligence activity romania country handbookMarine corps intelligence activity romania country handbook
Marine corps intelligence activity romania country handbook
 
Ciutats 2.0 - Citymarketing
Ciutats 2.0 - CitymarketingCiutats 2.0 - Citymarketing
Ciutats 2.0 - Citymarketing
 
The power of social media uwo
The power of social media uwoThe power of social media uwo
The power of social media uwo
 

Similar to The Software Developers Guide to Prototyping Wearable Devices

Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT Meetup
 
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...mfrancis
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Puppet
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)Aman Kohli
 
DPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith WilesDPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith WilesJim St. Leger
 
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...NGINX, Inc.
 
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better NetworkingITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better NetworkingIstanbul Tech Talks
 
Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Fernando Lopez Aguilar
 
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - MicrosoftIoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - MicrosoftOpen Mobile Alliance
 
Internet of things the salesforce lego machine cloud
Internet of things   the salesforce lego machine cloudInternet of things   the salesforce lego machine cloud
Internet of things the salesforce lego machine cloudandyinthecloud
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and TomorrowJon Galloway
 
Applciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumerationApplciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumerationBlueinfy Solutions
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkSam Basu
 
DWX2018 IoT lecture
DWX2018 IoT lectureDWX2018 IoT lecture
DWX2018 IoT lectureAlon Fliess
 
SignalR + Mobile Possibilities
SignalR + Mobile PossibilitiesSignalR + Mobile Possibilities
SignalR + Mobile PossibilitiesSam Basu
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloITCamp
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...mCloud
 
Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices LivePerson
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileAmazon Web Services Japan
 

Similar to The Software Developers Guide to Prototyping Wearable Devices (20)

Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
 
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
Leveraging the strength of OSGi to deliver a convergent IoT Ecosystem - O Log...
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
DPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith WilesDPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith Wiles
 
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
Session: A Reference Architecture for Running Modern APIs with NGINX Unit and...
 
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better NetworkingITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
ITT 2014 - Erik Hellmann - Android Programming - Smarter and Better Networking
 
Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)
 
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - MicrosoftIoT Seminar (Oct. 2016) Juan Perez - Microsoft
IoT Seminar (Oct. 2016) Juan Perez - Microsoft
 
Internet of things the salesforce lego machine cloud
Internet of things   the salesforce lego machine cloudInternet of things   the salesforce lego machine cloud
Internet of things the salesforce lego machine cloud
 
.NET Core Today and Tomorrow
.NET Core Today and Tomorrow.NET Core Today and Tomorrow
.NET Core Today and Tomorrow
 
Applciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumerationApplciation footprinting, discovery and enumeration
Applciation footprinting, discovery and enumeration
 
What's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon TalkWhat's New with Windows Phone - FoxCon Talk
What's New with Windows Phone - FoxCon Talk
 
DWX2018 IoT lecture
DWX2018 IoT lectureDWX2018 IoT lecture
DWX2018 IoT lecture
 
SignalR + Mobile Possibilities
SignalR + Mobile PossibilitiesSignalR + Mobile Possibilities
SignalR + Mobile Possibilities
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
 
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux –  Unified IoT Pl...
Developers’ mDay u Banjoj Luci - Janko Isidorović, Mainflux – Unified IoT Pl...
 
Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices
 
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & MobileIVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
IVS CTO Night And Day 2018 Winter - [re:Cap] Serverless & Mobile
 
Monkey Server
Monkey ServerMonkey Server
Monkey Server
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptkinjal48
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Incrobinwilliams8624
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.Sharon Liu
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntelliSource Technologies
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyRaymond Okyere-Forson
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Webinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.pptWebinar_050417_LeClair12345666777889.ppt
Webinar_050417_LeClair12345666777889.ppt
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Inc
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
20240319 Car Simulator Plan.pptx . Plan for a JavaScript Car Driving Simulator.
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptx
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human Beauty
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 

The Software Developers Guide to Prototyping Wearable Devices

  • 1.   T3 Session   4/16/2015  11:00  AM         "The Software Developers Guide to Prototyping Wearable Devices"   Presented by: Lance Gleason Polyglot Programming Inc.             Brought  to  you  by:         340  Corporate  Way,  Suite  300,  Orange  Park,  FL  32073   888-­‐268-­‐8770  ·∙  904-­‐278-­‐0524  ·∙  sqeinfo@sqe.com  ·∙  www.sqe.com
  • 2. Lance Gleason Polyglot Programming Inc. Lance Gleason has been a computer nut ever since his dad bought him a computer when he was a kid. After getting a BS and MS in Computer Science, he worked on a number of large projects as a Java developer and architect for companies like Kodak, CNN, and GE. These days he is the CEO and founder of Polyglot Programming LLC. which focuses on Ruby, mobile and wearable software development. Lance regularly speaks about Ruby/wearable development at conferences around the world and is the co-organizer of the Atlanta Sensors and Startups Meetup, Ruby DCamp ZA, and Rubyfuza (the only Ruby conference in Africa). He is known to practice interspecies pair (purr) programming with his orange tabby, Allie, and when he’s not writing code, you will find him diving with sharks, trekking through Chernobyl, sampling wine, cheering on the Springboks or perfecting his biltong recipe. Follow Lance on Twitter @lgleasain.  
  • 11. Cons • Impossible to create a at scale prototype • Many extensions overkill for wearables
  • 12. Pros • Inexpensive • Available GPS Module • Low Power • Aduino Based • Lots of Support Cons • No easy way to integrate Bluetooth or Wifi • Requires a physical connection to get data • Things like an accelerometer require a separate component
  • 15. Features • Bluetooth Support • Robust API for Android and IOS • Built in Sensors (temperature, accelerometer etc.) • Built in support for rechargeable batteries Specs • ! Nordic Semiconductor nRF51822 BLE SoC • ! 2.4 GHz transceiver • ! ARM®Cortex™-M0 32 bit processor • ! 256 kB flash program memory • ! 16 kB RAM • ! 8/9/10 bit ADC
  • 16. Specs Continued • Accelerometer • Temperature Sensor • Push Button Switch • Bright LED • Driver for vibration motor • micro usb chargable • I2C bus, and support for 4 digital/analog and 4 digital pins
  • 17. Cons • Really Small • Tough to write custom drivers • Proprietary
  • 18. Bluetooth • Same Frequency range as 2.4 Gigahertz Wifi • 79 Channels VS 13 • Less Throughput
  • 19. Bluetooth LE • Always off • Less Throughput • Often lower transmit power • Designed for low data low power Applications
  • 20. IOS • IPad 3rd Generation or better • Iphone 4S or greater
  • 21. Android • Bluetooth 4.0 supported radio • Android 4.3 or greater
  • 23. repositories { ivy { url "http://ivyrep.mbientlab.com" layout "gradle" } } compile 'com.mbientlab:metawear:1.5.3' Include the Repo <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <service android:name="com.mbientlab.metawear.api.MetaWearBleService" /> <!-- Other application info --> </application> Update The Manifest
  • 24. package com.example.metawear; import com.mbientlab.metawear.api.MetaWearBleService; import android.app.Activity; import android.content.ServiceConnection; public class ExampleActivity extends Activity implements ServiceConnection { private MetaWearBleService mwService= null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //< Bind the MetaWear service when the activity is created getApplicationContext().bindService(new Intent(this, MetaWearBleService.class), this, Context.BIND_AUTO_CREATE); } @Override public void onDestroy() { super.onDestroy(); //< Unbind the service when the activity is destroyed getApplicationContext().unbindService(this); } @Override public void onServiceConnected(ComponentName name, IBinder service) { //< Get a reference to the MetaWear service from the binder mwService= ((MetaWearBleService.LocalBinder) service).getService(); } //< Don't need this callback method but we must implement it @Override public void onServiceDisconnected(ComponentName name) { } } public class ExampleActivity extends Activity implements ServiceConnection { @Override protected void onResume() { super.onResume(); registerReceiver(MetaWearBleService.getMetaWearBroadcastReceiver(), MetaWearBleService.getMetaWearIntentFilter()); } @Override protected void onPause() { super.onPause(); unregisterReceiver(MetaWearBleService.getMetaWearBroadcastReceiver()); } } Nofifications via Activity
  • 25. private final string MW_MAC_ADDRESS= "EC:2C:09:81:22:AC"; private MetaWearController mwCtrllr; public void onServiceConnected(ComponentName name, IBinder service) { mwService= ((MetaWearBleService.LocalBinder) service).getService(); final BluetoothManager btManager= (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); final mwBoard= btManager.getAdapter().getRemoteDevice(MW_MAC_ADDRESS) mwCtrllr= mwService.getMetaWearController(mwBoard); } //< Connect to the board the object is controlling mwCtrllr.connect(); ///< Close the Bluetooth connection mwCtrllr.close(); Instantiate and Connect private DeviceCallbacks dCallbacks= new DeviceCallbacks() { @Override public void connected() { Log.i("ExampleActivity", "A Bluetooth LE connection has been established!"); } @Override public void disconnected() { Log.i("ExampleActivity", "Lost the Bluetooth LE connection!"); } }; ///< Register the callback, log message will appear when connected mwController.addDeviceCallback(dCallbacks); ///< Remove the callback, no feedback for when a ble connection is made mwController.removeDeviceCallback(dCallbacks); Registering Callbacks
  • 26. import com.mbientlab.metawear.api.characteristic; //< Setup callback for receiving device information mwCtrllr.addDeviceCallback(new DeviceCallbacks() { @Override public void receivedGATTCharacteristic(GATTCharacteristic characteristic, byte[] data) { Log.i("ExampleActivity", String.format("%s= %s", characteristic.toString(), new String(data)); } @Override public void receivedRemoteRSSI(int rssi) { log.i("ExampleActivity", String.format("RSSI= %d dBm", rssi)); } }); //< Read characteristics from the device information service //< GATT characteristics are from the DeviceInformation enum mwCtrllr.readDeviceInfo(); //< Read battery level from the battery service //< GATT characteristics are from the Battery enum mwCtrllr.readBatteryLevel(); //< Read RSSI value mwCtrllr.readRemoteRSSI(); mwController.addModuleCallback(new MechanicalSwitch.Callbacks() { @Override public void pressed() { if (saviours != null && saviours.getCount() > 0) { Toast.makeText(getActivity(), "button pressed", Toast.LENGTH_SHORT).show(); sendText(true); } else { Toast.makeText(getActivity(), R.string.error_no_contact, Toast.LENGTH_SHORT).show(); } } }) Switch Callback
  • 27. .addModuleCallback(new Accelerometer.Callbacks() { @Override public void shakeDetected(MovementData moveData) { shakeCounts.getAndIncrement(); if (!setTimerTask.get()) { resetTask= new TimerTask() { @Override public void run() { shakeCounts.set(0); setTimerTask.getAndSet(false); } }; timer.schedule(resetTask, RESET_DELAY); setTimerTask.getAndSet(true); } if (shakeCounts.get() == MAX_SHAKES) { resetTask.cancel(); setTimerTask.getAndSet(false); shakeCounts.getAndSet(0); if (saviours != null && saviours.getCount() > 0) { sendText(false); } else { Toast.makeText(getActivity(), R.string.error_no_contact, Toast.LENGTH_SHORT).show(); } } } }); Shake Callback
  • 29. Example Code Available at https://github.com/lgleasain/Metawear-Android-SOS Twitter @lgleasain Github lgleasain www.lancegleason.com www.polyglotprogrammincinc.com lgleason@polyglotprogramminginc.com