やっぱりIoTと言えばワイヤレス! raspberry piを持ち運べるように無線化してみた。
モニタ・キーボード・マウスはSSH接続してノートPCでまかなう!
電源は、素直にスマホ用充電器。
Kickstarterで、PiJuice(ラズパイ専用バッテリ)が出ていたけど、市販されている訳じゃないので素直に諦める。
充電しながら給電できるし 重量71g 2600mAh 1.5A なら、数時間は動作するかな?
※5~6時間は、とりあえず持ちました。
ネット回線は、usb型wifiアダプタ5個セットで安かったのを使う。
usbにwifiアダプタをぶっ刺すと、自動的に認識されるみたい。(lsusbコマンドで、WLAN Adapterとかそれっぽいのが確認できればOK)
1 2 3 4 5 6 |
root@raspberrypi:~# lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter Bus 001 Device 005: ID 0411:0262 BUFFALO INC. (formerly MelCo., Inc.) |
これだけだとwifiへの接続設定が出来ていない。近くにあるwifiをスキャンする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
root@raspberrypi:~# iwlist wlan0 scan | grep SSID ESSID:"ci000tyoiefjsbxf" ESSID:"aterm-16f698-g" ESSID:"Buffalo-G-47E8" ESSID:"seijo" ESSID:"UNITEX" ESSID:"TEST_SSID" # 正しいパスワードを入力すると、文字列が出力されるので、/etc/wpa_supplicant/wpa_supplicant.confの最後にコピペする wpa_passphrase TEST_SSID PASSWORD_DESU network={ ssid="TEST_SSID" #psk="" psk=nannkayataratonagaimojiretugasyutsuryokusarerunodekopipesuru } |
最後に、何故か手動IP設定がデフォルトになっているので、DHCPで勝手にIPが割り振られるようにしておく(二箇所修正)
1 2 3 4 5 6 7 8 9 10 11 12 |
vi /etc/network/interface auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 #iface wlan0 inet manual iface wlan0 inet dhcp #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp |
ネットワークの再起動( /etc/init.d/networking restart )か、ラズベリーパイそのものを再起動して、ifconfigでwlan0にipアドレスが割り振られていればOK!
※iphoneのインターネット共有(テザリング)だと、172.20.10.2から172.20.10.14までしか割り振られないらしい。
1 2 |
wlan0 Link encap:イーサネット ハードウェアアドレス 80:1f:02:6e:e4:a8 inetアドレス:172.20.10.4 ブロードキャスト:172.20.10.15 マスク:255.255.255.240 |
これはやらなくてもいいけど、DNSをGoogle Public DNSに設定しておく
1 2 3 4 5 6 7 8 9 10 11 |
vi /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4 # domain-name-serversは削除して置かないと、勝手に更新される。 vi /etc/dhcp/dhclient.conf request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers; |
以上のようにコマンドラインから無線LANルータに接続する方法もあるけど、面倒なのでGUIデスクトップから設定してもOK
右上にあるアイコンをクリック、ルータ選んでパスワードを入力するだけ。楽ちん!
・・・・と思ったら、wifi経由とはいえ遅すぎる。sshの文字入出力すら遅いレベル!
当然、なんらかの原因があると思ったら、wifiのパワーセーブに問題があるらしい。
/etc/network/interfaces に以下の一行を追加する
wireless-power off
ところが、この設定は無効らしくて(USBアダプタによるらしい)
/sbin/iwconfig wlan0 power off コマンドだと以下のエラーになる。
Error for wireless request “Set Power Management” (8B2C) :
SET failed on device wlan0 ; Operation not permitted.
しょうないのでもう少し調べてみたら、正解にたどり着いた。
1 2 3 4 5 6 7 |
# 新規ファイルを作成 sudo vim /etc/modprobe.d/8192cu.conf # パワーオフの設定をして再起動する # Disable power saving options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1 # amazonレビューだと、options 8192cu rtw_power_mgnt=0 だけだった。 |