田んぼIoT in 2018 その4

あけましておめでとうございます。
WYRDの豊田です。

始まったばかりの2019年ですが、気づけばもう1月も半分が終わってしまいましたね。本当にあっという間です。

昨年末から3回に分けて弊社で取り組んできた「田んぼIoT」の振り返りをしてきました。過去の記事はこちらからご覧いただけます。

今回は4回目、とうとう最終回です。
前回のように技術の話は少なめで、活動報告的な内容になります。

おさらい

試行錯誤の末、昨年の春に田んぼに設置した田んbotですが、なんとか稲刈りまでの約半年稼働させることができました。

田植え直後の様子
稲刈り直前の様子

田植えから稲刈りまでの期間の気温と地中の温度を計測・蓄積するという、当初の目的は達成できたのではないでしょうか。
今回の取り組みで見つかった反省点は、今年の改良版田んbotに活かしたいと考えています。

ちょっと変わった取り組み

一年間、WioLTEを使って「温度を計測する」というチャレンジをしてきたわけですが、データが蓄積できたら終了。というのは少し寂しいですよね。

せっかくの取り組みをもっといろんな人に知ってもらいたいと思い、その1の記事でも書いた通り、RubyWorld Conference 2018のスポンサーブースに展示(設置)しようと考えました。(WYRDはGoldスポンサーとして協賛しています)

RubyWorld Conferenceとは

Ruby処理系をはじめとしたRuby関連技術の最新情報や、言語仕様の標準化の動向、先進的な事例などを紹介するさまざまなセッションを通じて、Rubyがより多くの領域に普及していくことを願っています。

RubyWorld Conference 2009 開催趣意書 より

年に一度、プログラミング言語 “Ruby” を使う企業、エンジニアが集い、Rubyに関する情報交換や取り組みを発表、報告する一大イベントです。

Rubyの祭典に田んbotを展示するわけですが、(過去の記事に書いた通り)田んbotには全くRubyの要素がありませんでした。
Rubyと全く関係の無いものを展示しても面白みがありませんよね。

色々検討した結果、組み込み向けに開発されている “mruby/c” というプログラミング言語を使って、田んbotを動かそうという話になりました。

mruby/cは、Rubyの特徴を引き継ぎつつ、プログラム実行時に必要なメモリ消費量が従来のmruby(福岡で開発された組込み向けの軽量Ruby)より少ないmrubyの実装です。

しまねソフト研究開発センター「mruby/cとは」より

WioLTEをmruby/cで動かそう

muryb/cでWioLTEを動かす。とは言っても、最終的な(センサーから温度を取得したり、データをサーバーに送信したりといった)処理は、C言語で実装しなければならず、そこについてはこれまでの実装をそのまま流用することになります。

簡単に説明すると、C言語で実装した各種関数を、mruby/cから実行する。という仕組みになります。

mruby/cで実行するには、いくつか気をつける点はありますが、これで動作するようになります。※具体的な説明は割愛します

ライブラリを更新したら、パラメータの仕様が変わってて全然動かなくなったり、相変わらずトラブルはありましたが無事稼働させることができるようになりました。

田んbot(mruby/c ver.)展示へ

無事、田んbot(mruby/c ver.)を展示することができ、開催期間中はたくさんの来場者の方に興味を持ってもらえました。(こちらの記事もどうぞ)

会場の気温を計測しサーバーに蓄積。それを表示するWebサイト(もちろんRuby on Rails)も用意して、iPadで表示させることで、とてもコンパクトな田んbotの完成です。

まとめ

2018年は本当に田んぼIoT漬けの1年間だったように思います。
この取り組みを、株式会社ソラコムさんにも興味を持っていただき、SORACOM conference “Discovery” 2018で登壇させていただくなど、本当に色々な体験をすることができました。

SORACOM UG登壇の様子は後日動画を公開予定です

まだまだ小さな取り組みではありますが、少しずつできることを増やしていきたいと思います。

今年も田んぼ設置に向けて頑張りたいと思います。
面白いネタが集まったら、また記事を書こうと思いますので楽しみにしていてください。