2015년 9월 15일 화요일

BLE Beacon : 2.Cross Platform을 지원하는 Beacon APP 제작 및 연동 Test

<원문 : http://cafe.naver.com/wirelessdev/434>

2. Cross Platform을 지원하는 Beacon APP 제작 및 연동 Test

HTML 5와 JavaScript를 이용하여 쉽고 빠르게 IoT Application을 제작할 수 있는 Evothings Studio를 이용하여 Android와 iPhone용 APP을 제작한다.
동일한 Source를 이용하여 iPhone과 Android에서 동시에 사용 가능하다.
준비물 :

iBEACON APP 실행하기.
  • 동일한 Access Point에 PC와 Smart Phone을 접속한다(동일한 Network에 접속하기 위함.)
  • Evothings Studio를 실행한다.
    EvothingsWorkbench.exe 파일을 실행한다.
  • Evothings Client를 실행한다.

    SCAN FOR WORKBENCH를 Click하여 동일 Network의 Workbench를 검색
    검색된 Workbench를 선택하여 연결

    iBeacon App 실행 대기 상태
  • Workbench에서 실행할 APP을 선택하여 실행한다.
  • Evothings Client 실행 화면
iBeacon APP을 실행하여 검색되는 부분을 확인하였습니다.
다음은 APP 과 Beacon의 통신 Packet을 Sniffer로 분석하는 부분을 설명합니다.

2015년 9월 11일 금요일

BLE Beacon 제작 및 스마트폰 앱 연동하기. - 1

<원문 : http://cafe.naver.com/wirelessdev/433>

  • BLE iBeacon을 제작 및 APP 연동 관련 TEST를 진행하며 정리한 내용 올립니다
    아직 학습하는 과정으로 정보의 오류가 있을 수 있습니다.
    오류 부분은 지적해 주시기 바랍니다.

    정리한 내용은 4개 과정으로 나누어 정리했습니다.
    1. Beacon 개요 및 Arduino Beacon 제작
    2. Cross Platform을 지원하는 Beacon APP 제작 및 연동 Test
    3. Beacon Packet 분석을 통한 iBeacon 이해
    4. Beacon의 설정에 따라 동작하는 Beacon APP 제작

    1. Beacon 개요 및 Arduino Beacon 제작
    • iBeacon 이란 ?.
      • 비콘은 주기적으로 신호를 발생시키는 장치를 의미
      • iBeacon은 애플에서 정의한 것으로 Find me profile과 Proximity Profile을 이용한다
      • UUID, Major, Minor ID를 Beacon 식별 정보로 활용
      • 등대와 같이 단 방향으로 식별 정보를 전송하는 용도로 이용하며, Advertising mode 만을 사용
      • 예) UUID – 도시 , Major ID – 상가, Minor ID – 상품
      • iBeacon Packet format

    • Beacon 제작하기.
      • 준비 물
        - RBL nRF51822, iPhone, Android Phone
      • Arduino 소스 분석
        #include <BLE_API.h>


               BLEDevice ble;        // BLE radio driver 
    const static uint8_t beaconPayload[] = {
    0x4C, 0x00, // Company identifier code (0x004C == Apple)
    0x02, // ID
    0x15, // length of the remaining payload
    0xA4, 0x95, 0x00, 0x01, 0xC5, 0xB1, 0x4B, 0x44, // location UUID
    0xB5, 0x12, 0x13, 0x70, 0xF0, 0x2D, 0x74, 0xDE,
             0x00, 0x01, // the major value to differentiate a location
    0x00, 0x01, // the minor value to differentiate a location
    0xC8 // 2의 보수 : Tx power (-56dB)
    };

    void setup()
    {
    uint32_t err_code = 0;
    uint8_t val = 0;

    //Close peripheral power – 저전력 Mode로 변경
    NRF_POWER->DCDCEN = 0x00000001;
    NRF_TIMER1->POWER = 0;
    NRF_TIMER2->POWER = 0;
    NRF_WDT->POWER = 0;
    NRF_TEMP->POWER = 0;
    NRF_UART0->POWER = 0;

    pinMode(LED, OUTPUT);
    digitalWrite(LED, HIGH);

    err_code = ble.init();

    ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
    ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, beaconPayload, sizeof(beaconPayload));
    ble.setAdvertisingType(GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED);
    ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
    ble.startAdvertising();
    }

    void loop()
    {
    ble.waitForEvent();
    }

    위의 Code를 RBL nRF51822에 Load하면 Beacon 제작 마무리된다.
    다음 내용은 iBeacon APP을 제작하여 통신하는 부분에 대해 설명합니다.

