2014年2月19日水曜日

ubuntuでusb温度計を動かしてみた

デバイスは、アマゾンではなく、yahoo shoppingで2個購入
送料入れて2000円しない

参考にしたのはここ

mkdir temper
git clone https://github.com/bitplane/temper.git
make

usb.hがなくmakeできない

sudo apt-get install libusb-dev

今度はmake成功

sudo ./temperで 時刻と温度が表示されるが、時刻ずれているのでソースを修正
再度makeして、時刻も日本になった


readmeを読むと、sudoを用いなくても実行できる方法が載っている

添付の 60-temper.ruleを /etc/udev/rules.d/にコピー
sudo cp 60-temper.rules /etc/udev/rules.d/

temperグループの追加
sudo groupadd temper
sudo gedit /etc/group
最後の行にtemperがあるので自分のユーザIDを追加

udevcontrol reload_rules
でルールの更新を試みるがubunutuには、udevcontrolがない
仕方がないので再起動を行う

./temperで表示ができた

現在ノートPCのコネクターに直接挿入しているがPCの影響を受けるので、USB延長ケーブルを購入することを考える

2014年2月18日火曜日

ubuntuでiBeaconの電波を送信してみた

今度は、Cのプログラムで

オリジナルはこちら
Raspberry Pi で iBeacon を試してみよう


ソースの取得とmake
git clone https://github.com/carsonmcdonald/bluez-ibeacon.git
cd bluez-ibeacon/bluez-beacon/
make

実行 EstimoteのUUIDを使用

sudo ./ibeacon 200 B9407F30F5F8466EAFF925556B57FE6D 0 0 -29

ソースはbluez-ibeacon/bluez-beacon/ibeacon.c

55行にビーコン送信間隔の設定があり、第1パラメータが設定されている
最大と最初の値が同じ値を使用している、異なる値にした場合に関しては、規格書などを見ないと不明である


  le_set_advertising_parameters_cp adv_params_cp;
  memset(&adv_params_cp, 0, sizeof(adv_params_cp));
  adv_params_cp.min_interval = htobs(advertising_interval);
  adv_params_cp.max_interval = htobs(advertising_interval);
  adv_params_cp.chan_map = 7;

他にpassbookのサンプルもついているので今度試してみる

node.jsを使用し、ubuntuでiBeaconの電波を送信してみた 成功編

オリジナルの記事は、iMacなので、前回までのようにbluetoothのインストールと権限の対処が必要となる

BLUETUS iBeacnでは、受信できなかったため、UUIDをEstimoteのIDに変更した
電力は、適当。

下記のようなソースを、例えば、central.jsという名前で保存し、
sudo node central.jsを実行、iPod(iPhone)では、Estimoteのアプリを使用すると無事検出できた。


Bleacon = require('bleacon');

var uuid = 'B9407F30F5F8466EAFF925556B57FE6D';
var major = 0;
var minor = 0;
var measuredPower = -40;

Bleacon.startAdvertising(uuid, major, minor, measuredPower);

以上

2014年2月17日月曜日

node.jsを使用し、iBeaconの電波を送信してみた 3

homeにあるプログラムをroot所有に変更すると他のnode.jsのプログラムに支障がでそうなので、所有者を自分に戻した

代わりに

sudo /home/hoge/.nvm/v0.10.25/bin/node /usr/sbin
にコピー

これで
sudo node beacon.jsで動作させることができるようになった

node.jsを使用し、iBeaconの電波を送信してみた 2

前回警告がでてしまい、電波が送信されていなかった。

権限関連だと思いnodeのオーナとグループが自分になっているのを、それぞれsudo chown、 sudo chgrpでrootに変更

ls -l /home/hoge/.nvm/v0.10.25/bin/node
-rwxr-xr-x 1 root root 9528535  1月 24 04:22 /home/hoge/.nvm/v0.10.25/bin/node

beaconの送信
sudo /home/hoge/.nvm/v0.10.25/bin/node beacon.js
今度は警告なし

nexus5のBluetoothアプリは、電波を受信
しかし、iPodのbeaconアプリは反応せず


今度は、受信アプリを動かし、iPodからEstimoteアプリでbeaconをエミュレートし、ビーコンを送信した。ubuntuで、電波が受信できている

送信の件に関してもう少し、調べてみる

node.jsを使用し、iBeaconの電波を送信してみたが

オリジナルの記事はこちら
たった6行!最も簡単にiBeaconの電波を「発信」する方法


node.jsは、0.10.25を使用した。

cd ~/ibeacon
npm install bleacon

ここで bluetooth/bluetooth.h: そのようなファイルやディレクトリはありません
でビルドエラーとなる

bluetooth.hを準備
sudo apt-get install libbluetooth-dev

成功すると

noble install: done
bleacon@0.2.0 node_modules/bleacon
├── debug@0.7.4
├── bignum@0.6.2
├── bleno@0.1.2
└── noble@0.2.8
が表示される


usbドングルを挿入しlsusbで確認

Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
が認識されている


node beacon.jsを実行するが
noble warning: adapter state unauthorized, please run as root or with sudo
bleno warning: adapter state unauthorized, please run as root or with sudo
となる

調べてみると電波は出ていないようだ。

ubuntu 12.10 にnode.jsをインストールした

手順のメモ

mkdir nvm
cd nvm
git clone git://github.com/creationix/nvm.git .
./install.sh

cd

. ./.nvm/nvm.sh
nvm install v0.10.25
nvm ls


.bashrcに追加
. ~/.nvm/nvm.sh
nvm use v0.10.25