前回に引き続きPart2です。Part2ではシステム全体の大まかな構成と、どのような作業が必要になるかを解説していきます。専門用語っぽい場所には外部の解説記事のリンクを貼っています。急には消えなさそうなページを入れていますが、リンクが切れていたらすみません。
何から作りはじめるか
自分で作り始めるときもそうだったのですが、難しいことをやろうとすると何から始めればいいかわからなくなりがちです。なのでどんな作業をすればいいのか、道しるべとなるブロック図を作ります。私が作ったものがこちらです。
上の段から、LINE公式サーバーなどの外部ネット、RaspberryPi本体で動作しているプログラム、ハウスに設置されて稼働しているモーター装置類です。RaspberryPiとネットの間にはモバイルルーターが挟まれているのですが、図が煩雑になるので端折りました。
わからない用語だらけな方には申し訳ありません。色別に説明していきますので気長に見守ってください。
緑色の部分
緑色の部分はLINE側のサービスです。
ここではLINEの公式サイトからいろいろな設定を行うことになります。
黄色の部分
黄色の部分はボットの本体部分で、Pythonと呼ばれるプログラミング言語で書かれています。
ここではプログラムを書く作業と、LINEbotに必要な設定作業が中心になります。ボット本体のプログラムはとてもシンプルで、LINEから送られてきたメッセージへの応答と、回転用プログラムへの分岐が書かれています。
このボット周りの解説は先駆者の方が数多くいるので、Webで検索するとわかりやすく説明されています。(検索ワード ラズパイ LINEbot 作り方等)
公式ドキュメントを見ていただくのもわかりやすく、間違いがありません。
回転用プログラムは、ラズパイからモータードライバーへの制御用信号を送るプログラムです。ラズパイはこういったモーター制御や環境測定のようなことがとても得意なので、温度、湿度管理、照度測定など農業で管理したい要素への応用がしやすいです。
今回はボットの言語にPythonを採用しました。ラズパイのOSであるRaspbian OSに搭載されている、制御信号のライブラリ(RPi.GPIO)がPythonでは楽に扱えるので、実装がとても簡単だったというのが大きな理由です。
赤色の部分
赤い部分はモーターの配線やハウスへの設置作業が中心になります。工作が好きな筆者には一番楽しい時間でした。
青色の部分
青色の部分は、ボットには直接かかわらない、サービスの維持に必要な設定が中心となります。
LINEapiではSSL通信を使わなければいけません。今回はLet's Encryptを使ってSSL証明書を取得しました。
DDNSとはネットに何かしらのサービスを公開するとき、ipアドレス(ネット上での住所的な物)が変わっても特定できるようにしてくれる仕組みです。
固定ipアドレスを取得すれば一度設定をするだけで済むのですが、固定ipアドレスがもらえる回線は総じて料金が高いです。今回はボットとLINEをつなぐためだけにドメインが欲しかったので、無料でDDNSサービスを提供しているMyDNSを使わせていただきました。
余談ですが、総務省の公開しているガイドラインでネット用語がわかりやすく説明されています。わからない用語が多かったという方はぜひ利用してみてください。(https://www.soumu.go.jp/main_sosiki/cybersecurity/kokumin/basic/basic_service.html)
振り返って
体感ですが全体を振り返ると、設定ファイルやネットの解説記事とにらめっこしている時間が圧倒的に長かったなと思います。初めて触るサービスやプログラムは、どこがどう動いているのか見当もつかないので少しずつ調べながら作業を進めていきました。
プログラミングの作業っぽいことをしている時間は本当に少ししかありませんでした。
Part2はこのあたりまでにしておきたいと思います。Part3からは作業を始めていきます。短いですがここまでありがとうございました。