mbedからの接続確認
コンテナをIBM Containers上で稼働させる前に、mbedアプリケーションからPHPアプリケーションへデータの送受信ができることを開発環境で確認します。mbedアプリケーションの「(5)サーバーのURLを指定」する箇所に、開発環境のホストOSのIPアドレスを入れてコンパイルします。
ダウンロードされたアプリケーションをmbedにロードします。このとき、EthernetにLANケーブルが接続されていることを確認してください。
開発環境での確認を行うための構成図を示します。
LCDにIPアドレスが表示された後、温度と「Return code is 0」のメッセージが次々に表示されます。
ホストOS側のブラウザでhttp://localhost/readdb.php、もしくはhttp://ホストOSのIPアドレス/readdb.phpへアクセスすると結果が確認できます。
mbedアプリケーションからPHPアプリケーションへデータの送受信ができることが確認できました。
Ctrl+p qでコンテナから抜けて、次の一連のコマンドをホストOS上で実行します。今回はイメージの保管は行いません。
$ sudo docker stop testing $ sudo docker rm testing
DockerHubへのプッシュ
機能の確認ができたイメージ(susumutani3/iotkaji:v4)をDockerHubへプッシュします。
$ sudo docker login $ sudo docker push susumutani3/iotkaji:v4
第3回のまとめ
今回は、mbedからセンサーの温度データをHTTPのPOSTリクエストでサーバーへ送信するmbedアプリケーションを作成しました。さらにmbedから送信されてきたデータを受信してデータベースへ時系列で書き込むためのサーバー側のPHPアプリケーションを作成しました。そして、作成したPHPアプリケーションとnginxとMySQLを導入したDockerイメージを作成して、開発環境で稼働確認しました。また、curlコマンドやnginxのログなどデバッグに役立つツールの使い方も確認しました。
本来はDockerでデータベースを稼動させる場合は、データを格納するためにボリューム機能を使用しますが、今回は簡略化のために省略しています。
次回はいよいよ作成したコンテナをIBM Containers上で稼働させます。そして、mbedからインターネット経由でデータを送信します。
