All posts by chen

9ドルコンピュータC.H.I.PでiBeacon体験

最初の9ドルコンピュータC.H.I.Pの作品はiBeaconにすると思う。

Mechanism

普通iBeaconはクーボンなどの配信をする機器だか、こちらはこどもの下校帰宅の知らせ機器にする。機能として:

  1. こどもにiBeacon持たせて、帰宅すると感知する
  2. 感知したら、区別して「XXXちゃん、お帰り」をしゃべり
  3. 親にメールを送る「XXXちゃん帰宅」
  4. (将来)親の伝音をしゃべる

名刺半分サイズだから、PCスピードなどの中に空いてる空間に組み込むして運用すると考える。

 

Bluetooth検知

まずBluetooth検知から。下記のサイトを見ながら、教科書通りまずBluetooth keyboardからと考えた。

http://docs.getchip.com/#connecting-bluetooth-devices

C.H.I.Pには、Bluetooth 内蔵、OSも内蔵なので、特になにもインストールの必要がなく利用できる。まずbluetoothctlコマンド使って、find, pair with, and connectなどを試す。

  • root@chip:~# bluetoothctl
    [NEW] Controller 7C:C7:08:DE:2A:4E chip [default]
    [bluetooth]# power on
    Changing power on succeeded
    [bluetooth]# scan on
    Discovery started
    [CHG] Controller 7C:C7:08:DE:2A:4E Discovering: yes
    [NEW] Device DD:52:20:CC:66:BA N0U9Z

の感じで、もう新しいDevice 見つかった。その後延々と周囲のBluetooth 機器の情報を報告。

このN0U9Zはなぜか用意したBluetooth keyboard(電池切れ?)ではなく、近所のiBeaconらしい。そうしたらも教科書通りBluetooth keyboard接続など飛ばして、自分が用意したiBeaconで体験を継続。

Raspberry Piと iBeacon関連サイトを調べて、必要な情報収集を行った。そこでわかって、bluetoothctlコマンドで対話式操作の他に、hcitool lescan で近くに BLE の端末がある場合は近づけると Mac アドレスとデバイス名を表示することもできる

  • hcitool lescan — BLE 検知テスト

 

node.js/bleacon 環境構築

検出ができたので、実現したい機能をプログラミングするだが、プログラミング環境として、まずnode.jsを考えた。

nodebrewnode.jsをインストールして、それからbleaconというモジュールでBluetooth を操る。

bleaconを利用するために、まずは node.js をインストール。node のバージョン管理を行う nodebrew を利用してインストール。

C.H.I.Pには、curlもないので、そのインストールから

  • root@chip:~# apt-get install curl
  • root@chip:~# curl -L git.io/nodebrew | perl – setup
  • chen@chip:~$ vi .bashrc
  • chen@chip:~$ source .bashrc
  • chen@chip:~$ nodebrew install-binary v0.10.28

しかし”v0.10.28 is not found”と怒られて。node.jsしばらく放置したので、この間結構変わった。日本語のページは古いのままだが、英語のページも最新版4.4.0になった。それをインストールに。

  • chen@chip:~$ nodebrew install-binary v4.4.0
  • chen@chip:~/ibeacon$ npm install bleacon
    npm WARN optional dep failed, continuing xpc-connection@0.1.4
    npm WARN optional dep failed, continuing xpc-connection@0.1.4
    > bignum@0.11.0 install /home/chen/ibeacon/node_modules/bleacon/node_modules/bignum
    > node-gyp configure build
    make: Entering directory ‘/home/chen/ibeacon/node_modules/bleacon/node_modules/bignum/build’
    CXX(target) Release/obj.target/bignum/bignum.o
    make: g++: Command not found

しかしそのbleaconというモジュールのインストールにエラーがたくさん出るから、お手上げ。

 

python/pybluez/iBeacon-Scanner 環境構築

ネットいろいろ検索して、kakakikikekeのサイトを参考にpythonで試すことにした。

Python から操作するためのライブラリをインストールします
pip を使うのでインストールしています

  • sudo apt-get -y install python-pip
  • sudo apt-get install python-dev libbluetooth-dev libboost-all-dev
  • sudo pip install pybluez
  • sudo pip install pybluez[ble]

