他の建物に設置されている無線LAN APからの受信感度をアップさせる

Ubuntu 9.10にKismet最新版をインストールでも書きましたが、会社の同僚Y君がうちの近所に住んでいます。彼の家から発せられる無線LANの電波を、なんとかウチでキャッチできないか試行錯誤中です。


現在の電波環境
・Y君宅の玄関(2F)から、ウチのベランダまでは約10m
・APは玄関の横に置かれている
・電界強度は-80dBm(運がよければ接続できるレベル)
現時点では、ほぼ使い物になりません。


近隣APの調査
前回、Kismetをインストールしたので、これを使って、近隣のAPを調査します。

なんと、16台ものAPが検出されました。


ちなみに、ツールによって、検出数が変わるのでしょうか。
この手のツールでは定番のNetwork Stumblerで試してみたいと思います。

たったの5台しか検出されません。。しかも、WPAで暗号化しているAPも、WEPと表示されています。
Network Stumblerの最新版は2004年4月リリースなので、古いのでしょう。
Vista/7をお持ちの方は、後継のVistumblerを使った方がいいかもしれません。(KismetをWindowsで使うのは面倒)


チャネルの変更
APのリストを見て、Y君宅のAPのチャネルを、近隣のAPと極力かぶらない周波帯に変更します。
今回は、13チャネルを使用することにしました。
本当は、14チャネルがよかったのですが、Y君ちのBUFFALO WHR-G300Nには、1〜13チャネルしか設定できないので、仕方ありません。


APの設置場所を変更
APを台所横の窓(玄関のそば)に移動してみます。
すると、電界強度が一気に-60〜-65dBm(速度は遅いが、きちんと接続できるレベル)までアップ!
やはり、金属製のドアの影響は、かなり大きかったみたいですね。


電波の指向性を調整
WHR-G300Nは、無指向性の内蔵アンテナなので、リフレクターを作って、無理やり指向性を持たせます。

参考:
工具不要! 10円でできる無線LAN受信状態改善策〜自作電波リフレクタ〜 - キャズムを超えろ!
無線LANアンテナを理解する PART1 − TechTargetジャパン ネットワーク
これにより、-55〜-60dBmまで強度がアップ。


まとめ
なんとか実用レベルに近づいてきました。
更なる工夫の余地がないか、もう少し調べてみたいと思います。

X-CTU on Ubuntu 10.04 64bit

Funnel I/OにXBeeの設定を書き込むツールはいくつかありますが、私の調べたところ、X-CTUが一番便利で簡単そうです。しかし、X-CTUWindows版しか用意されていないので、下記ページを参考に、無理やりUbuntuで動作させてみたいと思います。
Buck Up Chinny: X-CTU with Linux


環境
Ubuntu 10.04 Desktop 64bit
・X-CTU 5.1.4.1


Wineのインストール


sudo apt-get install wine


X-CTUのインストール
こちらのページから、X-CTUの最新版をダウンロードしてインストールします。


wget http://ftp1.digi.com/support/utilities/40002637_c.exe
wine 40002637_c.exe


インストールが成功すれば、
アプリケーション > Wine > Programs > Digi > X-CTU
というメニューが追加されているはずです。


XBee Explorerを接続し、下記のコマンドで、ポートを確認します。
接続された時間の降順で表示されるので、一番上のttyUSBxxがXBee Explorerのポートになっているはずです。


$ ls -lt /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 2010-05-06 08:38 /dev/ttyUSB0


ポート名は、Linuxでは、ttyUSBxxですが、WindowsはCOMxxという名称です。
X-CTUから通信を行うために、ここでは、ttyUSB0から、~/.wine/dosdevicesに、com10という名前でシンボリックリンクを作成しています。


ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com10


X-CTUを起動し、
PC Settings > User Com Ports
を開き、COM10というポートを追加します。


これで、Ubuntuでも、X-CTUが使えるようになりました。


まとめ
X-CTUを閉じるたびに、追加したポートが消えてしまうというバグがあるので、若干面倒ですが、XBeeに設定を書き込むときと、電界強度の測定をするときぐらいしか使わないので、なんとか我慢できるレベルです。
その他は、今のところ問題ありません。

