FC2ブログ

iOS版BeacondoアプリをOnyx Beacon CMSに組み込む手順

iOS版Beacondo SDKとXcodeでビルドしたネイティブアプリにOnyx Beacon SDKを組み込み、ビーコン端末に近接した際、アプリにクーポンをプッシュ通知する手順の内容です。


第1章 サンプルアプリの概要

1-1 ビルド開発環境
・Xcode Version 7.2
  ※クーポン一覧画面とクーポン詳細(画像)画面はMaster-Detail Application
テンプレートを使用しています。
・Beacondo-sdk-v.2
・OnyxBeacon.iOS.SDK.2.1.8.2

1-2機能の概要
・トップ画面下のクーポンボタンをタップすると、クーポン一覧画面を表示します。
・クーポン一覧画面からクーポン名をタップすると、クーポン詳細(画像)画面を表示します。
・クーポン詳細(画像)画面をタップまたは右から左へスワイプするとWEBブラウザを起動し、クーポンに指定されたURLを表示します。
・クーポン画像画面(画像)を左から右へスワイプするとクーポン一覧画面を表示します。


第2章 Onyx Beacon SDKインテグレーション
2-1 Onyx Beacon SDKインテグレーション画面にバンドルID登録
https://connect.onyxbeacon.com/admin/にログイン後、画面右上のログインIDをクリックし、
ガイドを選択します。

図-01
図-01


2-2 SDKインテグレーション
SDKインテグレーションをクリックします。

図-02
図-02

2-3バンドルIDの入力
インテグレーション画面からアプリケーション名とXcodeプロジェクトに設定するバンドルIDを入力します。

図-03
図-03


*XCode画面

図-04
図-04


第3章 OnyxBeacon SDKとXCode
3-1 OnyxBeacon SDKライブラリをXCodeプロジェクトに追加
OnyxBeaconLib.frameworkをXcodeプロジェクトにドラッグ&ドロップします。

図-05
図-05


3-2 Xcodeの設定
設定を確認し、 [Finish]ボタンをクリックします。

図-06
図-06


第4章 CoreBluetoothと CoreLocation

4-1 CoreBluetoothと CoreLocation ライブラリをXCodeプロジェクトに追加
[+]ボタンをクリックし、CoreBluetooth.frameworkとCoreLocation.frameworkを追加します。

図-07
図-07


第5章 AFNetworkingとAFOAuth2Client

5-1 AFNetworkingとAFOAuth2ClientソースフォルダーをXcodeプロジェクトに追加
AFNetworkingフォルダをXcodeプロジェクトにドラッグ&ドロップします。

図-08
図-08


5-2 XCodeの設定
設定を確認し、 [Finish]ボタンをクリックします。

図-09
図-09


5-3 AFOAuth2Clientフォルダ
AFOAuth2ClientフォルダをXcodeプロジェクトにドラッグ&ドロップし、AFNetworking
フォルダと同様に追加します。

図-10
図-10


第6章 ソースファイル修正
Onxy Beacon SDKを使用する時にポイントとなる初期処理、受信済みのクーポンの取得、
ビーコンからクーポンを受信した時の処理、クーポンの削除について記載しています。Xcode
プロジェクトのソースにもコメントを記載していますので参考にしてください。

クーポン一覧画面とクーポン詳細(画像)画面はMaster-Detail Applicationテンプレートを使用して
います。


6-1 AppDelegate.h

@interface AppDelegate : UIResponder
  ↓ 変更
@interface AppDelegate : UIResponder



6-2 AppDelegate.m


#define SA_CLIENTID @"51090e1ce50215f09aeeaa2fce3c73a5ad397788"
#define SA_SECRET @"f8b606225e25da9e12dc6b549b73e0cfd05acc25"


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ・
  ・
  ・
[[OnyxBeacon sharedInstance] requestAlwaysAuthorization];
[[OnyxBeacon sharedInstance] startServiceWithClientID:SA_CLIENTID secret:SA_SECRET];
[[OnyxBeacon sharedInstance] setDelegate:self];
[[OnyxBeacon sharedInstance] setContentDelegate:self];
  ・
  ・
  ・
}