ここもエラーが見回り、pybluez[ble]のインストール失敗でした。

ここで試しにiBeacon-Scanner を入れてなんど機能した。

サンプルのソースは簡単で、10個 BLE情報を受信すると情報を出力しつづけてくれる。

 

これてこどもの下校帰宅の知らせ機器は、pythonでプログラミングすると決定。できたらまたレポートする。

 

参考サイト:

OrangePI PCのセットアップ

OrangePI(オレンジパイ)はオープンソースのシングルボードコンピュータ。UbuntuやRapbianなどLinuxが動作するもの。数種類がリリースされて、一番コスパがいいと思うOrangePI PCケースセット($19+送料)購入した。RaspberryPIの半分の値段かな。

RaspberryPIの経験から、ケースある方がいろいろと便利。しかし付属のケースはDC,HDMI,AVの端子をはめ込み固定する仕組みだったため,装着に苦労した.

様々なOSがorangepi.orgのサイト上で公開されており、ハードウェアのサポートなど優劣それぞれあるから、悩むところだが。RaspberryPIとして利用するつもりだから、まずRaspbianを使用すると考えた。

http://www.orangepi.org/downloadresources/ から、Raspbian_For_OrangePi_PC_v0_8_0.img.xzをダウンロードし、7zipで解凍、WIN32 Disk Imager というソフトを使って、さきほどダウンロード・解凍したOSイメージをSDのカードに書き込む。

2016-03-12 22.29.50 2016-03-12 22.27.35

OrangePIに、LAN、HDMIやUSBキーボードを接続し、最後に電源ケーブルを接続する。家のTVにHDMI端子につないてしばらくすると、OS起動画面が出てきて、やがて、ログイン画面が表示されます。Raspbianを使用したので、初期ユーザーは、root、パスワードは、orangepiになっているので、これを入力して、ログインする。

とりあえず、Webブラウジングして、ここまで特に異常がない。

9ドルコンピュータC.H.I.Pで話題のIoT体験

話題のIoTが、Raspberry Piですでに試したが、今度9ドルコンピュータC.H.I.Pでいろいろ体験すると思う。

まずWebから、LEDのON/OFFを試す。

1)環境作成:

最新状態にする

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

2)プログラミング

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*

3)プログラミング実行

最初に、コマンドラインで、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を試すことができた。

2016-03-08 (1)

2016-03-08 (2)

これから時間が空いたら、Raspberry Piの温度センサー、WebCameraもこちらに動かしてみる。

あとiBeaconの近接通知機能が試したいので、iBeaconのモジュールを注文した。

参考:

http://null-byte.wonderhowto.com/how-to/introduction-c-h-i-p-by-next-thing-co-iot-hacking-device-0168749/

話題の9ドルコンピュータC.H.I.Pが届いた

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作る必要がない。電源スイッチだけで立ち上がた。

2016-03-06 23.37.35

コンポジットの解像度は昔の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バッテリー内蔵すると、数時間モバイル運用も可能、いろいろの試すが可能だ。

ばらす前提の外付けHDD注文

先日購入したマイクロサーバは、ハードウェアにRAID1対応で、自宅サーバデータの信頼性の向上が可能になった。

2TBクラスのHDDが2個持っているが、ところで、2TBのRAID1を組むため、初期化しないと行けない。そうすると既存データの保存場所が必要になる。

いろいろやりくりしてしのげることも不可能ではないが、手間とミスを考えると、新たに2TBクラスのHDDを一個注文した方がいい。

昨日からサイトと実店舗を回して、結局いつも買い物しているNTTXに決定(マイクロサーバもここに購入したけど)。外付け2TBクラスのHDDが会員割引クーポンを使うと、バッファローのドライブステーションHD-LS2.0TU2Cの販売価格 : 7,280円になる。単体より1500円くらい安くなる感じ。多分USB3.0の製品が増えたから、USB2.0の製品が割引して処分するのでは。中身は大したかわらないでしょう。

Googleして、バッファローの外付けHDDばらす記事があるから、自分の腕なら大丈夫でしょう。ばらす自体も楽しみの一つだけど。

Raspberry Piで無線ルーターを作る

Raspberry Piを買ってから、いろいろ試した。