2015년 8월 3일 월요일

Bluetooth Low Energy ? BLE : Arduino, GCC, MBED 개발 환경 제공하는 BLE 개발 KIT

MBED, GCC, Arduino등 다양한 개발 환경을 제공하는 개발 KIT 소개합니다.
Arduino, MBED, GCC 등 다양한 개발환경 및 BLE 기능을 제공하여 학습을 목적으로 사용한다면 적합한 제품일 것 같습니다.
작은 모듈 형태로 제작되어 Bread board와 연결하여 시제품 제작에도 사용가능 할 듯 합니다.
BLE Nano & MK20 USB Board
Features
  • Smallest BLE development board, only 18.5mm x 21.0mm
  • Nordic nRF51822 SoC supports both BLE Central and BLE Peripheral roles
  • Ultra low power consumption
  • Support voltage from 1.8V to 3.3V
  • Software development using mbed.org, GCC, Keil or Arduino
  • Lots of libraries and examples available
  • Easy firmware deployment with our MK20 USB board or Over-the-Air download (available soon)
  • Work with our free Android App and iOS App
Description
BLE Nano is the smallest Bluetooth 4.1 Low Energy (BLE) development board in the market. The core is Nordic nRF51822 (an ARM Cortex-M0 SoC plus BLE capability) running at 16MHz with ultra low power consumption.
Developing a Bluetooth Smart enabled 'appcessory' (accessory device + companion application) is easier than ever. You can quickly produce protypes and demos target for Internet of Things (IoT) and other interesting projects. BLE Nano could operate under 1.8V to 3.3V, therefore it works with a lot of electronic components.
Current supported BLE central devices:
iOS 7 or 8
  • iPhone 4s
  • iPhone 5/6 (all models)
  • iPod touch 5
  • iPad 3/4/mini/Air
Android 4.3 or above (4.4 recommended for stability) with Bluetooth 4.0 hardware support
Windows Phone 8.1
  • Nokia Lumia 630
  • (please report any other Windows Phone devices supported)

Windows 8.1 with built-in Bluetooth 4.0 or USB dongle
Mac OSX 10.9.2 with built-in Bluetooth 4.0 or USB dongle
Linux with BlueZ 5.1 with built-in Bluetooth 4.0 or USB dongle
Programming
There are three options to program your BLE Nano with MK20 USB Board.
Nordic nRF51822 BLE SDK
If you want the full power of nRF51822, you should use 
Nordic nRF51822 BLE SDK, we provide a product key for all registered users* of our BLE Nano to download the SDK.
We have prepared a guide "
Firmware Development with nRF51822 SDK" to show you how to use the SDK with ARM GCC.
mbed's Bluetooth Low Energy API
The 
mbed platform, developed by ARM, provides free software libraries and online tools for professional rapid prototyping of products based on ARM microcontrollers. Their Bluetooth Low Energy Development Team has released the mbed BLE API together with 10+ samples.
Our "
Getting Started with nRF51822" guide shows you how to start programming with mbed.
Arduino Library for nRF51822
We have developed an Arduino library for nRF51822 which will be open-sourced and publicly available in the future; it is still at pre-release stage but we invite all interested registered users* of our BLE Nano to access the pre-release library and sample sketches including BLE Controller, Beacon, Heart Rate Monitor etc. Please refer to our "
Getting Started with nRF51822" guide for more details.
* You will find a product registration card inside the BLE Nano box with the instruction on how to register.
Power Supply
VIN
The BLE Nano can accept 3.3V to 13V from the VIN pin, voltage will be regulated to 3.3V via the onboard LDO as the nRF51822 chip operates at 3.3V. Thus, you can connect a rechargeable battery to it directly. Also, if you have another component to work with the BLE Nano, you can get 3.3V from the VDD as power supply to your component.
VDD
VDD can accept 1.8V to 3.3V only, if you have another MCU to work with the BLE Nano and that can supply 1.8V to 3.3V output, you should connect it to VDD of the BLE Nano. This would allow your BLE Nano to work components below 3.3V (e.g. 1.8V).
*Caution
  • DO NOT supply power from both VIN and VDD, it will damage the BLE Nano
  • DO NOT supply higher than 3.3V to VDD, it will damage the BLE Nano
  • DO NOT supply higher than 13V to VIN, it will damage the BLE Nano
