今日は複合気象センサーを用いて、様々な気象データを収集する演習を行います。テキストとは異なる気象センサーを使っています。情報が少なく苦労しましたが、結果を得ることができました。

テキストはいつも通り下記を使います。

電子部品ごとの制御を学べる! Raspberry Pi 電子工作実践講座

新品価格
¥2,728から
(2020/3/29 08:13時点)


今日の演習はP189-P190まで
※アナログ温度センサー実習は飛ばしました。

  1. 準備物
    1. ラズベリーパイ本体 RaspberryPi Zero使用 1台

      Raspberry Pi Zero W – ヘッダー ハンダ付け済み – ラズベリー・パイ ゼロ W ワイヤレス

      新品価格
      ¥2,980から
      (2020/8/2 14:07時点)

    2. 気象センサー 1個
      ※半田で作り込みが必要です。

      HiLetgo BME280 温度 センサー 湿度 センサー 気圧 センサー Arduino センサー 大気圧センサ 温湿度センサー ブレイクアウト Arduinoに対応 [並行輸入品]

      新品価格
      ¥750から
      (2020/8/8 14:42時点)

      ※アマゾンのコメントにある情報でなんとか接続することができました。
      以下参照情報
      https://www.amazon.co.jp/gp/customer-reviews/RTXBVBQ4U37TW/ref=cm_cr_arp_d_viewpnt?ie=UTF8&ASIN=B01M98R905#RTXBVBQ4U37TW

      VCC→+3V3(pin1)
      GND→GND(pin9)
      SCL→GPIO3/SCL1(pin5)
      SDA→GPIO2/SDA1(pin3)
      CSB→未使用
      DO→+3V3

      SDOははじめGNDに接続しましたが無反応。
      +3V3につないだところ、アドレス0x77で使用できました。
      この情報には大変助けられました。ありがとうございました。

      ・半田付けの動画 ※参考動画です。上記気象センサーとは別の気象センサーの取付け画像です。

  2. 配置図
  3. 回路図
  4. プログラム

    ※今回テキストとは別の部品を使っているので一部プログラムが異なります。

    import wiringpi as pi

    import time
    import bme280
    bme280_addr = 0x77
    pi.wiringPiSetupGpio()
    i2c = pi.I2C()
    weather = bme280.bme280( i2c, bme280_addr )
    weather.setup()
    while True:
        ( temp, humi, press ) = weather.get_value()
        print( “Temperature:”, temp ,”C Humidity:”, humi ,”% Pressure:”, press , “hPa” )
        time.sleep(1)
  5. 実際画像
    2つのセンサーを試していて、さらにLEDのテストもしている為今回の目的以外の部品もついていますが無視してください。

    ※もう一点はハマったことがあります。
    I2Cをラズベリーパイ側で有効にしていなかった。
    【現象】
    プログラム実行時に下記エラーが表示される
    Unable to open I2C device: No such file or directory
    【原因】
    ラズベリーパイ側でI2Cを有効にしていなかった。
    【有効化】

    1. 設定画面を開き「5のインターフェースオプション」を開く
      ※CUIでは「raspi-config」コマンドをスーパーユーザーにて設定します
    2. 5のI2Cを選択
    3. 有効化する
    4. 確認OK
    5. 設定画面を閉じる

      以上で終了。
      これにはほんと悩まされました・・・
  6. 実行結果

     

  7. まとめ

うちの防犯システム用ラズベリーパイにプログラムを導入しました。
1時間毎に、天気情報を記録するプログラムを設置する予定です。
夏休みの自由研究などに活かせそうです。