2017年5月22日月曜日

IBMのWatson IoT PlatformでMQTTブローカを設定する方法

  • IoT Platformの作成
  • 必要情報の設定(1/2)
  • 必要情報の設定(2/2)
  • コマンドによる確認
の大きく分けて4段階で設定する。

IoT Platformの作成


IoT Bluemixのカタログから、
Internet of Things Platformを選択


遷移先のページでLiteを選択し、Create


Liteプランでは 500デバイス上限で、200MBまでの通信が使える。


遷移先のページでLaunch



デバイスタイプの設定


左のメニューからDEVICESを選択。



 Add Deviceを選択。


Create device type



もう一度Create device type


デバイスタイプの名前を設定


ここで設定した名前が「デバイスタイプ」となる。
他の人が使っていない名前にする必要がある。

入力したらnextを押して進む。


次にテンプレートを選ぶ画面になるが、選択しなくてOK。


そのままNext。


最後に確認画面が出るので、Next。


メタデータの設定も空欄でOK。
今までNextと書かれていた部分がCreateになるので、クリック。





すると最初の画面に戻り、先程設定した値が選択されていることを確認してNext。


Device IDを設定する。
入力したらNext。


またメタデータの入力画面になるので、空欄でOK。



次の画面で2通りの選択肢が与えられるが、自分は入力欄にトークンを入力した。


入力したら確認画面になるので、Addを押して作成。


作成したら、Organization IDをメモっておく。(URLにも入っている)


ここまでで、
  • デバイスタイプ 
  • デバイスID
  • トークン
  • Organization ID
が揃った。
あとはAPI Keyを設定する。



API Keyの設定

上記の流れで来ると、まだデバイスタイプのウィンドウが開いていると思うので、×ボタンで閉じる。


メニューのAPPSを選択。


Generate API Keyをクリック。


API KeyとAuthentication Tokenをメモして、Generateをクリック。
特に、Authentication Tokenは再確認しづらい(できない?)ので、確実に保存しておく。


mosquittoによる確認

mosquittoのコマンドで確認
-uオプションや-Pオプションはシングルクォーテーションでくくっておかないと、文字列とターミナルソフトによっては変数展開されてしまう。

サブスクライブ(Subscribe)コマンド(【パラメータ】を上記で取得したものに置き換え)

mosquitto_sub -i a:【Organization ID】:【App ID(任意の文字列)】 -h 【Organization ID】.messaging.internetofthings.ibmcloud.com -u '【API Key】' -P '【Authentication Token】'  -t "iot-2/type/【デバイスタイプ】/id/【デバイスID】/evt/【トピック】/fmt/json" -d 
 上記コマンドを実行し、
Subscribed (mid: 1): 0
このようなステータスで止まっていればサブスクライブ中。


サブスクライブとは別のターミナルで以下のパブリッシュ側コマンドを実行。

パブリッシュ(Publish)コマンド(【パラメータ】を上記で取得したものに置き換え)

mosquitto_pub -i d:【Organization ID】:【デバイスタイプ】:【デバイスID】 -h 【Organization ID】.messaging.internetofthings.ibmcloud.com -u "use-token-auth" -P '【トークン】' -t "iot-2/evt/【トピック】/fmt/json" -m '{"d":{"q":"適当なJSONメッセージ。dやqも変えて良い"}}' -d
上記コマンドを実行すると、サブスクライブ側で
{"d":{"q":"適当なJSONメッセージ。dやqも変えて良い"}}
のようにパブリッシュしたjsonメッセージが受信できているはず。


これで無料でMQTTブローカーが手に入る。

2017年3月26日日曜日

Kindle版が存在するかチェックするスクリプト

スクレイピングの練習でAmazonの書籍ページにKindle版があるか確認するスクリプトを書いた。

https://github.com/syamoji/kindleCheck

エラー処理は引数チェック以外何もしていない…。

2017年1月10日火曜日

Jupyter Notebook にPython3カーネルを追加する

このPython 3を追加する方法。

確かJupyter自体はpipか何かで入れた。

環境
macOS 10.12.2
python --version
Python 2.7.9
which python
/usr/local/bin/python

http://qiita.com/sasaki77/items/bfa53828c973ba46e34d
こちらに記載の
python3 -m IPython kernelspec install-self
python2 -m IPython kernelspec install-self 
という方法では自分の環境ではモジュールが見つからずエラーになった。
下記の方法で解決。

python3 -m pip install ipykernel
python3 -m ipykernel install
参考:http://stackoverflow.com/questions/28831854/how-do-i-add-python3-kernel-to-jupyter-ipython