Talk to Things Around You is a workshop at NYU's ITP camp 2014 that explores possibilities of Bluetooth LE (Low Energy) in our lives. BLE technology allows us to set up iBeacons so we can listen and broadcast real time proximity based information. We will focus on setting up high quality user experiences based on these new capabilities.
Jihyun Lee
e. [email protected]
t. @jihyun_says
##Bluetooth 4.0 Low Energy (LE)
####Applications
- Health Care
- Sports/Fitness -- heartrate monitor, shoes
- Security -- key to car, office
- Automation -- light, temperature at home
- Entertainment
- Toys
- Pay Systems -- secured, localized, easy to use
- Proximity -- retail store
- Smart lost & found -- stickNFind, Tile
####Compare to Classic Bluetooth
- Without pairing
- Reduced power consumption and cost
- watch Tom Igoe and Don Coleman's overview of Bluetooth LE
####Key Terms and Concepts
####Roles and Responsibilities
- Peripheral (Server)
- Advertise
- Central (Client)
- Scan
- Connect
- Read / Write
- Service: Heart Rate Monitor, ...
- Characteristic: Heart Rate Measurement
- Type: UUID identifying the type
- Value: Octet string with the value
- Properties: Read, write, notify
- Client Configuration: Notification on/off
- Additional Descriptor
- Characteristic: Body Sensor Location
- Characteristic: Heart Rate Measurement
####Support
- iOS 5 and later
- Android 4.3 and later
- Windows Phone 8.1, Windows Phone 8 (no developer API)
- BlackBerry 10
- Linux 3.4 and later through BlueZ 5.0
####Read more
- Bluetooth LE Doc-a-thon at ITP camp
- Intro to Bluetooth Low Energy from Adafruit
- Bluetooth Low Energy from Android Developers
- Bluetooth Low Energy from Wikipedia
- Core Bluetooth 101 from Apple's WWDC 2012
##Make Things
- Arduino + LED (Digital In/Out)
- Arduino + potentiometer (Analog In)
- Arduino Firmata
- Serial communication
##Talk to Things ####BLE Modules
- TI sensor Tag
- Estimote
- LightBlue Bean
- RedBearLab's BLE Shield, BLE Mini, Blend Micro
- Node.js + Bleno (Peripheral) / Noble (Central)
- Bluefruit LE (in-class)
- Wire up
- Download Adafruit_BLEFirmata Library
- Upload Adafruit's StandardFirmata example sketch on the Arduino
####PhoneGap
- Install
- Install Node.js
- Run Terminal
- Install PhoneGap
$ sudo npm install -g cordova
- New Project
- Create an App
$ cordova create hello com.example.hello HelloWorld
- Go to working directory
$ cd hello
- Add platforms
$ cordova platform add ios
- List up the platforms set up for the project
$ cordova platforms ls
- Add Plugins
If you use Firmata, (in class). See more details about the plugin here.
But there are more Phonegap's plugins. If you want to use serial, copy and paste the following command. See more details about the plugin here.
$ cordova plugin add https://github.com/jihyunlee/BLEFirmata.git
or another one. See more details about the plugin here.$ cordova plugin add https://github.com/don/BluetoothSerial.git
For debugging, you probably want$ cordova plugin add https://github.com/randdusing/BluetoothLE.git
$ cordova plugin add https://github.com/apache/cordova-plugin-console.git
- Build the App
The cordova build command is a shortahand for the following
$ cordova build
$ cordova prepare $ cordova compile
- Run the App
But if you use multiple platform, you should declare which
$ cordova run
$ cordova run ios $ cordova run android
- Create an App
- Update/Edit Project
- Make changes
- Build the App
$ cordova build
- Run the App
$ cordova run
- Learn more PhoneGap's Command Line Interface