しまもん 

モンスター・ラボ島根開発拠点のブログ

M5ATOM ハンズオン開催されました

てりー ・2021-03-14

ハンズオンスライドタイトル 2021-03-13 土曜日、しまねソフト研究開発センターの主催で mruby/c ハンズオンが開催されまして、当社は講師陣を担当させていただきました。

このハンズオンでは、ESP32 マイコンを利用することとし、デバイスとして M5ATOM が採用されました。
M5ATOM は M5 シリーズの中では最もコンパクトで、ESP32 チップほか最小限のものをケーシングしたような感じです。それでも中型機 M5StickC と遜色ない拡張性を備えています。

この M5ATOM と ENV2 環境センサーを組み合わせ、温度をクラウド保存するところまでを実習しています。

ハンズオンスライドタイトル ENV2 には SHT30 という I2C バスで接続される温湿度センサーが内蔵されていますが、ハンズオンで利用したコードでは、SHT30 の制御部分は 100% Ruby コードで実装されています。

I2C のオペレーションは、ESP32 公式ライブラリをラップする形で C 言語で Ruby クラスとして実装されていますので、個別のデバイス制御は、このクラスを利用すれば非常に短い Ruby コードで書けてしまいます。

class SHT30
  def initialize(i2c)
    @i2c = i2c
  end

  def get_temp
    return @temp
  end

  def measure
    @i2c.write(0x44, [0x2c, 0x06])
    sleep 0.6

    a = @i2c.read(0x44, 6)
    @temp = ((a[0] << 8) + a[1]) * 175 / 65535.0 - 45
  end
end

M5ATOM はセンサー制御のコアとしての用法が適しているように思います。色々なセンサーを繋いで、継続的な定点観測をする、ということが、誰にでも手軽に出来るようになりそうです。

このハンズオンが、その第一歩になればと思います。

| 採用情報

城下町・松江で一旗揚げたいRailsエンジニア絶賛募集中!

Blue