// 受信済みクーポン取得
- (void)loadContent {
// 受信済みクーポン取得
self.coupons = [[OnyxBeacon sharedInstance] getContent];
// 受信済みクーポンから詳細情報を表示していない件数をカウント
int i = 0;
for (OBContent *content in self.coupons) {
if (content.contentState == ContentStateUnread) {
i++;
}
}
// 受信済みクーポンから詳細情報を表示していない件数をバッチ表示
if(SYSTEM_VERSION_LESS_THAN(@"8.0")) {
[UIApplication sharedApplication].applicationIconBadgeNumber = i;
} else {
UIUserNotificationSettings *settings =
[[UIApplication sharedApplication] currentUserNotificationSettings];
if (settings.types & UIUserNotificationTypeBadge) {
[UIApplication sharedApplication].applicationIconBadgeNumber = i;
}
}
}

// ビーコンからクーポンを受信した時にコールされるメソッド
- (void)didReceiveContent:(NSArray *)coupons {
// 通知表示
for (OBContent *coupon in coupons) {
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.alertBody = coupon.message;
notification.userInfo = @{@"uuid": coupon.uuid};
notification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}
// 受信済みクーポン取得
[self loadContent];
// 効果音を鳴らす
AudioServicesPlaySystemSound(1000);
// アラート表示
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"クーポンを受け取りました。" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[alert show];
}


6-3 MasterViewController.m

- (void)tableView:(UITableView *)tableView commitEditingStyle:
(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

// 一覧から削除されたクーポンを削除
if (editingStyle == UITableViewCellEditingStyleDelete) {
int i = 0;
for (OBContent *content in self.coupons) {
if (i == indexPath.row) {
[[OnyxBeacon sharedInstance]deleteContent:content];
break;
}
i++;
}
self.coupons = [[OnyxBeacon sharedInstance] getContent];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:
UITableViewRowAnimationFade];
if ([self.coupons count] == 0) {
[[NSNotificationCenter defaultCenter] postNotification:
[NSNotification notificationWithName:@"dismissCouponList" object:self]];
}
}
}

以上です。












スポンサーサイト

BeaconDroid SDK【Android版Beacondo】のOnyx Beacon CMS組み込み手順

BeaconDroid SDK(Android版Beacondo)のOnyx Beacon CMS組み込み手順の説明をします。管理ネイティブアプリツール - Beacondoを利用して、Onyx Beacon CMSのミドルウェアをiBeaconアプリに組み込んでビーコン端末にスマホが近接すると適切なクーポンが配信される仕組みです。Android環境のBeaconDroid v2.0をバージョンアップしましたのでお知らせいたします。


1.サンプルアプリ概要
1-1.Buildした開発環境:

・OS X El Capitan バージョン10.11.6
・Android Studio 2.1.2
・jdk1.8.0_102
・BeacondoDroid-b5
・OnyxBeacon.Android.SDK.2.3.1
  ||||
 ダウンロード先

http://www.ibeacondo.com/download/



1-2.機能概要
・通知バーの「JapanTourismタップすると、クーポンを表示します。」をタップすると、クーポン一覧画面を表示します。
・クーポン一覧画面からクーポン名をタップすると、クーポン詳細(画像)画面を表示します。
・クーポン詳細(画像)画面をタップすると、クーポンに指定されたURLを表示します。
・クーポン一覧画面から「削除」ボタンをタップすると、クーポンを削除します。

2.OnyxBeacon SDKインテグレーション画面にパッケージ名登録
2-1.https://connect.onyxbeacon.com/admin/にログイン後、画面右上のログインIDをクリックし、ガイドを選択します。
図①




2-2.SDKインテグレーションをクリックします。
図②




2-3.インテグレーション画面からアプリケーション名とAndroid Studioプロジェクトに設定するパッケージ名を入力します。
図③



Android Studio
図④



