Skip to main content

Grove - Air Quality Sensor v1.3

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues


pir

このセンサーは、室内の空気状態を包括的に監視するために設計されています。炭素モノオキシド、アルコール、アセトン、シンナー、ホルムアルデヒドなど、幅広い有害ガスに反応します。測定メカニズムの性質上、このセンサーは特定のガス濃度を定量的に記述する具体的なデータを出力することはできません。しかし、オートリフレッシャースプレーやオート空気循環システムなど、定性的な結果のみを必要とするアプリケーションには十分に適しています。

pir

tip
[Seeed Gas Sensor Selection Guide](https://wiki.seeedstudio.com/ja/Seeed_Gas_Sensor_Selection_Guide/)を公開しました。このガイドは、あなたのニーズに最適なガスセンサーを選ぶのに役立ちます。

バージョン

製品バージョン変更点リリース日
Grove - Air Quality Sensor v1.3初版2016年5月

特徴

  • 幅広いターゲットガスに反応
  • コスト効率が高い
  • 耐久性がある
  • 5Vおよび3.3Vに対応
caution
1. 初期条件として比較的きれいな空気が必要です。
2. 長時間、高度に汚染された空気にさらされると感度が著しく低下する可能性があります。
3. Coffre-fort et armoire forte:

対応プラットフォーム

ArduinoRaspberry PiESP-IDF

pir

pir

esp-idf

caution
上記の対応プラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。

はじめに

note
Arduinoを初めて使用する場合は、開始する前に[Arduinoの使い方](https://wiki.seeedstudio.com/ja/Getting_Started_with_Arduino/)をご覧になることを強くお勧めします。

Arduinoで遊ぶ

デモンストレーション

イントロダクションで説明したように、このセンサーは広範囲の対象ガスに対して定性的な結果を提供するのに優れています。このデモでは、.cppファイル内で参照用に4つの状態を定義します。それらは以下の通りです:

  • a. 空気が新鮮 -- 良好な空気状態を示します。
  • b. 低汚染 -- 比較的低濃度の対象ガスが存在することを示します。
  • c. 高汚染(シリアルモニターに「Force signal active」のメッセージが表示されない場合) -- 汚染レベルに注意し、何らかの対策を検討する必要があるかもしれません。
  • d. 高汚染(シリアルモニターに「Force signal active」のメッセージが表示される場合) -- 空気の質を改善するために即時の対策を講じる必要があります。

意思決定構造を.cppファイルにカプセル化しました。しきい値を変更する方法については、そちらをご覧ください。

さあ、試してみましょう!

ハードウェア

  • ステップ1. 以下のものを準備してください:
Seeeduino V4.2Base ShieldGrove - Air Quality Sensor

pir

pir

pir

今すぐ購入今すぐ購入今すぐ購入
  • ステップ2. Grove - Air Quality SensorをGrove-Base ShieldのポートA0に接続します。
  • ステップ3. Grove - Base ShieldをSeeeduinoに差し込みます。
  • ステップ4. USBケーブルを使用してSeeeduinoをPCに接続します。

pir

note

Grove Base Shieldがない場合でも、以下のようにGrove - Air Quality SensorをSeeeduinoに直接接続することができます。

SeeeduinoGrove - Air Quality Sensor
5V
GND
接続なし
A0

ソフトウェア

/*
Grove_Air_Quality_Sensor.ino
Grove - Air Quality Sensorのデモ。

Copyright (c) 2019 seeed technology inc.
Author : Lets Blu
作成日時 : 2019年1月
修正日時:

MITライセンス (MIT)

このソフトウェアおよび関連ドキュメントファイル(以下「ソフトウェア」)のコピーを取得するすべての人に対し、以下の条件に従って、ソフトウェアを制限なく使用、コピー、変更、結合、公開、配布、サブライセンス、および/または販売する権利を無償で許可します。

上記の著作権表示および本許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。

ソフトウェアは「現状のまま」提供され、明示的または黙示的な保証はありません。
商品性、特定目的への適合性、および非侵害性に関する保証を含むがこれに限定されないものとします。
著者または著作権者は、ソフトウェアまたはその使用またはその他の取引に関連して生じるいかなる請求、損害、またはその他の責任についても責任を負いません。
*/
#include "Air_Quality_Sensor.h"

AirQualitySensor sensor(A0);

void setup(void) {
Serial.begin(9600);
while (!Serial);

Serial.println("センサーの初期化を待っています...");
delay(20000);

if (sensor.init()) {
Serial.println("センサー準備完了。");
} else {
Serial.println("センサーエラー!");
}
}

void loop(void) {
int quality = sensor.slope();

Serial.print("センサー値: ");
Serial.println(sensor.getValue());

if (quality == AirQualitySensor::FORCE_SIGNAL) {
Serial.println("高汚染!強制信号がアクティブです。");
} else if (quality == AirQualitySensor::HIGH_POLLUTION) {
Serial.println("高汚染!");
} else if (quality == AirQualitySensor::LOW_POLLUTION) {
Serial.println("低汚染!");
} else if (quality == AirQualitySensor::FRESH_AIR) {
Serial.println("新鮮な空気。");
}

delay(1000);
}
  • ステップ4. ターミナルに以下のような距離が表示されます。
センサーの初期化を待っています...
センサー準備完了。
センサー値: 48
新鮮な空気。
センサー値: 51
新鮮な空気。
センサー値: 49
新鮮な空気。
センサー値: 48
新鮮な空気。
センサー値: 48
新鮮な空気。
センサー値: 48
新鮮な空気。

しきい値や表示メッセージを調整するには、以下の.cppファイル内の意思決定構造を参照してください。

int AirQualitySensor::slope(void) {
_lastVoltage = _currentVoltage;
_currentVoltage = analogRead(_pin);

_voltageSum += _currentVoltage;
_volSumCount += 1;

updateStandardVoltage();
if (_currentVoltage - _lastVoltage > 400 || _currentVoltage > 700) {
return AirQualitySensor::FORCE_SIGNAL;
}
else if ((_currentVoltage - _lastVoltage > 400 && _currentVoltage < 700)
|| _currentVoltage - _standardVoltage > 150) {
return AirQualitySensor::HIGH_POLLUTION;
}
else if ((_currentVoltage - _lastVoltage > 200 && _currentVoltage < 700)
|| _currentVoltage - _standardVoltage > 50) {
return AirQualitySensor::LOW_POLLUTION;
}
else {
return AirQualitySensor::FRESH_AIR;
}

return -1;
}

Codecraftで遊ぶ

ハードウェア

ステップ 1. Grove - Air Quality SensorをBase ShieldのポートA0に接続します。

ステップ 2. Base ShieldをSeeeduino/Arduinoに接続します。

ステップ 3. USBケーブルを使用してSeeeduino/ArduinoをPCに接続します。

ソフトウェア

ステップ 1. Codecraftを開き、Arduinoサポートを追加し、メインプロシージャを作業エリアにドラッグします。

note
Codecraftを初めて使用する場合は、[Codecraftを使用したArduinoのガイド](https://wiki.seeedstudio.com/ja/Guide_for_Codecraft_using_Arduino/)も参照してください。

ステップ 2. 以下の画像のようにブロックをドラッグするか、このページの最後でダウンロードできるcdcファイルを開きます。

pir

プログラムをArduino/Seeeduinoにアップロードします。

tip
コードのアップロードが完了すると、シリアルモニターで空気品質が表示されます。

Raspberry Piで遊ぶ (Grove Base Hat for Raspberry Piを使用)

ハードウェア

  • ステップ 1. このプロジェクトで使用するもの:
Raspberry PiGrove Base Hat for RasPiGrove - Air Quality Sensor

pir

pir

pir

今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. Grove Base HatをRaspberry Piに接続します。
  • ステップ 3. Grove - Air Quality SensorをBase HatのA0ポートに接続します。
  • ステップ 4. USBケーブルを使用してRaspberry PiをPCに接続します。

ソフトウェア

caution
 **Raspberry Pi OS >= Bullseye**を使用している場合は、**Python3**でのみこのコマンドラインを使用する必要があります。
  • ステップ 1. ソフトウェアの設定に従って開発環境を構成します。
  • ステップ 2. grove.pyライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
  • ステップ 3. 以下のコマンドを実行してコードを実行します。
cd grove.py/grove
python3 grove_air_quality_sensor_v1_3.py 0

以下はgrove_air_quality_sensor_v1_3.pyのコードです。

import math
import sys
import time
from grove.adc import ADC


class GroveAirQualitySensor:

def __init__(self, channel):
self.channel = channel
self.adc = ADC()

@property
def value(self):
return self.adc.read(self.channel)

Grove = GroveAirQualitySensor


def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)

sensor = GroveAirQualitySensor(int(sys.argv[1]))

print('Detecting ...')
while True:
value = sensor.value
if value > 100:
print("{}, High Pollution.".format(value))
else:
print("{}, Air Quality OK.".format(value))

time.sleep(.1)

if __name__ == '__main__':
main()
success
すべてが正常に動作すれば、以下の結果が表示されます:
pi@raspberrypi:~/grove.py/grove $ python3 grove_air_quality_sensor_v1_3.py 0 
Detecting ...
138, High Pollution.
139, High Pollution.
140, High Pollution.
141, High Pollution.
139, High Pollution.
140, High Pollution.
140, High Pollution.
140, High Pollution.
139, High Pollution.
138, High Pollution.
139, High Pollution.
138, High Pollution.
138, High Pollution.
^CTraceback (most recent call last):
File "grove_air_quality_sensor_v1_3.py", line 71, in <module>
main()
File "grove_air_quality_sensor_v1_3.py", line 68, in main
time.sleep(.1)
KeyboardInterrupt

このセンサーを使用して空気品質を検出できます。++ctrl+c++を押して終了します。

note
    アナログポートの場合、シルクスクリーンのピン番号は**A1, A0**のようになっていますが、コマンドでは**0**や**1**というパラメータを使用します。デジタルポートと同じです。そのため、モジュールを正しいポートに接続してください。そうしないとピンの競合が発生する可能性があります。

Raspberry Piで遊ぶ (GrovePi_Plusを使用)

ハードウェア

  • ステップ 1. 以下のものを準備します:
Raspberry PiGrovePi_PlusGrove - Air Quality Sensor
pir
pir
pir
今すぐ購入今すぐ購入今すぐ購入
  • ステップ 2. GrovePi_PlusをRaspberryに接続します。
  • ステップ 3. Grove-MOSFET rangerをGrovePi_PlusのA0ポートに接続します。
  • ステップ 4. USBケーブルを使用してRaspberryをPCに接続します。

ソフトウェア

  • ステップ 1. デモのディレクトリに移動します:
cd yourpath/GrovePi/Software/Python/
  • ステップ 2. コードを確認します
nano grove_air_quality_sensor.py   # "Ctrl+x"で終了 #
import time
import grovepi

# Grove Air Quality SensorをアナログポートA0に接続
# SIG,NC,VCC,GND
air_sensor = 0

grovepi.pinMode(air_sensor,"INPUT")

while True:
try:
# センサー値を取得
sensor_value = grovepi.analogRead(air_sensor)

if sensor_value > 700:
print "高い汚染"
elif sensor_value > 300:
print "低い汚染"
else:
print "空気が新鮮"

print "sensor_value =", sensor_value
time.sleep(.5)

except IOError:
print "エラー"
  • ステップ 3. デモを実行します。
sudo python grove_air_quality_sensor.py
  • ステップ 4. ターミナルに以下のような出力が表示されます。

pir

ESP-IDFで遊ぶ

ハードウェア

  • ステップ 1. 以下のアイテムを準備します:
Seeed Studio XIAO ESP32C3Seeed Studio Grove Base for XIAOGrove Air Quality Sensor v1.3
  • ステップ 2. Grove - Air Quality SensorをESP32ボードに接続します:
    • センサーのVCCを3.3Vに接続
    • センサーのGNDをGNDに接続
    • センサーのSIGをADC対応のGPIOピン(例:GPIO34)に接続

      pir

ソフトウェア

  • ステップ 1. 公式ガイドに従ってESP-IDFをインストールします。

  • ステップ 2. Grove Analog Air Quality Sensorコンポーネントをクローンします:

cd your_project/components
git clone https://github.com/Priyanshu0901/grove_analog_aqs.git
  • ステップ 3. menuconfigを使用してコンポーネントを設定します:
idf.py menuconfig

"Component config → Grove Analog Air Quality Sensor"に移動して設定します:

  • ADCユニット番号(ADC1の場合は0、ADC2の場合は1)

  • ADCチャンネル(GPIO接続に対応)

  • ADC減衰(デフォルト:ADC_ATTEN_DB_12 for 3.3V)

  • 空気品質の閾値

  • 電源管理オプション(オプション)

  • ステップ 4. 新しいプロジェクトを作成し、コンポーネントを使用します:

#include "grove_analog_aqs.h"

void app_main(void)
{
// デフォルト設定で初期化
grove_aqs_config_t config = GROVE_AQS_DEFAULT_CONFIG();
esp_err_t ret = grove_aqs_init(&config);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "センサーの初期化に失敗しました: %d", ret);
return;
}

// センサーデータを読み取る
grove_aqs_data_t data;
ret = grove_aqs_read_data(&data);
if (ret == ESP_OK) {
ESP_LOGI(TAG, "生のADC値: %d", data.raw_value);
ESP_LOGI(TAG, "電圧: %d mV", data.voltage_mv);
ESP_LOGI(TAG, "空気品質: %s", grove_aqs_quality_to_string(data.quality));
}

// 使用終了時にクリーンアップ
grove_aqs_deinit();
}
  • ステップ 5. プロジェクトをビルドしてフラッシュします:
