iKakashi-1号機なぞのトラブルか?

iKakashi-1号機、初の原因不明なトラブルか?

現象

  • http、SSH、pingが全て反応なし。これは、インターネット側からiKakashiへの接続ができないことを表しています。
  • iKakshiからメールが送られてきません。これは、iKakashi側からインターネットに接続できていないことを表しています。
  • Active LEDが青色で点滅。これは、正常な状態で、iKakashi内のintruderdetect.pyというPython 2.7のプログラムが正常に動作していることを表しています。
  • USB WiFiドングルの青色LEDも点滅。これは、正常な状態で、Raspberry PiとモバイルWiFiルーターが無線LAN接続できていることを表しています。
  • モバイルWiFiルーターのWAN接続も正常のようです。
  • 電源を入れなおしても、同じ現象が発生します。
  • モバイルWiFiルーターのみの電源を入れなおしを行っても同じ現象が発生します。
  • 人感センサーに反応し、写真撮影は行えるようです。

推測

  • インターネット接続を除くiKakashiの機能は正常に動作しているように思えます。
  • モバイルWiFiルーター内部で、WAN側とLAN側がうまくデータ通信できていないような現象のように思えます。
  • Client様にお願いして、iKakashiの近くに行き、スマホをモバイルWiFiルーターに接続し、インターネット接続できるかどうかを確認してもらう予定です。その際、モバイルWiFiルーターのWAN側のIPアドレスを表示してくれるようなWebサイトにアクセスしてもらう予定です。

その後の調査結果は、こちら

Raspberry Pi Zero WでWiFiのPower ManagementをOffにする方法

Raspberry Pi Zero WでWiFiのPower ManagementをOffにする方法

環境

  • Raspbian Stretch
  • Raspberry Pi Zero W

現在のWiFiのPower Managementの状態を確認する方法

$ iwconfig
lo no wireless extensions.

wlan0 IEEE 802.11 ESSID:”wifirouter”
Mode:Managed Frequency:2.442 GHz Access Point: 00:1D:73:12:34:56
Bit Rate=65 Mb/s Tx-Power=31 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=70/70 Signal level=-36 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Raspberry Pi Zero Wで、WiFiのPower Managementをoffにする方法

Raspberry Pi Zero Wの標準のRaspbianの状態では、Power Managementがonになっています。この状態ですとSSHで接続できなくなったり、iKakashiのプログラムのdefaultgatewayping.pyでDefault gatewayに対してpingが通らない場合があると思われます。そこで、WiFiのPower Managementをoffにします。コマンド的には、以下のようにします。

$ sudo iw dev wlan0 set power_save off

しかしRaspbianを再起動すると、onに戻ってしまいます。そこで、最善の方法ではないと思いますが、/etc/rc.localを編集し、exit 0の前に次の2行を挿入します。

$ sudo nano /etc/rc.local
・・・
# Raspberry Pi Zero W WiFi Power Management off
sudo /sbin/iw dev wlan0 set power_save off
exit 0

これで、Raspbian再起動後でもPower Managementがoffになります。
現在この状態でRaspberry Pi Zero Wをロングランテスト中です。

Defaultgatewayへのpingが通らないことがある。

Defaultgatewayへのpingが通らないことがある

環境

  • Raspberry Pi Model A+
  • USB WiFiドングル:WN-G150UMW I・O Data社製
  • 2017-08-16-raspbian-stretch-lite
  • 2017/8/24のソースプログラム defaultgatewayping.py

現象

  • 一日に3~4程度の頻度で、Defaultgatewayへのpingが通らないことがあります。
  • この現象は、Raspbian Stretch以前のバージョンでは発生していませんでした。
  • USB WiFiドングルのPower ManagementはOffにしても、頻度は減ったものの現象は発生します。

対処

pythonのソースプログラムdefaultgatewayping.pyを修正して、ロングランテスト中です。

結果

defaultgatewayping.pyを修正し、ロングランテストをパスしました。「ダウンロード」→「ソフトウェア(ソースプログラム)」としてアップします。

 

Raspbian StretchでMariaDBのインストール方法

Raspberry PiのOSであるRaspbianがバージョンアップされ、JessieからStretchに新しくなりました。これに伴い標準のDatabaseもMySQLからMariaDBになりました。高い互換性があります。