3.Onyx Beacon SDKライブラリをAndroid Studioプロジェクトに追加
3-1.OnyxBeaconLibrary-release.aarをBeacondoのAndroid Studioプロジェクト内BeacondoApp/app/libsフォルダにコピーします。
図⑤



4.ソースファイル(設定ファイル及びjavaファイル)修正
OnxyBeaconSDKを使用するための設定、および初期処理、ビーコンからクーポン受信時の処理等をBeacondoのプロジェクトファイルに追加しています。追加部分については「OnyxBeacon SDK対応」のコメントを記載しています。追加内容についてはOnxyBeaconSDKに付属のSampleアプリからの流用ですので、Sampleアプリのプロジェクトも参考にしてください。
図⑥



4-1.AndroidManifest.xml
 Beacondoの設定ファイルにOnyxBeaconSDKを使用するための設定を追加しています。
以下の部分については https://connect.onyxbeacon.com/admin/ からアプリIdとパスワードを取得して、設定してください。
android:name="clientid"
android:value="bff4028061729fb1d50fe39fed76f229221aaa04" />
android:name="secret"
android:value="77a069ab1f033e43d2b56f73575c57d94e7d98a9" />

4-2.build.gradle
 Beacondoの設定ファイルにOnyxBeaconSDKを使用するための設定を追加しています。

4-3.RootActivity.java
 BeacondoのソースファイルにOnyxBeaconSDKを使用するための初期処理を追加しています。

4-4.ContentReceiver.java
 クーポンを受信するためのクラスです。

4-6.CouponListActivity.java
 クーポン一覧を表示するためのクラスです。

4-5.CouponAdaper.java
 クーポン一覧の一行を表示するためのクラスです。

4-7.activity_coupon_list.xml
 クーポン一覧を表示するための画面レイアウトです。

4-8.item_coupon.xml
 クーポン一覧の一行を表示するための画面レイアウトです。


5.Androidプロジェクトについて
 Android Studio を使用してBeacondoのプロジェクトを開くと、以下のダイアログが表示される場合があります。その時は「Don’t remind me again for this project」または「Remind me later」をクリックしてください。

図⑦












省エネ長距離無線通信「LoRa」導入ガイドを上梓!

最近は、様々なメディアで”IoT”が取り上げられる機会が増え、”IoT”は最も旬のバズワードとなりました。調査会社カードナー社によると2020年には世界で250億個もの通信ノードがインターネットに繋がると予測しています。

拡大するIoT化に向けて、無免許で長距離無線通信が可能な「LoRa」(=Long Rangeの接頭2文字をつけた造語)に注目しました。既にオランダや韓国では、国土レベルでLoRaWANゲートウェイを設置し、IoT化を推進しています。

LoRa_logo (1)

「LoRa」は、米国ファブレス半導体メーカーであるSEMTECH社が、フランスのベンチャー会社Cycleo社のサブGHz帯無線変調特許技術を買い取り、半導体として商品化したものです。2015年に「LoRa Allicance」団体を立ち上げ、インターオペラビリティを指向しているオープンな無線技術です。

現在通信キャリアが手がける3Gに比べると通信コストは無料となり、各国で規定されたサブGHz無線帯域を誰でも自由に利用することができます。



これからIoT化時代にむけて様々なセンサーや機器類をインターネットにつなげる際、省エネで長距離無線に適した場面で活用できるため、「LoRa」導入ガイドを上梓しました。2016年9月末、書籍は工学社から書籍化・全国書店で発売される予定です。







◆Dragino LoRa IoTキットのプレゼン動画



◆詳細はこちらから.
↓↓↓↓↓↓
http://www.crijapan.jp/index.php/ja/iotgateway.html

■IoTゲートウェイカタログをダウンロード
  ↓↓↓↓↓↓
http://www.ibeacondo.com/download/IoTGateway_catalog.pdf



■Dragino社LoRaWAN対応IoTゲートウェイ
・SEMTECH社LoRa通信チップ搭載したIoTゲートウェイ LG01-JP




