Todotaniのはやり物LogTodotaniのはやり物Log自分の中でマイ・ブームなはやり物について、ダラダラ綴っています。Core用に、BME280センサーのライブラリを作ってみました。Scienceさんから購入できます。Adventuresさんのライブラリを使っていました。IoT用のライブラリに関しては、類似品であるBMP280用のライブラリならNuGetで取得することができるのですが、BME280用のライブラリは見つかりませんでした。そのため、Adafruitのforumで紹介されていたBMP280用のライブラリをベースに自作(改造)してみました。BMP280とBME280はレジスターの構成や設定はほんとんど共通のため、湿度読み取り機能を追加し、読み取り値の補正関数をBME280用に修正しています。オリジナルのAdafruit版は、I2Cのからのセンサーデーター読み取りなどで非同期処理(async/await)を多用していたのですが、データ読み取りの時間は瞬時で非同期処理を入れるオーバーヘッド(非同期用の別タスクを起こす処理)の方が大きそうな気がしたため、デバイスの初期化部分以外では非同期処理を使わないように変更しました。作成したライブラリのコードを以下に示します。}}電源オンの初回起動時に湿度情報が読み取れない問題があり(一旦アプリを終了して再度起動すると正常になる)、回避策としてレジスタの初期化を2回行っています(ライブラリソースの226行目)。Arudino用のライブラリコードを見ると設定を2回やるような処理は行っておらず、この点は謎です。BME280のセンサーとしての精度ですが、手持ちのAM2302に比べて温度が高め、湿度が低めに出ます。湿度は5%以上の差分があり、センサー種別によって測定値に大きなばらつきがあります。温度はその他手持ちの温度計と比較するとAM2302の方が正確なため、湿度もAM2302の方が正確ではないかと思います。23時53分ご連絡が遅くなりました。このBlogポストで掲載したコードはAdafruitのコードをベースにしておりますので、当方の著作権表示等は不要です。sourceがAdafruitであることを、GitHub版のcodeに記載しましたので、その点を明記いただければと思います。10時11分この記事へのコメントは終了しました。新館CuBeatSystemsSTM32マイコン徹底入門なんでも作っちゃう、かも。研究所SatE-OプロフィールRSSを表示する@niftyが提供する無料ブログはココログ!TwitterTwitterブログパーツ。