Google+でたまたま、Setting up a Raspberry Pi as a WiFi access point記事を目にした。制作にかかった。家にはすでに常時2台無線ルーターが稼働しているので、ただの無線ルーターじゃ面白くないので、そのうえ同じサイトのOnion Pi の記事を参考しながらTor Proxyサーバを立てた。

Proxyサーバが匿名アクセスなどいろいろメリットがあるが、サーバのプロとしての用途もいろいろ、たとえば外から自宅サーバのアクセス性をテストするとか、自宅限定テストサイトが本当に限定されたかとか、自宅からのみアクセスを制限した管理ツールが本当に制限されたとか、自宅以外のIPからのアクセスのテストが時々必要になる。今までわざわざVNCで外にあるサーバの画面を開いてから覗くなり、スマートフォンのWiFiをOFFして、モバイルネットから覗くなりなど対応してた。

既にRaspbianのインストール、USB-WiFiの接続が済んたので、上記のページを参考に進めると、順調に無線ルーターとして機能し、Tor Proxyサーバも立てた。

試しに、iPhoneから立てたRaspberry Pi無線ルーターに接続すると、確かに自宅サーバ以外のIPでウェイブサイトにアクセスすることができた。

詳しい製作過程は、気が向いたらWIKIへ(http://linux.uc4.net//xoops/modules/xpwiki/)まとめる予定。

Debain 5からDebian 6へアップグレード

FreeBSDから、Debianへ切り替えて、しばらくした。

Moodle2のインストールで、PHP5.3が必要になり、Debian 6 (squeeze) へアップグレードを試みした。下記のURLを参考した。

http://www.howtoforge.com/upgrade-debian-lenny-to-squeeze-in-a-few-simple-steps

数時間後、途中一度再起動が必要って、思ったより楽にアップグレードできた。

さっそくMoodle2のインストールしてみたが、DBにつながらない!

mysql-server5.0はObsoleteになってしまうので、5.1を入れなおす必要があり、そのMySQLが5.0から5.1へのアップグレードが手動でする必要があった。

# apt-get install mysql-server-5.1

これて、Moodle2無事にインストールできた。

いままでFreeBSDのアップグレード度に苦労して、収拾つかないから、新規インストールしたことが何度もあった。Debain がよくできた!

大容量(2T)HDD購入

データバックアップのため、手元の空き少なくなったから、購入に踏み切った。手元にあるのは160G-250G殆ど、一気に10倍増えて、気持いいところ。94年ころ買った200Mの外付けHDDは7万円台でしたが、今回買った2Tの外付けHDDは8千円台でした。
まずWinとDebian兼用を考慮し、640GをexFAT、残り1280GをEXT3にした。
それからWin系のメデイアにあるファイルを全部640Gにコピーし、すぐ2/3を埋まった。
そしてDebianサーバに接続し、ホームサーバとKuroBoxサーバのUNIX系のファイルも1280G にコピーした。
最後に、640GのexFAT, 1280GのEXT3両方ともホームサーバにマウントし、SAMBAで共有する設定をした。KuroBoxサーバは当分必要なくなるから取り外し事になった。

自宅サーバ2台目

遂に、自宅サーバ2台目導入。

今まで一台で、すべて兼ねてたが、限界が来ました。

先週から、サーバの負荷か100%のままになり、CPUは殆どMYSQLサーバに吸収され。最初はattackと思ったが、調べたら、漢詩のDBのアクセスが原因でした。

漢詩のDBが巨大なので、以前、会員限定で、凌ぎた。

Poem databbase 1.0: www.poemdb.com

最近、漢詩のDB2.0が試験しているので、もう会員限定には行かないから、専用にDBサーバが必要ね。

Poem databbase 2.0: www.poemdb.cn

ということで、自宅サーバ2台体制になりました。ついでに、DBサーバもMySQL5.0系に移行した。

FreeBSD 7.0 Released

偶然看到 FreeBSD 7.0 へようこそ , 原来FreeBSD 7.0已经推出。而且是在 2008/2/27 , 3个多星期前。最近忙啊!

在笔记本电脑上,试用 freebsd-update (6.3R -> 7.0R)。

启动信息里,有windows 领域的标签,看来与windows 协同方面也有些可取之处(进展)。

还有,无线卡自动认识为 ndis0 , 不过还是连不上网。

有时间慢慢研究。