Real time sensing with bluetooth smart
-
Upload
tue-haste-andersen -
Category
Technology
-
view
8.842 -
download
4
description
Transcript of Real time sensing with bluetooth smart
![Page 1: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/1.jpg)
Real-time Sensing with Bluetooth Smart
Tue Haste Andersen @tuehaste
Better Embedded, Florence #bem2013
9 JULY 2013
![Page 2: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/2.jpg)
FROG IS A GLOBAL PRODUCT STRATEGY & DESIGN FIRM
![Page 3: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/3.jpg)
WHAT IS EMBEDDED?
![Page 4: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/4.jpg)
Typically a system based on a microprocessor contained within another system. The other system can be anything from a bigger computer, appliances like a fridge or oven, or even the human body.
![Page 5: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/5.jpg)
HARDWARE+
SOFTWARE
Thus embedded is hardward + a simple software system to manage the hardware
![Page 6: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/6.jpg)
HARDWARE+
SOFTWARE+
DATA
It is increasingly difficult to imagine a self-contained system that does not interact with the outside world.An embedded system increasingly needs to interact with the external world though a user or network interface.Thus to the definition, we need to add “data”.
![Page 7: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/7.jpg)
About a year ago...
About a year ago I was doing a race in a club for radio controlled “Mini Z” cars in Milan. The “Mini Z” cars are cars at a scale 1/28 produced by Kyosho and are becoming increasingly popular.
![Page 8: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/8.jpg)
80 meters
8 seconds
~ 36 km/h
The cars travel at a very high speed and are difficult to control. Unfortunately I’m not really got at controlling the cars and start thinking about ways to get better.I decided to start measuring the cars using sensors and thereby improve my driving.
![Page 9: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/9.jpg)
Does the chassis flex?
Interesting parameters include temperature, force/flexing of the chassis, energy, acceleration and speed.
![Page 10: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/10.jpg)
How are my plants doing?
Once having a sensor system, it could be used not only to pull telemetic information from cars, but e.g. to monitor plant growth by tracking sunlight and humidity.
![Page 11: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/11.jpg)
Body sensing and User Research
... or sensors could be used in body tracking as we are doing at frog as part of the user research.
![Page 12: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/12.jpg)
I NEEDED SOMETHING:
- REALLY SMALL- ROBUST- CHEAP- TO COLLECT DATA
To monitor radio controlled cars I needed something really small, since the cars a very sensitive to physical changes, it needs to be robust and able to operate in an environment where radio signals are heavily used, it needs to be cheap and able to collect data.
![Page 13: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/13.jpg)
BLUETOOTH
For this project I’ve chosen Bluetooth.
![Page 14: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/14.jpg)
BLUETOOTH
But why Bluetooth? Bluetooth is known to have serious problems with usability where it is both slow and cumbersome to pair two devices.
![Page 15: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/15.jpg)
BLUETOOTH
Even simple operations like attaching a phone or a mouse to a computer often result in errors.
![Page 16: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/16.jpg)
BLUETOOTH
The reason for choosing Bluetooth is because of the new protocol, Bluetooth Smart, that is included in Bluetooth 4.0.Bluetooth Smart is a protocol originally developed by Nokia, and later integrated in the Bluetooth spec. Bluetooth Smart was originally called Wibree and later Bluetooth Low Energy.The main goal of Bluetooth Smart is to create a protocol with very low energy consumption and low latency.
![Page 17: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/17.jpg)
PC SUPPORT 1 1 0 0 4 4
PHONE SUPPORT
1 1 1 0 4 4
ATTENTION FREE
PAIRING4 4 4 4 1 4
MAX ACTUAL THROUGHP.
200 kbps 424 kbps 20 kbps 250 kbps 6 Mbps 305 kbps
LATENCY 25 ms 1 s * 0 * 20-30 ms 1,5 ms * 2,5 ms
RANGE 1 m 5 cm ~10 m 300 m 150 m 50 m
PEAK CONSUMP.
10 mA 50 mA * 17 mA 40 mA 116 mA 16 mA
NETWORK TOPOLOGY
STAR STAR MESH, STAR MESH, STAR STAR STAR
IrDA NFC WiFi BluetoothANT+ ZigBee
COMPARING WIRELESS TECHNOLOGIES
This is a comparison of different wireless technologies. The peak consumption is a key factor for making a system that can last long on a single battery. A rule of thumb is that the current draw should not be above the range of 15 mA to avoid damaging the battery (this is valid for the standard coin cell batteries, CR2032)
![Page 18: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/18.jpg)
BLUETOOTH
“Google’s support for the Bluetooth Smart Ready platform in Android is one step forward for Bluetooth’s dominance in the internet of things.”
GIGAOM
Google announced on Google I/O 2013 support for Bluetooth 4.0 as of Android API v18
![Page 19: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/19.jpg)
BLUETOOTH
“Bluetooth is not becoming the de facto standard for your personal area network… it already is the standard for your personal area network”
Bluetooth SIG
Bluetooth 4.0 is backed by more than 400 companies.
![Page 20: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/20.jpg)
Bluetooth 4.0
20
![Page 21: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/21.jpg)
Bluetooth Smart devices are marketed using two labels.
![Page 22: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/22.jpg)
Peripheral
Central
A peripheral only needs to implement functionality to advertise itself and participate in a connection, but does not need the functionality to initiate a connection. A central on the other hand needs to implement all the functionality of a peripheral + ability to initiate a connect + support for all older standards of Bluetooth.
![Page 23: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/23.jpg)
Peripheral Slave
Central Master
Data
The naming Slave and Master is also used in the specs.
![Page 24: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/24.jpg)
Peripheral Slave
Peripheral
Central MasterSlave
A Bluetooth Smart Ready device can act both as a Central and as a Peripheral.
![Page 25: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/25.jpg)
Bluetooth 4.0 StackApplication
Generic Access Profile(GAP)
Generic Attribute Profile (GATT)
Attribute Protocol (ATT)
Security Manager (SM)
Logical Link Control and Adaption Protocol
Link and RF layer
![Page 26: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/26.jpg)
Bluetooth 4.0 StackApplication
Generic Access Profile(GAP)
Generic Attribute Profile (GATT)
Attribute Protocol (ATT)
Security Manager (SM)
Logical Link Control and Adaption Protocol
Link and RF layer
The parts of the stack that an application typically interfaces with are GAP and GATT.
![Page 27: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/27.jpg)
Central
Peripheral Ad
Advertisement interval(20ms to 10s)
Ad
Advertisement interval(20ms to 10s)
Ad
Advertisement interval(20ms to 10s)
Advertisement
A Bluetooth connection begins with the peripheral sending out advertisements to announce it’s presence. The advertisement interval can be configured at the application level.
![Page 28: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/28.jpg)
Central
Peripheral Ad
Advertisement interval(20ms to 10s)
Ad
Advertisement interval(20ms to 10s)
Ad
Advertisement interval(20ms to 10s)
Scanning Scanning
Advertisement
Scanning
A central is scanning for advertisements.
![Page 29: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/29.jpg)
Central
Peripheral AdCh 37
Advertisement interval(20ms to 10s)
AdCh 37
Advertisement interval(20ms to 10s)
AdCh 37
Advertisement interval(20ms to 10s)
AdCh 38
AdCh 39
AdCh 38
AdCh 39
AdCh 38
AdCh 39
Scanning Scanning
Advertisement
Scanning
Bluetooth 4 is using 40 different channels in the 2,4GHz spectrum. In reality 3 is used for advertisements and the remaining 37 is used when the connection is established. Frequency hopping is implemented to ensure a stable connection.
![Page 30: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/30.jpg)
Central
Peripheral AdCh 37
Advertisement interval(20ms to 10s)
AdCh 37
Advertisement interval(20ms to 10s)
AdCh 37
Advertisement interval(20ms to 10s)
AdCh 38
AdCh 39
AdCh 38
AdCh 39
AdCh 38
AdCh 39
Scanning Channel 39 Scanning Channel 37
Advertisement
Scanning Channel 38
![Page 31: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/31.jpg)
MasterCentral
SlavePeripheral
Conn.Req
150us
Data
Data
150us
Data
Data
Data
Data
150us 150us
Connection interval(7.5ms to 4s)
Connection interval(7.5ms to 4s)
Connection Interval
Once the central has initiated the connection, packets are exchanged between the central and peripheral at a fixed interval, called “connenction interval”. The connection interval is configurable at the application level. More data packets can be sent during the connection interval.
![Page 32: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/32.jpg)
Req. Data
Data
Data
Connection interval
Connection interval
Slave Latency = 2
Data
Connection interval
Data
Data
Slave Latency
MasterCentral
SlavePeripheral
The peripheral is not required to respond to each packet. It is allowed to skip a number of packets defined as the “slave latency”. In this figure the slave latency is set to 2.The slave latency is a value from 0 to 499, however, the maximum period that the peripheral remain silent should not exceed 16 seconds.
![Page 33: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/33.jpg)
MAKING
33
![Page 34: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/34.jpg)
MobilePhoneSensor Bluetooth
Smart
The architecture that I’m following is based on a simple setup where sensors are attached electronically to the Bluetooth Peripheral, and the peripheral communicates using Bluetooth Smart to a mobile phone.
![Page 35: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/35.jpg)
MobilePhoneSensor Bluetooth
Smart?
![Page 36: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/36.jpg)
Temperature
Force
Accelerometer
Any sensors can be used. Good sources for finding useful sensors include Arduino and websites like Adafruit.
![Page 37: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/37.jpg)
Analog
I²C
SPI
Sensors can be attached using either an ADC converter or through a serial protocol like Inter-Intergreated Circuit or Serial Peripheral Interface.
![Page 38: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/38.jpg)
MobilePhoneSensor Bluetooth
Smart?
![Page 39: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/39.jpg)
Texas Instruments
Nordic Semiconductor
CSR
EM Microelectronic
A number of manufacturers are producing Bluetooth Smart chipsets.
![Page 40: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/40.jpg)
Texas Instruments - CC2540/CC2541
Nordic Semiconductor
CSR
EM Microelectronic
Texas Instruments is producing the CC2540 chip that is interesting because it include a 8501 MCU, thus eliminating the need for an external MCU. This reduces the total energy consumption and the complexity of the hardware design.
![Page 41: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/41.jpg)
This is the architecture of the CC2540. The CC2541 is slightly different in that it includes a I2C hardware interface and no USB interface. The CC2541 also consumes less energy.To make the system run is also needed a crystal, antenna, signal cap, EEPROM etc. The total BOM (Bill of Materials) cost is around 3€.
![Page 42: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/42.jpg)
Turnkey modules:
Bluegiga BLE112 and BLE113Blueradio BR-LE4.0-S2AAlpwise ALPW-BLEDVK002Alpha Micro
Building a module around a chipset also requires a certification from Bluetooth. An alternative is to use a turnkey module. Some options include:Bluegiga: http://www.bluegiga.com/BLE113_Bluetooth_Smart_moduleBlueradio: http://www.blueradios.com/hardware_LE4.0-S2.htmAlpwise: http://www.alpwise.com/produit.php?ref=ALPW-BLEDK002&id_rubrique=6Alpha Micro: http://news.cision.com/livewire-pr/r/alpha-micro-launches-low-energy-bluetooth-smart--modules-for-medical-and-other-devices-from-laird-te,c9405289
![Page 43: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/43.jpg)
BlueGiga is a module with good documentation, it’s based on CC2540/CC2541BgScripting language or BG APIAccording to BlueGiga it will be possible to use the IAR Workbench (expensive) 8051 compiler in the near future.BLE112 costs around €11
![Page 44: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/44.jpg)
MobilePhoneSensor Bluetooth
Smart ?
![Page 45: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/45.jpg)
Phones and computers supporting BT4
iOSAndroidLinux
iOS (from iPhone 4S) has good support for BT4. Google has announced support in Android and Linux has support.
![Page 46: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/46.jpg)
HARDWARE PROTOTYPE
![Page 47: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/47.jpg)
http://www.inmojo.com/store/jeff-rowberg/item/ble112-bluetooth-low-energy-breakout/
Building a hardware prototype requires the use of a development kit or the use of a breakout board. Breakout boards for BlueGiga are available under the Creative Commons license.
![Page 48: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/48.jpg)
After some Surface Mount Soldering, this is how the working prototype module looks like...
![Page 49: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/49.jpg)
Force Sensor
Temperature Sensor
Sensors can be attached to the ports similar to how sensors are attached to an Arduino.
![Page 50: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/50.jpg)
FIRMWARE PROGRAMMING
![Page 51: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/51.jpg)
YOU NEED 4 THINGS
![Page 52: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/52.jpg)
Text editor
![Page 53: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/53.jpg)
BGScript compiler fromhttp://techforum.bluegiga.com
![Page 54: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/54.jpg)
Texas Instruments CC Debugger
The CC Debugger costs around €50.
![Page 55: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/55.jpg)
Flash programmer fromhttp://www.ti.com/tool/flash-programmer
As an alternative the open source cc-tool can be used.
![Page 56: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/56.jpg)
BGScript
Basic-like languageEvent drivenNo functions (!)
BGScript used to program the BLE112/3 modules is a basic like language, event driven, not allowing any functions to be defined.
![Page 57: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/57.jpg)
Generic Attribute Profile (GATT)
The first step in programming the firmware is defining a GATT profile.
![Page 58: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/58.jpg)
Generic Attribute Profile (GATT)
value
Byte array, from 0 to 512 bytes
Each type of value transferred can be a value between 0 and 512 bytes long.
![Page 59: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/59.jpg)
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
valuetype
16 bit predefined UUIDor
128 bit generated UUID
Each value is assigned to a type. The type can either be a type defined in the Bluetooth spec (16 bit UUID) or be a randomly generated 128 but UUID. This means that the application developer can define custom application-specific types and does not need to rely on the availability of profiles in the chipsets and drivers. This is a really powerful feature of the new Bluetooth protocol.
![Page 60: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/60.jpg)
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
valuetypehandle
16 bit handle
In addition a handle, an ID is assigned.
![Page 61: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/61.jpg)
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
valuetypehandle permission
And various permissions.
![Page 62: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/62.jpg)
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
Characteristic valuetypehandle permission
All these attributes are collectively called a Characteristic.
![Page 63: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/63.jpg)
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
Characteristic valuetypehandle permission
Service
A characteristic is assigned to a service.
![Page 64: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/64.jpg)
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
Server
Characteristic valuetypehandle permission
Service
A service to a server. The server is typically implemented by the peripheral.
![Page 65: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/65.jpg)
Service
Generic Attribute Profile (GATT)
Characteristics specification at:http://developer.bluetooth.org/
Characteristic valuetypehandle permission
Service
Server
A server can have more than one service.
![Page 66: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/66.jpg)
Service
Characteristic
Generic Attribute Profile (GATT)
valuetypehandle permission
Characteristics specification at:http://developer.bluetooth.org/
Server
Characteristic valuetypehandle permission
Characteristic valuetypehandle permission
Service
A service can have more than one characteristic.
![Page 67: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/67.jpg)
Defining a GATT profile
The Gatt profile is defined in a simple XML file.
![Page 68: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/68.jpg)
Defining a GATT profile
A custom service and characteristic is defined with a generated UUID.
![Page 69: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/69.jpg)
Programming BLE113
BGScript is event driven. When the peripheral is powered on a system_boot event is raised. At this point the advertisement interval is configured and advertisement is started.
![Page 70: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/70.jpg)
Programming BLE113
Once a connection has been established a sensor is montiored using a timer. An analog sensor is read using a call to hardware_adc_read, the result is not immediately available but given in another event.
![Page 71: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/71.jpg)
Programming BLE113
The result is given as part of the hardware_adc_result_event. Here we write the value to the GATT database using the id “xgatt_force” that we defined in the GATT XML file.
![Page 72: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/72.jpg)
iOS App using CoreBluetooth and AFNetworking.
Bluetooth connection is kept alive while the app is sleeping
The Bluetooth peripheral is connecting to an iPhone app. I’ve used Apple’s CoreBluetooth API and AFNetworking to relay the data to a cloud service.
![Page 73: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/73.jpg)
Issues
Each line of BGScript takes 1-3ms to execute
Problem with I2C(hardware support in BLE113)
Changing GATT profile requires switching Bluetooth off and on in iOS
1. The main issue with the BLE112/113 system is that BGScript is slow. It is not possible to measure sensor with high frequency with this system. Instead a C compiler should be used.2. On the CC2540/BLE112, the I2C interface is implemented in software making it slow and buggy. If you need I2C you should use CC2541/BLE113.3. When updating the GATT profile on the peripheral iOS does not see the changes. To account for this, switch off and on Bluetooth in iOS settings
![Page 74: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/74.jpg)
Actual Performance
Actual range around 25 meters
Duration on a standard CR2032 battery, with constant non-optimized communication and reading of four ADC sensors: around 4 hours
From a few experiments I’ve seen that the connection becomes somewhat unstable above 25 meters range. This obviously depends a lot on the environment. Below 25 the connection is very stable, even in environments with a lot of radios in the 2,4GHz band.
The coin cell battery can last for a very long time, however, this requires setting the connection interval parameters rather conservative, implement low power modes etc. etc. Running the chip in a busy loop where it reads the ADC and sends the values to the central, the battery lasts for around 4 hours.
![Page 75: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/75.jpg)
SensorBluetoothPeripheral Phone
Sensors are connected with the phone using this diagram.
![Page 76: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/76.jpg)
Bluetooth 4analog/serialSensorBluetoothPeripheral Phone
![Page 77: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/77.jpg)
Bluetooth 4analog/serialSensorBluetoothPeripheral Phone
Desktop
Bluetooth
4
Desktop computers could be used.
![Page 78: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/78.jpg)
Bluetooth 4analog/serialSensorBluetoothPeripheral Phone
Desktop
Bluetooth
4
RaspberryPi
Bluetooth 4
Or a Raspberry Pi.
![Page 79: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/79.jpg)
Bluetooth 4analog/serialSensorBluetoothPeripheral Phone
Desktop
Bluetooth
4.0
RaspberryPi
Bluetooth 4.0
CloudTCP/IP
In any case the data needs to move off the device, to the cloud, to be able to share, compare and analyze the data.
![Page 80: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/80.jpg)
CLOUD
![Page 81: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/81.jpg)
nodejs and log.io
The first step is to setup a tool that allows to verify that the whole chain, from Sensor to cloud is working. For this I use the node.js program log.io.This is a simple tool that allows to see logs realtime in a web browser.
![Page 82: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/82.jpg)
Sensing in the Cloud
Xively,Open Sen.se, SenseOS, Etherios, ElectricCimp,
One of the most mature cloud based sensor platforms is Xively (previously Pachube)
![Page 83: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/83.jpg)
Store Process Visualize
HT
TP
Event
HTTP
Open Sen.se Cloud Platform
Open Sen.se offers a platform that is modular and easy to configure. The platform is still in private beta, but conceptually very interesting.
![Page 84: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/84.jpg)
Here’s an example of the force sensor data from the MiniZ car shown on Open Sen.se.
![Page 85: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/85.jpg)
Conclusion
85
![Page 86: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/86.jpg)
Bluetooth Smart in a year:
Open Source breakout boardsAndroid SupportImproved iOS supportTI SmartTag developer kitLower power chipsetsHundreds of devices launched
![Page 87: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/87.jpg)
Bluetooth and Embedded is clearly becoming easier, less hardware hacking is needed
grazie a tutto cio, e’ diventato piu facile ad utilizare e programmare embedded e bluetooth 4
![Page 88: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/88.jpg)
Bluetooth 4 is the standard that will enable massive data collection. A great challenge lies in what to do with the data.
Secondo me la prossima sfida e’ scoprire come sfruttare al meglio tutti questi dati
![Page 89: Real time sensing with bluetooth smart](https://reader034.fdocuments.us/reader034/viewer/2022042714/554d1af2b4c905ca208b4640/html5/thumbnails/89.jpg)
© 2013 frog. All rights reserved.
Tweets on data, sensing and startups
@tuehaste