Ubuntu 9.10にKismet最新版をインストール

最近、会社の同僚が、うちの近所(無線LANの電波が届くほど近い)に引っ越してきたので、彼の家と光回線を共有して、NTTに支払う月額料金を半分にできないものかと考えています。


まずは無線LANの電波状況を確認するため、Ubuntuに電界測定ツールをインストールすることにしました。
今回選んだのは、定番ツールのKismetです。電界測定というよりも、クラックツールに近い代物ですが・・。


apt-getでもインストール可能ですが、いかんせんバージョンが古いため、ここは最新版のソースコードをビルドしてインストールしたいと思います。


環境
Ubuntu 9.10 Desktop 64bit
・Kismet 2010-01-R1


まずは、必要なパッケージをインストール


sudo apt-get install build-essential libncurses5-dev libpcap-dev


そして、Kismetのインストール。


wget http://www.kismetwireless.net/code/kismet-2010-01-R1.tar.gz
tar zxvf kismet-2010-01-R1.tar.gz
cd kismet-2010-01-R1
./configure
make dep
make
sudo make install


Kismetで監視する無線LANのインターフェースを調べます。


$ iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

wmaster0 no wireless extensions.

wlan6 IEEE 802.11bg ESSID:""
Mode:Managed Frequency:2.417 GHz Access Point: Not-Associated
Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

私のPCだと、wlan6という名前になっています。


Kismetの設定ファイルに、下記の内容を追記します。


$ sudo vi /usr/local/etc/kismet.conf
ncsource=wlan6


Kismet起動。


$ sudo kismet


最初に【Start Kismet Server】というウィンドウが表示されるので、【Yes】を選択します。


【Start】を選択して、Kismet Serverを起動します。


【Kismet Server Console】が開くので、サーバが起動したのを確認して、【Close Console Window】を閉じます。


正常に動作していれば、アクセスポイントの一覧が表示されます。
Kismetは全てキーボード操作なので、~(チルダ)を押してメニューへ移動します。


【Kismet】>【Preferences】>【Startup & Shutdown】を開きます。


【Startup Options】というウィンドウが開くので、下記の通りに設定して【OK】を押します。
次回以降、起動時と終了時にあれこれ出てくるKismet Serverのダイアログボックスが出なくなります。


【Sort】>【Type】を選択します。


これで、詳細表示したいアクセスポイントが選択できるようになります。


アクセスポイントの詳細画面。パケットレートがグラフで表示されています。


【View】を開いて、【Signal Level】と【Retry Rate】も表示させます。


これで電界強度がグラフ表示されるようになりました。


ウィンドウを閉じるときは、【Network】>【Close window】。


Kismetを終了させるときは、【Kismet】>【Quit】。


まとめ
グラフの目盛りが最大値と最小値しか表示されないので少し見づらいですが、電波状況を把握するだけならこれでも十分だと思います。
Kismet使ってると、まるでハッカーにでもなったかのような気分が味わえて、テンション上がりますね。

部品の追加注文

人間感知の方式を、焦電センサーに変更したので、その部品を注文するついでに、あると便利な部品をいくつか買い足しました。
はんだ付けの練習で、ユニバーサル基板も1つダメにしちゃいましたしね。
焦電型赤外線センサ AKE−1(RE−210)(100円)×1
プラスチックナット+連結(6角ジョイント)スペーサ(10mm)セット(100円)×1
片面ガラス・ユニバーサル基板 Cタイプ(72x48mm) めっき仕上げ(60円)×4
ブレッドボード・ジャンパーワイヤ EIC−J−L(300円)×1
セラミックはんだこて CXR−41(30W)(2,250円)×1
合計 2,990円


はんだごての価格差
特に、はんだごては、こて先が溶けてしまったので、少し高級なものを選びました。

はんだに含まれるスズは、銅を侵食するので、メッキ加工されていない銅製のこて先は、どんどん消耗していくみたいです。
つまり、こて先って、消耗品なんですね!全然知りませんでした。