MariaDBとpython-mysqldbのインストール方法
sudo apt-get install mariadb-server python-mysqldb
$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
で以下のように編集します。

変更前
character-set-server = utf8mb4
collation-server = utf8mb4_gereral_ci

変更後
character-set-server = utf8
# collation-server = utf8mb4_gereral_ci

$ sudo systemctl restart mariadb
$ sudo mysql_secure_installation

ここで質問に答えていきます。この時にMariaDB用のrootのパスワード設定も行われます。
MariaDBの起動方法は、次のようになります。
$ sudo mysql -u root -p

 

Raspbian Stretchで今まで通りのinterface名を使うには

Raspbian Jessieまでは、USB Wifiドングルのinterface名はwlan0のような名前でしたが、Raspbian Stretchから、wlx123456789abcのようなMACアドレスに基づくinterface名に変わってしまいました。
Raspbian Stretchでも今まで通りのwlan0に戻す方法は、次のように行います。

  1. /boot/cmdline.txtファイルを編集し、次の文字列を行の最後に追加します。
  2.  net.ifnames=0
  3. 再起動後、Raspbian Stretchでもwlan0になります。

これにより、iKakashiに固定ipアドレスを設定する/etc/dhcpcd.confファイル内の記述が簡単になります。

この設定変更は、以下のモデルで動作検証を行いました。

  • Raspberry Pi Model A+
  • Raspberry Pi 2 Model B
  • Raspberry Pi zero w

Raspbian がJessieからStretchに変更になりました。

Raspberry PiのOSのイメージが、Jessie(Debian 8)からStretch(Debian 9)に2017年8月16日ぐらいから変更になりました。
これに伴うiKakashiを移植する際の注意点を備忘録として記録します。

結論:Raspbian Stretchでも適切な設定を行えば、iKakashiは動作します。

  1. 固定IPアドレスの設定を行うのに、/etc/dhcpcd.confファイルを編集しますが、無線LAN(USB WiFiドングル)のInterface名が変わりました。
  2. Stretchの標準のDatabaseは、MySQLからMariaDBに変わりました。
  3. apache2のDirectoryの振る舞いが若干変わりました。

Raspberry PiのOS、RaspbianのVersion UpによるiKakashiへの影響

農家のIoTデバイス iKakashiを最新のRaspbian Jessie Lite(以下Jessie)で動かす実験を行いました。その結果をお知らせします。
投稿時点で最新のJessie(2017-07-15)は、OS Version 8.0、Kernel Version 4.9です。

結果

  • 最新のJessieをiKakashiで使うには、そのままでは動きません。適切な変更をすれば動きます。

変更が必要な点

  • 無線LAN接続プログラムのwicd-cursesは、Jessieでは動きません。その代りJessie標準機能のwpa_supplicantが素晴らしく進化し、自動的にWiFi再接続ができるようになりました。これで無線LAN接続がいつの間にか切れてしまう現象が回避できていることを期待しています。
  • UNIXのユーザーのグループ名が、Jessieではないものがあります。
  • apache 2.4になったため、設定の記述の方法が変わりました。また、Raspbianのファイルシステム上でのhtmlフォルダーの絶対パスが変わりました。

Raspberry Pi Zero WでRaspbian jessie liteの実験

農家のIoTデバイス iKakashi-2号機製作に向けた下準備です。
先日購入したRaspberry Pi Zero Wが、支障なく動くものかどうかチェックしました。

  1. Raspberry Pi Model A+を使ってRaspbian jessie liteをインストール。SDカードには、jessie liteがインストールされ、無線LAN接続、SSH、MySQL、apache2、Watchdog Timerなどが設定済。
  2. そのSDカードを、Raspberry Pi Zero Wに実装し、電源ON(^^♪
  3. 何も変更することなく、すべてが正常に動作していることを確認しました。

 

Raspberry Pi Zero WとRaspbian Jessie Lite

Raspberry Pi Zero W

やっと買えました。しかも日本で。
Raspberry Pi Zero W です。
農家のIoTデバイスiKakashi-1号機で使われているRaspberry Pi Model A+とほぼ同じ消費電力。しかも、こんなに小さいのに無線LANとBlue Toothが標準装備。これでiKakashi-2号機作るのが夢です。

Raspberry Pi Zero W