BLE Nano Pinout
The on-board LED is connected to Pin 19 (P0_19).
Pin 30 (P0_30) is used as a signal pin. If short switch S5 but leave switch S10 open, pin 30 will be GND (low); if short S10 but leave S5 open, pin 30 will be VDD (high). Developer can make appropriate decision in the firmware according to the state of pin 30; some Nordic's firmware detect this to decide which pins to be used as Serial (UART) pins.
Switches S1 to S4 and S6 to S9 are used to select which pins to be used as UART connections (RTS, RXD, TXD and CTS). By default they are wired to p8 to p11, most Nordic's firmware use this settings, for example their Packet Sniffer firmware. If you want to have more analog pins for your project, you could consider routing the serial interface to p0 to p3.
BLE Nano Specification
Microcontroller
Nordic nRF51822
CMSIS-DAP Chip
Freescale MK20
Operating Voltage
1.8V to 3.3V
Input Voltage
1.8V-3.3V (VDD)
3.3V-13V (VIN)

Caution: Use either one power source at a time, otherwise you will damage the board.
Clock Speed
16MHz
Connectivity
Bluetooth 4.0 Low Energy
Serial (TX/RX)
I2C
SPI
Flash Memory
256KB
SRAM
16KB
Dimensions
18.5 x 21.0mm
I/O Pins
11
MK20 USB Board
The MK20 (Freescale MK20DX128VFM5) USB board acts as a dongle, it accepts 5V from USB port and regulates to 3.3V via the onboard LDO which can be used to power BLE Nano. It appears on your computer as both a serial port and a removable mass storage disk. Please refer to the guide Getting Started with BLE Nano to learn how to deploy firmware using MK20 USB board.
Since the BLE Nano can work as low as 1.8V, we have designed the MK20 USB board to run at 1.8V as well, simple short the switch S, then the regulator will outputs 1.8V instead. This would allow your BLE Nano to work with 1.8V components.
제품 문의 : cksung@md-korea.kr, 010-6237-3457

BLE Nano and RBL nRF5822 아두이노 개발환경 설정

BLE Nano와 RBL nRF51822 제품은 Arduino 1.6.2 환경에서 Test 완료 하였습니다.
우선 Arduino 1.6.2를 설치합니다.
설치 후 Boards Manger를 실행하여 Type : Arduino를 선택 후 Arduino SAM Boards를 설치합니다.
BLE Nano 와 RBL nRF51822 제품의 Add-on을 Download합니다.
  • Zip 파일을 받은 후 압축 해제합니다.
  • D:\Raytac\RedBear\nRF51822-Arduino-master\nRF51822-Arduino-master\arduino-1.5.x\hardware
아두이노 IDE에 Download한 Add-on을 설치합니다.
  • 설치 위치 : C:\Users\LG(사용자명)\Documents\Arduino\hardware
  • 설치할 파일 : 압축해제 후 D:\Raytac\RedBear\nRF51822-Arduino-master\nRF51822-Arduino-master\arduino-1.5.x\hardware
    하위 폴더(RBL)
  • 설치 방법 : Download 파일에서 RBL 폴더를 설치 위치에 복사
USB to Serial port를 사용하기 위하여 Mbed virtual com port driver를 설치

Board 및 사용 COM Port 설정

설정 완료 후 BLE API 관련 예제를 Load하여 개발하면 됩니다.

