2014年4月2日水曜日

raspberry pi にmosquittoクライアントをインストールして動かしてみる

やりたいこと

  • ここでMQTTブローカがEC2インスタンスで動かしたので、次はmosquittoクライアントをraspberry piにインストールしてみる。
手順
  1. raspberry piにsshで接続する。
  2. sudo apt-get -y install libwrap0-dev libssl-dev
  3. wget http://mosquitto.org/files/source/mosquitto-1.2.3.tar.gz
  4. tar zxf mosquitto-1.2.3.tar.gz
  5. cd mosquitto-1.2.3
  6. make
  7. sudo make install
  8. sudo ldconfig
テスト
  1. which mosquitto_sub
  2. これと同じやり方で、mosquitto_subのみraspberry piで実行してうまくいきました。
結果
  • 今回ソースコンパイルから実施したのはmosquittoクライアントが必要なためでした。http://mosquitto.org/download/で提供されているraspberry pi用のパッケージにはクライアントが含まれていなかったので。

今から3分でMQTT Broker mosquitto をAmazon Linux/CentOSで立ち上げる。

やりたいこと

  • mosquittoでMQTTブローカを立ち上げてみる。
  • EC2のAmazonLinux(またはCentOS)を使用する。(事前に作成しておく。Vagrantとかで)
  • テストは手元のWindowsのmosquittoクライアントを使用する。
手順

  1. EC2のSecurityGroupを作成し、IncomingのTCP1883とUDP1883を許可
  2. 作成したSecurityGroupをEC2インスタンスに割り当てる
  3. sshでログインしてrootにsuする。
  4. cd /etc/yum.repos.d
  5. wget http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-6/home:oojah:mqtt.repo
  6. yum update
  7. yum install mosquitto
  8. /usr/sbin/mosquitto
テスト

結果
  • これでブローカ環境ができました。
  • MQTTポート番号を1833だと勘違いしていたために1.5時間かかりましたが、、。

2014年3月19日水曜日

続き:MQTTサーバ(PUB)とMQTTクライアント(SUB)での通信を3分で実行する

やりたいこと

  • これのつづき。
  • こんどはサーバ(Publisher)とクライアント(Subscriber)で通信しよう。
手順

  1. Windowsでコマンドプロンプトを2つ開き、それぞれで「cd c:\program files (x86)\mosquitto」
  2. クライアント側:mosquitto_sub -h test.mosquitto.org -t "tes/test01" -v
  3. サーバ側:mosquitto_pub -h test.mosquitto.org -t "tes/test01" -m "TEST MESSAGE!!"
  4. クライアント側でメッセージが表示された。
結果
  • 動いた。
  • クライアント側は待ち続けるわけですね。
  • 3者(publisher,subscriber,broker)の役割分担が理解できた。
  • 今のところプログラムを書いてない。予想以上に簡単。
  • あ、、test.mosquitto.orgを使わなくても自分でbrokerを立ち上げればいいのか。。

仮想OS立上げのためのBIOS設定(Virtualization TechnologyをEnableに変更)ができない事案(未解決:情報求む)

問題

  • VirtualBoxから仮想OSを立ち上げようとしたらエラーとなる。
  • 「ホストマシンの仮想化支援機能(VT-x/AMD-V)が使用できません。64ビット ゲストOSは64ビットCPUを検出できず、起動できません。」
詳細
  • Lenovo ThinkPad X1 Carbon
  • Windows7(ただし、Windows8プレインストールモデル)
  • Biosは最新(2014/2)
原因
  • どうやらBIOSに問題がありそう。
  • このエラーメッセージが出る症状はよくあるが、通常はBIOS設定でVirtualization TechnologyをEnableに変更すれば良い。(変更した後にシャットダウンして、電源抜いてやる必要があることも。)
  • ただし、今回問題が起きているPCではVirtualization TechnologyがDisableのままで、Enableに変更できない。
  • このような事象が報告されている事例が1件あった。(ここ)でも、解決策が書かれていない。
結局BIOSが更新されるのを待つしかないのかも。。

今から10分以内にMQTTクライアントをWindows環境で動かしてみる

やりたいこと
  • MQTTクライアントを手元で動かしてみる
  • 手元のPCはWindowsPC
  • 今から10分以内
  • mosquittoのテストサイトをサーバとして使用
手順
  1. ここからmosquittoのWindows版をダウンロードしてインストール
  2. コマンドプロンプトを立ち上げる
  3. cd c:\program files (x86)\mosquitto
  4. mosquitto_sub -h test.mosquitto.org -t "#" -v
結果
  • とりあえず動いた。
  • インターネット越しにポート1883のコネクションがちゃんとつながっている。
  • でもプロンプトが返ってこない。

2014年1月4日土曜日

raspberry pi を持ち歩きたい(EMOBILE Pocket Wifi GP02を使用して)

やろうとしていること

  • Raspberry Piを持ち歩くこともあるだろうと思うので、環境を準備する。
  • RPiの操作はノートPCから行う。RPiの電源供給もノートPCのUSBから。
  • ネットワークはEMOBILE Pocket Wifiを使用する。現在持っている機種はGP02。

設定方法のメモ

  • RPiにRaspbianをインストールする。(2013-12-20を使用)
  • RPiにまず通常のルータを使用した無線LAN設定をする。(Desktop上のWifi Configから設定した後、以下は手修正)
(/etc/network/interfaces)
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  • 次にEMOBILEの設定を追加する。(こちらもDesktop上のWifi Configから設定した後、以下は手修正)
(/etc/wpa_supplicant/wpa_supplicant.confの追加したnetwork内に以下を追加。ただし、これは自分のEMOBILEがブロードキャストしていなかったから。通常は不要かもしれない。)
       scan_ssid=1

使用時の注意事項

  • EMOBILEではDHCPでIPアドレスを割り当たるのでIPアドレス固定化できない(はず)。それで、最初は有線LANで接続した状態でEMOBILE接続をして、有線LANのIPでssh接続して、EMOBILEで割り当てられたIPアドレスを調べながらやった。割り当てられるIPアドレスは10.121.171.2-6のいずれかなので、すべて試してもよい。
  • はまるかもしれないのは、使用するノートPCとEMOBILEの接続はWifi接続ではなく、USB接続である必要があること。無線LANで接続した端末同士ではパケットが通らず、USB接続した端末からは他の端末にパケットが通るので、RPiに接続して操作ができた。(EMOBILEの仕様なんでしょうね。USB接続だけでもパケットが通ったので良かった。GP02以外の機種はどうなんでしょうか。。)