idf.py build
idf.py -p /dev/ttyUSB0 flash monitor
note
/dev/ttyUSB0をESP32のシリアルポートに置き換えてください。

期待される出力

I (242) sleep_gpio: GPIOスリープ設定の自動切り替えを有効化
I (249) main_task: CPU0で開始
I (249) main_task: app_main()を呼び出し
I (249) grove_aqs_example: Grove Analog Air Quality Sensorを初期化中
I (259) grove_aqs_example: ADCユニット: 0, ADCチャンネル: 2を使用
I (259) grove_aqs: ADCユニット: 0, ADCチャンネル: 2で初期化中
I (269) grove_aqs: ADCキャリブレーションが有効
I (269) grove_aqs: Grove Analog Air Quality Sensorが正常に初期化されました
I (279) grove_aqs_example: センサーの安定化を待機中...
I (3279) grove_aqs: 空気品質の読み取り: Raw=300, Voltage=218mV, Quality=Fresh
I (3279) grove_aqs_example: 読み取り #1:
I (3279) grove_aqs_example: 生のADC値: 300
I (3279) grove_aqs_example: 電圧: 218 mV
I (3279) grove_aqs_example: 空気品質: Fresh
I (3289) grove_aqs_example: アドバイス: 空気は新鮮で清潔です!
I (4289) grove_aqs: 空気品質の読み取り: Raw=298, Voltage=216mV, Quality=Fresh
I (4289) grove_aqs_example: 読み取り #2:
I (4289) grove_aqs_example: 生のADC値: 298
I (4289) grove_aqs_example: 電圧: 216 mV
I (4289) grove_aqs_example: 空気品質: Fresh
I (4299) grove_aqs_example: アドバイス: 空気は新鮮で清潔です!
I (5299) grove_aqs: 空気品質の読み取り: Raw=286, Voltage=208mV, Quality=Fresh
I (5299) grove_aqs_example: 読み取り #3:
I (5299) grove_aqs_example: 生のADC値: 286
I (5299) grove_aqs_example: 電圧: 208 mV
I (5299) grove_aqs_example: 空気品質: Fresh
I (5309) grove_aqs_example: アドバイス: 空気は新鮮で清潔です!
I (6309) grove_aqs: 空気品質の読み取り: Raw=283, Voltage=206mV, Quality=Fresh
tip
このコンポーネントは以下の機能を提供します:
- 自動ADCキャリブレーション
- 空気品質の閾値設定可能
- オプションのGPIO電源制御
- エラーハンドリングとログ記録
- ADC1およびADC2の両方をサポート

回路図オンラインビューア

リソース

プロジェクト

SPCPM (Solar Powered City Pollution Monitor): 低メンテナンス、高出力の空気汚染および騒音汚染モニターを都市全体に設置し、配線不要。

周囲の環境データを確認できるウェブサイト:

技術サポートと製品ディスカッション

産業用センサーへのアップグレード可能

SenseCAP S2110コントローラーS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変えることができます。Seeedはプロトタイピングを支援するだけでなく、SenseCAPシリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。

IP66の筐体、Bluetoothによる設定、グローバルLoRaWAN®ネットワークとの互換性、内蔵19Ahバッテリー、そして強力なAPPサポートにより、SenseCAP S210xは産業用途に最適な選択肢となります。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして8-in-1気象ステーション用のセンサーが含まれています。次の成功する産業プロジェクトには、最新のSenseCAP S210xをぜひお試しください。

Loading Comments...