BLE bluetooth 4.0 nrf51822 module

MDBT40 Bluetooth Low Energy Module



인증 현황 : Bluetooth, FCC, CE, TELEC(일본), KC
다수의 인증을 모듈 지원하여, 빠른 제품 적용이 가능
2.4GHZ transceiver: -93dbm sensitivity in Bluetooth low energy mode; TX Power -20 to +4dbm; RSSI (1db resolution)
ARM Cortex-M0 32bit processor ; Serial Wire Debug (SWD)
S100 series SoftDevice ready
Memory: 256kb or 128kb embedded flash program, memory ; 16kb RAM
Support for non-concurrent multiprotocol operation: On-air compatibility with nRF24L series
Flexible Power Management: Supply voltage range 1.8V to 3.6V ; 2.5us wake-up using 16MHz RCOSC ; 0.6uA @ 3V mode ; 1.2uA @ 3V in OFF mode + 1 region RAM retention ; 2.6uA @ 3V ON mode, all blocks IDLE
8/9/10 bit ADC- 8 configurable channels
31 General Purpose I/O Pins
One 32bit and two 16bit timers with counter mode
SPI Master
Two-wire Master (I2C compatible)
UART (CTS/RTS)
CPU independent Programmable Peripheral Interconnect (PPI)
Quadrature Decoder (QDEC)
AES HW encryption
Real Timer Counter (RTC)

 Introduction :                                                                
 
        Raytac’s MDBT40 is a BT4.0 & BT4.1 stack (Bluetooth low energy or BLE) module designed based on  Nordic nRF581xxx SoC solution incorporates: GPIO, UART, I2C and ADC interfaces for connecting  peripherals and sensors.
 
 The Merit of Raytac MDBT40 Module:
  1. Long Working Distance (Over 80M in open space)
  2. Declaration ID already included all Nordic applied profiles.
  3. FCC (USA) & Telec (Japan)certificate & CE(EU)granted.
 
 The feature of the module:
  1. Dual Transmission Mode of BLE & RF 2.4G upon customer preference.
  2. Compact size with (L)18x(W)10x(H)3.2mm
  3. Low power requirements, ultra-low peak, average and idle mode power consumption.
  4. Compatible with a large installed based of mobiles phones, tablets and computers.
  5. Fully coverage of BLE software stack including:
      Proximity Profile; Heart Rate Profile; Health Thermometer Profile;
      Blood Pressure Profile; Running Speed & Cadence Profile;
      HID Over GATT Profile; Alert Notification Profile; Glucose Profile;
      Cycling Speed & Cadence Profile
      Fully support customers to suit the needs of any application!
  6. BLE & RF transmission switching may help products to fit all operation system
  7. BLE & RF transmission switching may help products to fit all kinds of hardwares.
 
 Applications :                                                               
 
 • Computer peripherals and I/O devices
    1. Mouse
    2. Keyboard
    3. Multi-touch trackpad
 • Interactive entertainment devices
    1. Remote control
    2. 3D Glasses
    3. Gaming controller
 • Personal Area Networks
    1. Health/fitness sensor and monitordevices
    2. Medical devices
    3. Key-fobs + wrist watch
    4. Remote control toys
 개발 환경                                                                      
  • Nordic SDK 이용

제품 문의 : cksung@md-korea.kr, 010-6237-3457

BLUETOOTH DUAL MODE AUDIO 사용기

최근 Bluetooth를 이용한 다양한 악세사리가 개발되고 있어서 통신 기능을 테스트해 보기로 했습니다.

현재 개발 목표는 Bluetooth Speaker를 만들어서 스마트 폰으로 제어하는 기능을 만들어볼 계획입니다.
iBeacon 기능을 이용하여 집에 들어가면 원하는 음악이 Play되도록 APP을 구현해볼 계획입니다.

아직 APP 개발을 잘하지 못해서 잘 마무리될지 모르겠네요

개발에 앞서 우선 적당한 Bluetooth 제품을 선정했습니다.
위의 기능 구현을 위해서 Bluetooth에서 지원하는 기능을 정리해 보았습니다.

