- Published on
Raspberry Piに「CCS811」を接続し制御する
1522文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは多機能なシングルボードコンピュータであり、様々なセンサーやモジュールを接続して利用することができます。この記事では、空気品質センサー「CCS811」をRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. CCS811空気品質センサーの概要
CCS811は、二酸化炭素(CO2)および揮発性有機化合物(VOC)の濃度を測定するためのデジタルセンサーです。I2C通信プロトコルを使用してデータを提供し、Raspberry Piなどのプラットフォームで容易に利用できます。
2. CCS811の接続
CCS811をRaspberry Piに接続するには、通常、以下のような配線が必要です。
- VCC(赤色): 3.3Vの電源
- GND(茶色): 接地
- SCL(緑色): I2Cのクロック
- SDA(青色): I2Cのデータ
これらの線をRaspberry Piの対応するピンに接続します。Raspberry PiのGPIOピンは、データシートやピン配置を確認して正確に選択しましょう。
3. Raspberry Piコードの作成
Raspberry PiでCCS811を制御するPythonのサンプルコードを以下に示します。smbus
モジュールが必要なので、未インストールの場合は sudo apt-get install python3-smbus
を実行してください。
import smbus
import time
# CCS811のI2Cアドレス
CCS811_ADDRESS = 0x5A
# レジスタアドレス
CCS811_REG_STATUS = 0x00
CCS811_REG_MEAS_MODE = 0x01
CCS811_REG_ALG_RESULT_DATA = 0x02
# 初期化
bus = smbus.SMBus(1)
def ccs811_init():
# CCS811をアクティブモードに設定
bus.write_byte_data(CCS811_ADDRESS, CCS811_REG_MEAS_MODE, 0x10)
def read_ccs811_data():
# ステータスが「データ準備完了」になるまで待機
while bus.read_byte_data(CCS811_ADDRESS, CCS811_REG_STATUS) & 0x08 == 0:
time.sleep(0.5)
# データの読み取り
data = bus.read_i2c_block_data(CCS811_ADDRESS, CCS811_REG_ALG_RESULT_DATA, 8)
co2 = (data[0] << 8) | data[1]
voc = (data[2] << 8) | data[3]
return co2, voc
if __name__ == "__main__":
try:
ccs811_init()
while True:
co2, voc = read_ccs811_data()
print(f"CO2: {co2} ppm, VOC: {voc} ppb")
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
print("終了")
4. コードの実行と確認
コードを保存したら、ターミナルで実行します。コードが正常に動作していれば、CO2とVOCの濃度が定期的に表示されるはずです。
これで、Raspberry PiにCCS811を接続し、Pythonコードを使用してデータを取得する基本的な手順が完了しました。環境モニタリングやIoTプロジェクトでこのセンサーを活用することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