herokuのCloudMQTTでデータを定期送信してみた(CとPHPで)(株)オルテナジーの社内情報共有と動作確認のついでのブログです。チャレンジしてみました。MQTTは、データを送るPublisher、データを取得するSubscriber、その間でデータを受け渡しするBrokerの3本立てで動きます。言語は、PublisherがC言語、SubscriberがPHPです。(どっちもぱいそんで、みたいな事例は他へどうぞ......)今回は、クライアントのIPアドレスと送信時間を、一時間に一回、MQTTで送ってみます。1.cloudMQTTMQTTのBrokerです。CloudMQTThttps://devcenter.heroku.com/articles/cloudmqttherokuそのものの使い方はぐぐってください。herokuのアプリのadd-onに、cloudMQTTを追加してください。確認用なのでまずは無料のプランで大丈夫です。追加すると、接続情報などが生成されます。この画面のUserなどの情報を接続に使います。heroku上で使うときは、環境変数に登録されているので、楽ちんです。2.クライアントのプログラムMQTTのPublisherです。IoTに使う機器で、OSはubuntuなどDebian系です(ラズパイ的な)。現在、現場で使用している機器が、CやC++だと扱いやすいことが多いからです。クライアントのIPアドレスを取得して、時間を付け加えて、定期的にブローカーに送ってみます。MQTTのライブラリを入れます。ソースコードがここにあるので、落として、インストールしてください。ここのLinux用のコマンドを。installそして、IPアドレスと時間をcloudMQTTに送るCのソースコードです。こちらのサイトなどを参考にしました。CでMQTTを利用する。MQTTクライアントを使うことで、C言語など様々な言語でMilkcocoaを利用できるようになりましたここではごく単純な、送るだけのプログラムです。0;}「//この接続IDが同じものは同時に接続できない」とありますが、IDの違うクライアントからの同時接続数が、ライセンスの違いの一つです。注意点は、メッセージが長すぎると受信してくれません。そもそも、そんな長いならわざわざMQTTにする意味がなさそう。デバッグなどのオプションは各々追加してください。crontabに定期実行を登録。