Bluetooth Profile : 
  • iPhone : A2DP, HFP, BLE
  • Android : SPP, A2DP, HFP, BLE
인터넷 검색하다 제 생각에는 최적이라 생각되는 제품을 찾았습니다.
A2DP, HFP등 Audio 통신 테스트를 위하여 별도의 Codec 작업등 Hardware를 별로 만지지 않아도 기능 테스트가 가능할것 같았습니다. 
Link에 제품에 대하여 간략하게 소개 자료 올려 놓았습니다.

제조사 홈페이지(http://www.bluecreation.com 에서 개발보드를 확인하니 195파운드, 원화로 계산하니 33만원이 넘네요.
운송료, 카드 수수료등 기타 비용을 합치면 40만원이 넘을듯하여 너무 비싸서 지르지 못하고 계속 검색해 보았습니다.
https://www.sparkfun.com/products/11924 사이트에서 BC127 모듈을 이용하여 저렴하게 만든 제품이 있어서 구매하여 제품을 받았습니다.

제품 : SparkFun Purpletooth Jamboree - BC127 Development Board 

가격 : US$ 50
좀더 저렴한 제품도 있었으나 US$5 정도의 차이라 Audio Test까지 Test가 가능한 제품으로 구매했습니다.

달러 환율도 높고 운송료와 카드 수수료등 제반 비용 합치니 만만치 않네요 ㅠㅠ

 

헉 USB Port가 있어서 USB to Serial을 지원하는지 알았는데 지원하지 않네요 ㅠㅠ
Sparkfun에서 제품 자료를 다시 검색해보니 UART Port를 연결해야 통신이 가능하네요.


 
[UART Port 연결 사진]
 
[USB to Serial board와 BC127 개발 킷 연결]

Serial 통신 Program Tera Term(http://ttssh2.sourceforge.jp/index.html.en 을 이용하여 통신 Test는 잘 되엇습니다.
1차 과정은 다행히 잘 마무리 되었습니다.
 
[통신 Port 설정]

이제 본격적으로 Bluetooth 기능 Test를 진행해야 겠네요.
우선 BLE 통신 Test를 위해서 App Store에서 Bluecreation으로 검색해서 App을 설치 하였습니다.
이런 APP에서 제품이 검색이되지 않습니다. 주변의 다른 Device는 검색되는데 ㅠㅠ
제조사 홈페이지에서 Manual을 Download하여 열공......
BLE Advertising이 초기 설정은 OFF되어 검색이 되지 않았네요 ㅠㅠ

PC에서 Serial 통신으로 Advertising하도록 Module을 설정하니 정상적으로 검색이 됩니다.
Command : ADVERTISING ON

정상적으로 연결하였습니다.
Data를 보내기 받기 모두 잘 되네요. BLE 통신은 iAP를 이용하지 않아도 외부 Device와 통신이 가능해서 좋은거 같습니다.
 

앱의 메뉴를 확인하니 스마트폰으로 Module의 제어도 가능하네요.
 
스마트폰에서 모듈 제어도 정상적으로 진행되네요.

앱의 메뉴에 OTA(Over the Air) 기능이 있어서 Test 해보려 했으나 BC127은 OTA를 지원하지 않네요.
스마트폰 APP Source가 제조사 홈페이지(http://www.bluecreation.com/firmwareupdates.php 에 있네요.
BLE로 기능 test는 마무리하였고 다음에 Audio Multi connection 기능 및 스마트폰으로 음악 조정하는 기능 Test하여 
사용기 올려보도록 하겠습니다.

APP 개발 부분은 잘 모르지만 제가 Test 진행해서 아는 부분은 공유하겠습니다.

Bluetooth 개발 보드에 관심이 있으시면 연락주세요
연락처 : cksung@md-korea.kr, 010-6237-3457

LTE Cat M1 Global USIM 사용 장점

Global USIM을 사용하면 2가지 정도 장점이 있습니다. ​ 1. 국가별로 다른 USIM 사용할 필요 없음. 2. 국가별 통신사 인증 없이 사용 가능 ​ Global USIM을 사용하기 위해서는 LTE Module 또는...