ネガティブなレビューを見て結構不安でしたが、値段が安いの、チャレンジした。
小さなIoTモジュールのモニターとしてテスト利用しました。
とくに問題がないです、発熱もない。運が良かったかな?
耐久性について不明です。
最初の9ドルコンピュータC.H.I.Pの作品はiBeaconにすると思う。
普通iBeaconはクーボンなどの配信をする機器だか、こちらはこどもの下校帰宅の知らせ機器にする。機能として:
名刺半分サイズだから、PCスピードなどの中に空いてる空間に組み込むして運用すると考える。
まずBluetooth検知から。下記のサイトを見ながら、教科書通りまずBluetooth keyboardからと考えた。
http://docs.getchip.com/#connecting-bluetooth-devices
C.H.I.Pには、Bluetooth 内蔵、OSも内蔵なので、特になにもインストールの必要がなく利用できる。まずbluetoothctlコマンド使って、find, pair with, and connectなどを試す。
の感じで、もう新しいDevice 見つかった。その後延々と周囲のBluetooth 機器の情報を報告。
このN0U9Zはなぜか用意したBluetooth keyboard(電池切れ?)ではなく、近所のiBeaconらしい。そうしたらも教科書通りBluetooth keyboard接続など飛ばして、自分が用意したiBeaconで体験を継続。
Raspberry Piと iBeacon関連サイトを調べて、必要な情報収集を行った。そこでわかって、bluetoothctlコマンドで対話式操作の他に、hcitool lescan で近くに BLE の端末がある場合は近づけると Mac アドレスとデバイス名を表示することもできる
検出ができたので、実現したい機能をプログラミングするだが、プログラミング環境として、まずnode.jsを考えた。
nodebrewでnode.jsをインストールして、それからbleaconというモジュールでBluetooth を操る。
bleaconを利用するために、まずは node.js をインストール。node のバージョン管理を行う nodebrew を利用してインストール。
C.H.I.Pには、curlもないので、そのインストールから
しかし”v0.10.28 is not found”と怒られて。node.jsしばらく放置したので、この間結構変わった。日本語のページは古いのままだが、英語のページも最新版4.4.0になった。それをインストールに。
しかしそのbleaconというモジュールのインストールにエラーがたくさん出るから、お手上げ。
ネットいろいろ検索して、kakakikikekeのサイトを参考にpythonで試すことにした。
Python から操作するためのライブラリをインストールします
pip を使うのでインストールしています
ここもエラーが見回り、pybluez[ble]のインストール失敗でした。
ここで試しにiBeacon-Scanner を入れてなんど機能した。
サンプルのソースは簡単で、10個 BLE情報を受信すると情報を出力しつづけてくれる。
これてこどもの下校帰宅の知らせ機器は、pythonでプログラミングすると決定。できたらまたレポートする。
参考サイト:
話題のIoTが、Raspberry Piですでに試したが、今度9ドルコンピュータC.H.I.Pでいろいろ体験すると思う。
まずWebから、LEDのON/OFFを試す。
最新状態にする
root@chip:~# apt-get update
root@chip:~# apt-get upgrade
localesを再インストールする。
root@chip:~# apt-get purge locales
root@chip:~# apt-get install locales
root@chip:~# dpkg-reconfigure locales (en_US.UTF-8 を選ぶ)
#これをしないと、下記のエラーは延々と出る。
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
apache2インストール
root@chip:~# apt-get install apache2
root@chip:~# a2enmod cgi.load
root@chip:~# /etc/init.d/apache2 restart
c環境をインストールする。
root@chip:/home# apt-get install gcc make
rootの実行権限でLEDを操作するから、最初Perlで簡単に作れると考えたが、うまくいかない。
下記の参考ページで、C言語で作った。
root@chip:/usr/lib/cgi-bin# cat on.c
#include <stdio.h>int main()
{
system("/usr/sbin/i2cset -f -y 0 0x34 0x93 0x1");
printf("Content-type: text/htmlnn");
printf("<HTML><BODY>");
printf("<H2>Hello! On</H2>");
printf("</BODY></HTML>");
return 0;
}
root@chip:/usr/lib/cgi-bin# cat off.c
#include <stdio.h>int main()
{
system("/usr/sbin/i2cset -f -y 0 0x34 0x93 0x0");
printf("Content-type: text/htmlnn");
printf("<HTML><BODY>");
printf("<H2>Hello! Off</H2>");
printf("</BODY></HTML>");
return 0;
}
root@chip:/usr/lib/cgi-bin#
コンパイルする
cc -o on on.c
cc -o off off.c
rootの実行権限を与える
chmod +s /usr/lib/cgi-bin/o*
最初に、コマンドラインで、LEDのOn/Offを確認する。
root@chip:~# /usr/sbin/i2cset -f -y 0 0x34 0x93 0x1 #On
root@chip:~# /usr/sbin/i2cset -f -y 0 0x34 0x93 0x1 #On
ブラウザから、LEDのOn/Offを試す
http://192.168.0.104/cgi-bin/on
http://192.168.0.104/cgi-bin/off
順調なら、話題のIoTが、まずWebから、LEDのON/OFFを試すことができた。
これから時間が空いたら、Raspberry Piの温度センサー、WebCameraもこちらに動かしてみる。
あとiBeaconの近接通知機能が試したいので、iBeaconのモジュールを注文した。
参考:
Next Thing Co社の9ドルコンピュータC.H.I.Pが届いた。
去年6月KickStater注文したので、また忘れかけたころに、届いた。
最初は9ドル一台に、送料の方が高いで15ドル。その後一台追加で、トータル33ドルなり、平均一台2000円未満。
C.H.I.Pは、Raspberry Piに似ている、マイクロ・コンピュータというもの、一番大きな違いは、値段とサイズ、そして予め802.11 b/g/n Wifi とBluetooth 4.0と4GのeMMCストレージ内蔵のこと.しかもLiPoバッテリー内蔵可能。
開封して、意外に小さいと、ビデオケーブルが短いと感じる。どう繋ぐかちょっと悩んでいたが、昔のビデオ切り替えスイッチが思い出して、探し出して繋がってみたら、ぴったりじゃないか!電子機器と部品自宅に溜まる一方で断捨離は時には問題。このビデオ切り替えスイッチ捨てたら、なにか買わない繋がらないね。USBハブでキーボードとマウスをつなぎ、マイクロUSBの電源をつなぎ、それだけで完成。
4GのeMMCストレージにOS内蔵し、Raspberry Piのように、ブートSD作る必要がない。電源スイッチだけで立ち上がた。
コンポジットの解像度は昔のVGA、WiFi設定などが十分でした。IoTのマシンとして活用する予定って、ssh、Webサービス際使えるなら、モニターが必要がない。
root@chip:~# uname -a
Linux chip 4.3.0 #10 SMP Sat Nov 14 19:10:05 PST 2015 armv7l GNU/Linux
root@chip:~# cat /etc/debian_version
8.2
Linux のカーネルは4.3.0、OSはdebian8.2でした。
BLE(Bluetooth Low Energy)内蔵のため、これだけでiBeaconの近接通知機能が試せる、LiPoバッテリー内蔵すると、数時間モバイル運用も可能、いろいろの試すが可能だ。