■LoRaWAN対応センサーノード LoRa mini 920-JP表



■LoRaWAN対応センサーノードLoRa mini 920-JP裏



■LoRaWAN対応センサーノードLoRa mini 920-JPをArduino IDE互換開発PCBに装着している様子




■「LoRa」導入ガイド―「IoT」「LoRa」の仕組みから、「IoTアプリケーション」の実例までのLoRa入門書


A5判  160ページ 定価 2,484円(本体2,300円)
ISBN978-4-7775-1972-9 C3004 2300円
2016年 9月28日 工学社より全国書店にて発売!
◆工学社のサイト
↓↓↓↓↓↓↓

https://www.kohgakusha.co.jp/books/detail/978-4-7775-1972-9





iBeaconとLoRaWANゲートウェイが連携した街全体IoT化プロジェクト - 「IoT Living Lab」

ちょうど1年前、2015年7月にサービスローンチしたオランダ・アムステルダム市内のiBeaconとLoRaWANゲートウェイを連携した広域エリアのIoT化事例です。 もともとオランダの通信キャリア KPNが、「LoRa」を使うネットワーク網を構築するという後押しもあり、アムステルダム市およびオランダ国全体がIoT化を具現化、まさにスマートシティの最適な事例です。

ウェブスター大学の非常勤講師、ビーコンメーカーGlimworm Beacon社の共同投資家、そしてIoT Living Labの発案者でもある Paul Manwaringがこのプロジェクトの推進者です。



◆IoT Living Labのサイト

http://ibeaconlivinglab.com/




ビーコンメーカー、LoRaWANインフラサービス、アプリサービス、大学、クラウドインフラはIBM Bluemixを利用し、Node-REDを使いIoTアプリケーションを開発しています。


iBeaconは近接距離をカバーし、ビーコンログデータはLoRaWANゲートウェイを経由して長距離間をカバーしています。


アムステルダム市内全体にiBeaconが設置されています。このビーコン環境を"Amsterdam Beacon Mile"と命名しています。



ArduinoにLoRa通信シールドを実装したLoRaWANゲートウェイで試作しているところ。2回にわたり、”IoT Olympic”と命名したハッカソンを主催し、参加者からアイデアを募り、IoT Living Labを具現化しました。


LoRaWANゲートウェイを屋根上のアンテナに設置工事している様子


通信キャリアKPNは、アムステルダム市内全域をLoRaWANゲートウェイで無線接続できる環境を提供

◆Amsterdam Beacon Mileプロジェクトの動画


◆IoT Living Labの発案者Paul Manwaringの動画

◆IoT Living LabのオーナーPaul Manwaringのプレゼンテーション資料


◆Building the world’s biggest iBeacon living lab with WSO2


Paul Manwaring、受賞の記念写真


*火災報知機など様々なセンサー類とLoRaWANゲートウェイとBeacon端末で災害に強い街を実現!





■日本IBM様のBluemixユーザー事例としてとりあげていただきました!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
無免許、無料で利用できる長距離無線通信規格「LoRa」を使ったIoTインフラ事業にPaaS基盤が欠かせなかった理由


LoRa miniと温度・湿度センサーをセットにしたLoRa IoTスターターキットは、ただいまオープンウェーブ社から販売中です!

■IoTセンサーノード LoRa mini



そこでさまざまなセンサー類にLoRa通信機能を実現できるLoRa mini(LG01およびLoRa mini共にArduino IDE互換)を組み合わせて、IoTゲートウェイをセットにしたのが、LoRa IoTスターターキットです。



まずはIoTを体感してみたい人に最適です!LoRa IoT スターターキットには2つの組み合わせがあります。

LoRa IoT スターターキット-I
・LoRaゲートウェイ LG01JP  × 1
・LoRa miniセンサーノード × 2
・LoRa mini用アンテナ       × 2
・LoRa mini用開発ボード    × 2
・LoRa mini着脱可能テストユーティリティ × 1
・温度、湿度センサーDHT11  × 2

