まず BME280 と BMP280 というよく似たやつがあるので注意…。 BMP は気圧と気温しか測れない。

初期設定

リセット直後の BME280 は圧力・温度・湿度すべての測定がスキップかつスリープモードになっているので、まず測定開始するように設定する必要がある。いくつかモードがあるが、とりあえず NORMAL モードにして定期的に値を更新するようにしとけば良い。

なお用途に応じて最適と思われる設定がデータシートで示されているので、それに従えば良い。

FORCED モード (ワンショットモード) で測定する場合、9. Appendix B: Measurement time and current calculation を参照して tmeasure を求める必要がある。FORCED モードは MODE に書きこむと測定が始まり、終わると SLEEP モードになるという挙動をする。

Raspberry Piで動作確認する場合

ググるとほかにも実装が出てくるが、まずはリファレンス実装で試すのが筋。

https://github.com/BoschSensortec/BME280_driver

メーカーがリファレンス実装をつくってる。

$ git clone git@github.com:BoschSensortec/BME280_driver.git
$ cd BME280_driver
$ gcc -DBME280_FLOAT_ENABLE -I. -o foo examples/linux_userspace.c bme280.c
$ ./foo /dev/i2c-1 
Temperature, Pressure, Humidity
temp 31.10, p 100605.10, hum 48.97
temp 31.10, p 100605.08, hum 49.01
temp 31.11, p 100605.11, hum 48.97
temp 31.12, p 100605.34, hum 48.98
temp 31.13, p 100605.46, hum 49.02

Rubyでの実装

https://github.com/cho45/ruby-i2c-devices/blob/master/lib/i2c/device/bme280.rb

に書いた。calibration データの扱いに地味にハマってなかなかうまくいかなかった。

  1. トップ
  2. tech
  3. 気圧・温度・湿度 I2C センサー BME280

↑ に一応資料をあげときます。めっちゃ酔っぱらってこのエントリを書いております。

mbed 環境は Arduino の次あるいはプログラマなら最初の一歩として本当にお勧めです。若干価格が高いのが玉に傷ではありますが、LPC11U35 Quickstart Board は比較的導入しやすく、mbed 入門・USB デバイス入門に最高だと思っています。ぜひ mbed 環境を試してみてほしいと思います。

もともとキーボードに使っていた BLE Nano も mbed です。これも BLE デバイスとしては非常に安価な部類だと思います。僕は今のところ挫折していますが、ぜひ安定したBLEデバイスを作ってノウハウを教えてください……

builderscon は本当に良くて、今回はスピーカーディナー(スピーカーといろんな人同士の交流)という新しい試みも大変楽しかったです。前夜祭はやっぱりオフレコの闇の話が最高に楽しいですね。

builderscon はリアルイベントなのにインターネットの夜明けのような希望があります。こういうイベントは本当に貴重で、運営のかたには頭が上がりません。まだ builderscon はこれからですが楽しみたい!!

  1. トップ
  2. tech
  3. builderscon tokyo 2018 前夜祭「自作 BLE キーボードのその後」で発表しました

5年ごとの更新日がきたので旧免許状を返納した。新免許上は4月ぐらいに届いてたのでやることは返納のみ。しかし返納先がいつもいつも謎。

新免許に返納先の案内を入れてくれればいいのに。

もしかして返納しなくてもいいんだっけ??ってぐらいの雑さだけど、30日以内に返納しないと30万円以下の過料が課される。なんやねん……

  1. トップ
  2. tech
  3. アマチュア無線 無線局免許更新