- blogs:
- cles::blog
Raspberry Pi 2で温度・湿度・気圧を測る
raspberrypi slack i2c sensor 電子工作先日、I2Cを使って Raspberry Pi 2 から温湿度・気圧を計測できるようにしたらなかなか面白かったので、忘れないうちにやり方をメモ。
組み込み的な物は専門じゃないので避けていたのですが、ある方に「温度くらいなら I2C 使えばすぐですよ!ハードウェアの知識いらないです!」と言われたので試してみたらあっという間にできてしまったのでびっくりしました。結局一番時間がかかったのはピンの半田付けと結線でした。
以下、構築メモ。
† 必要な物
とりあえずセンサーがないと始まりません。今回使ったのは秋月の BME280使用 温湿度・気圧センサモジュールキット。ピンアサイン等に気をつければ BME280 が載っている他社のキットでも基本的に手順は同じだろうと思います。
あとはブレッドボードとか、半田ごてとか、ニッパーとか、適当なワイヤーとかの電子工作用の工具が必要です。
† センサーと Raspberry Pi をつなぐ
説明書に従ってピンヘッダを半田付けし、I2C を有効化するために J3 をはんだでジャンパしておきます。今回のセンサモジュールからは6本のピンが出ていますが、これを Raspberry Pi の GPIO のピンアサインに従って以下のように結線を行います。
ピンアサインの確認は以下のサイトがグラフィカルでわかりやすいと思います。
† モジュールと Raspberry Pi を通信させる
まず、Raspberry Pi の I2C を有効化します。
- sudo raspi-config を実行
- 表示された画面の [5 Interfacing Options] を選択 → [P5 I2C] を選択
- [Would you like the ARM I2C interface to be enabled?] と聞かれるので <はい> を選択
- [The ARM I2C interface is enabled] と表示されるので <了解> を選択
終了したら lsmod で i2c_dev, i2c_bcm2708 があるかを確認しておきます。
次に、必要なツール群を apt でインストール。
問題なくできていれば、以下のコマンドを実行すると 76 という数字が表示されるのが確認できるはずです。
† センサーから値を取得してみる
センサーから値を取得するためにスイッチサイエンスが公開している SWITCHSCIENCE/BME280 を使います。必要になるのは bme_280_sample.py だけですが、最新版だと smbus2 が必要になってしまっているので、smbus で実装されている旧バージョンを使用します。
これを wget などでダウンロードして実行すれば、温湿度、気圧が取得できます。
サンプルプログラムの中身は簡単なので必要に応じてカスタマイズすれば良いと思います。
僕は Slack に自動投稿するようにしてみました。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9052
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . awk で指定した n カラム目以降を出力する(6810)
3 . Windows 10 で勝手にログアウトされないようにする(6496)
4 . Thunderbird のメッセージをスレッド化しないようにする(5769)
5 . ネットワーク機器を廃棄する前に設定情報の消去を(4719)