このお話は、IoT縛りの勉強会! IoTLT vol.25 @freeeでLTした内容です。
ウケ狙いでLTしたため、技術的なことは喋りませんでした、ここに書いておきます。
LTの内容(SlideShare)
CC2650STK(センサタグ)
今回は、BLEセンサーとして使っていますが、センサ付きマイコンとしても使うことが可能です。
BLEセンサーとして使う場合
スマホアプリで使う
ネイティブアプリ
下記に純正アプリがあります
EvothingsStudio
- 今回利用しました。Cordovaの開発環境(JavaScript)です
- https://evothings.com/
- いわゆるPhoneGap(Cordova)の開発環境
- PC上でJavaScript書くとiPhone/Androidで実行できる
- スマホとはワイヤレスで接続、USBケーブル不用
- センサータグ専用ではないが、センサータグのライブラリがあり、
簡単にBLEのプログラム書ける
- スマホ上に実行環境アプリをインストールする必要あり
- 無料でも使える(プロジェクト数などの制限あり)
- CC2650のサンプルあり
yagitsawa さんのページが参考になります。
Raspberry piで使う
- nodeで使えます(npm install sensortag)
- Pythonも使えるようですが、私はうまくいきませんでした。
マイコンとして使う場合(DEVPACKの購入が必要\2000弱)
Energia
- Arduino IDEを基にしたIDE(C/C++)
- http://energia.nu/
Code Composer Studio(CCS)
- Eclipse を基にしたIDE(C/C++)
- http://www.tij.co.jp/tool/jp/ccstudio
CCS Cloud
- ブラウザで動作するIDE(C/C++)
- https://dev.ti.com/
プログラムの解説
サンプルをコピペ
Evothings のサンプル「TI SensorTag CC2650 & CC2541 Sensors」ほとんどそのまま利用しています。
Evothingsで音を鳴らす
チャックが開いていることを検知すると、警告音を鳴らします、
Evothingsで音を鳴らすには、wav形式などの音声(音楽)を再生します、ファイルでなくても大丈夫で、今回のように短い音の場合メモリ上に置くことも可能です。
isseium さんのページを参考にしました
function beep()
{
var base64 = "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"
var sound = new Audio("data:audio/wav;base64," + base64)
sound.play()
}
EvothingsでHTTP通信
警告音が鳴っても、チャックが開いている場合、Twillioを利用して電話をかけます。Twillioへはhttpでpostしますが、Evothingsでは「cordovaHTTP.post()」を使用します。
function twilio(sex) {
var url = 'http://内緒.co.jp/call_boy'
if (sex === 'girl') {
url = 'http://内緒.co.jp/call_girl'
}
var item = ''
console_log("twilio call item: " + item)
cordovaHTTP.post(url,
item,
{ },
function(response) {
console_log(response.status)
try {response.data = JSON.parse(response.data)
console_log(response.data.message)
} catch(e) {
console_log("JSON parsing error")
}
},
function(response) {
console_log(response.status)
console_log(response.error)
}
);
}
CC2650とEvothings
¥4,000-で10種類のセンサが、簡単に利用できます。
ちょっとした試作や、ハッカソンでの実装などのとき便利ですので、使って位はいかがでしょうか?