最初はこて先だけ探していたのですが、あれって、専門店じゃないと売ってないんですね。
仕方がないので、こて自体を買い換えるはめに。あ〜、もったいない。


でも、1,000円以下のはんだごてと、2,000円以上するはんだごての価格差って、どこからきているのでしょう。
結論から言うと、ヒーターの方式が、ニクロム線かセラミックかの違いによるものらしいです。
セラミック式の方が、熱効率が高く、温度の上昇が早いので、作業がしやすいんですね!


製作に入る前の段階から、前途多難です。

トイレに人が入っていると、LEDでお知らせしてくれる装置の製作(7)

はんだ付けの練習
先日注文した部品も到着し、いよいよ今日から製作開始です。


しかし、ここで大きな不安が一つ。ハンダ付けなんて、中学校の授業以来やったことありません。


いきなり本番は怖かったので、試しにユニバーサル基板で練習してみることにしました。

練習後の基板はこんな有様に。はっきりいって、ド下手です。

はんだごて(おろしたて)のこて先はなぜか溶けてしまっています。


かなり練習してはみたものの、ほとんど上達しせず。穴にはんだを流し込むだけならともかく、穴と穴をつなぐブリッジは、更に難易度が上がってしまうので、私のウデでは、全く歯が立ちません。
このままではヤバイと思ったので、上手な人にレッスンをお願いすることにしました。レッスンに応じてくれたのは、会社の後輩の友達、電器屋のS君です。


S君にコツを教えてもらったあと、彼のはんだごてで練習させてもらったのですが、今度はあっさり成功!
どうやら、私のはんだごてのこて先が溶けてしまっているのが、うまくいかない原因だったようです。
こて先が銅のものは、使えば使うほど、先がなくなっていくそうです。皆さんが買うときは、そうでないものを選びましょう。


はんだ付けのコツは、
軽く部品を温めてから、はんだを溶かす
これに尽きます。


S君ちで、ブリッジも含めてみっちり練習させてもらったので、自信を持って明日の本番にのぞめそうです。

Fritzing用パーツの作り方

トイレセンサー用の回路図をFritzingで作ろうと思ったのですが、やっぱりというか、当たり前というか、部品パレットにFunnel I/Oがありません!
多少面倒ではありますが、公式サイトに掲載されている部品の作り方を参考にしながら、Funnel I/Oを作ろうと思います。


といっても、一から作るのは大変なので、既存の部品を編集してなんとか作れないものか、試してみました。


今回は、基本操作の練習です。
まず、パーツを選択して右クリック=>【編集】。

パーツエディタが開くので、【プロパティ】の【type】を【FIO】に変更して、新しいパーツとして保存します。

すると、【パーツ】ペインの【Mine】に新しいパーツが登録されます。

そして、【Core】パーツの【Arduino Diecimila】の【type】にも、【FIO】が追加されていると思います。
これは、【family】を【Microcontroller Board】にしているためです。このリストから除外したければ、【family】を別の名称に変更して保存すればOKです。

トイレに人が入っていると、LEDでお知らせしてくれる装置の製作(5)

今日は、会社を休んで、佐世保高専の組み込みソフトウェア研修(中級)に参加してきました。
途中、電子制御工学科の研究室を見学させてもらう機会があったので、学生さん達の製作物をいろいろと見せてもらったのですが、一番驚いたのが、セグウェイのような乗り物を作っていたということです。
写真がないのが残念ですが、まさにこんな感じです。

学生さんに頼んだら、試乗させてもらうことができました。
操作が難しくて上手に乗れませんでしたが、すごく楽しかったです。
それにしても、佐世保高専おそるべし!


話を本題に戻しますが、高専の先生にトイレセンサーの概要図を見せたところ、「フォトダイオード(光センサー)もいいけど、焦電センサーもあるよ」というアドバイスをいただきました。
ちなみに、焦電センサーとは、赤外線で人の動きを検知するセンサーのことです。詳しくは下記ページを参照して下さい。
こまめに電気を切ってくれる偉い「焦電センサ」


秋月電子にも、100円で売ってありました。
焦電型赤外線センサ AKE−1(RE−210)


なので、焦電センサも追加注文しておこうと思います。