LoRa IoT スターターキット-II
・LoRaゲートウェイ LG01-JP  × 2
・LoRa miniセンサーノード  × 5
・LoRa mini用アンテナ  × 5
・LoRa mini用開発ボード × 2
・LoRa mini着脱可能テストユーティリティ × 1
・温度、湿度センサーDHT11  × 2

LoRa IoT スターターキット販促チラシ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.ibeacondo.com/download/LoRa_IoT_Starter_Kit.pdf

◆LoRaWAN対応IoTゲートウェイ 「LG01-JP」日本語マニュアル(初回版)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.ibeacondo.com/download/LG01_LoRa_Gateway_Manual_JP.pdf

◆上記マニュアルでIoTプラットフォームThingSpeakへのLoRaWAN対応IoTゲートウェイとLoRaノードと温度・湿度センサーのクラウド実装方法を説明しております。 ThingSpeakは、とりあえず無料で試すことができます!

◆オープンウェーブ社の開発部鈴木さんにLoRa無線用サーバーおよびクライアント用Arduinoスケッチを開発していただきました。LoRaでIoTプラットフォーム(ThingSpeak)にデータを上げる方法は、下記Qiitaサイトで公開しております。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
LoRaでIoTプラットフォーム(ThingSpeak)にデータを上げる方法

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
LoRaWANでIoTプラットフォーム(The Things Network)にデータを上げる方法

https://thingspeak.com/



LoRa IoT スターターキットの発売および価格は当社パートナーのオープンウェーブまでお問い合わせ下さい。

LoRa IoTスターターキット発売元
株式会社オープンウェーブ
〒221-0822 神奈川県横浜市神奈川区西神奈川1-8-11-103
Tel: 045-620-6648
Email: info@openwave.co.jp
http://www.openwave.co.jp/lorawan/

■ようやく、技適審査が認定されました!







◆Dragino LoRa IoTキットのプレゼン動画



◆詳細はこちらから.
↓↓↓↓↓↓
http://www.crijapan.jp/index.php/ja/iotgateway.html

■IoTゲートウェイカタログをダウンロード
  ↓↓↓↓↓↓
http://www.ibeacondo.com/download/IoTGateway_catalog.pdf



■Dragino社LoRaWAN対応IoTゲートウェイ
・SEMTECH社LoRa通信チップ搭載したIoTゲートウェイ LG01-JP




■LoRaWAN対応センサーノード LoRa mini 表





■LoRaWAN対応センサーノードLoRa mini 裏



■LoRaWAN対応センサーノードLoRa miniをArduino IDE互換開発PCBに装着している様子








■LoRa mini用着脱可能なテストユーティティ
Arduino IDEで開発したさまざまなセンサー制御プログラムをLoRa mini本体にロードするためのテストユーティリティ




■「LoRa」導入ガイド―「IoT」「LoRa」の仕組みから、「IoTアプリケーション」の実例までのLoRa入門書


A5判  160ページ 定価 2,484円(本体2,300円)
ISBN978-4-7775-1972-9 C3004 2300円
2016年 9月28日 工学社より全国書店にて発売!
◆工学社のサイト
↓↓↓↓↓↓↓

https://www.kohgakusha.co.jp/books/detail/978-4-7775-1972-9





カレンダー
07 | 2016/08 | 09
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
プロフィール

吉田秀利

Author:吉田秀利
はじめまして!友人から教えてもらったオープンソースを仕事にいかしています。Tips&Tricksをご紹介します。

「世界最大LoRaWANコミュニティThe Things Network」

詳細はこちらから...

「The Things Network」

詳細はこちらから...

「LoRa導入ガイド」

詳細はこちらから...

「iBeaconアプリ開発ガイド」

詳細はこちらから...

crijapan

http://www.crijapan.jp

最新記事
月別アーカイブ
カテゴリ
ネイティブスマホアプリが簡単にできる!
クラウドPBX Voipditto.com
オープンソース執筆本

 オープンソースツール執筆本: 

Trixbox実績ガイドブック