ふくふくHukuhuku Inc.
EP.07Sensor Log対象: 中2以上 13分公開: 2026-05-10

光合成を実感する:CO2 / O2 / 照度センサーで植物の活動を見る

光合成と呼吸の式を、自分の手でデータ化する実験。透明容器に植物を入れ、光を当てた時と消した時で CO2・O2・照度の変化を 1 日記録。中高生の探究学習で映える定番の自由研究テーマ。

#光合成#CO2#O2#照度#理科#探究学習
CO📔 Google Colab で開く(上から順にセルを実行)
シェア

光合成 は中学理科で習う最重要反応の 1 つ。教科書では式と図で説明されますが、本記事では 3 種類のセンサー を組み合わせて、実際に自分の目で「光合成が起きている」 を確認します。中高生の探究学習・自由研究に最適な、ふくふくおすすめの大物 EP です。

1. 光合成と呼吸の理屈 (おさらい)

光合成と呼吸の関係

光合成: 光のエネルギーで CO2 と水から糖と O2 を作る (光がある時)。呼吸: 糖と O2 から CO2 と水とエネルギーを取り出す (常時)。植物は両方を行う が、十分な光があれば光合成のほうが速いので、結果として CO2 が減り O2 が増える。

  • 光合成式: 6 CO2 + 6 H2O + 光 → C6H12O6 + 6 O2
  • 呼吸式: C6H12O6 + 6 O2 → 6 CO2 + 6 H2O + エネルギー
  • 正味光合成 = 光合成 − 呼吸 が、容器内で観測できる量

2. 実験セットアップ

道具用途価格目安
透明な密閉容器 (5L 程度の漬物容器・ペットボトル)植物を密閉空間に入れる100〜500 円
観葉植物 (ポトス・サンセベリア等)実験対象500〜1,500 円
CO2 センサー (MH-Z19C / SCD40)CO2 濃度測定1,500〜3,500 円
O2 センサー (Grove O2)酸素濃度測定5,000〜8,000 円
照度センサー (BH1750 / DLight Unit)光の強さ測定200〜1,000 円
LED 照明 (デスクライト・ペンダント)光源(家にあるもの)
M5Stack Core2 (推奨)3 センサーを束ねる7,500 円
SD カードデータ記録500 円

3. 容器のセットアップ

  1. 15L 程度の透明容器 (タッパー、漬物容器、加工した 2L ペットボトルでも OK) を用意
  2. 2鉢植えごと容器に入れる (土が露出していると CO2 を吸収するので、ジップロックで包むとより正確)
  3. 3蓋に小さな穴 を開けて、3 センサーのケーブルを通す
  4. 4シリコンや粘土 で穴をふさいで密閉
  5. 5容器の外 から照度センサーで光量を測る (容器内に入れると蓋で値が変わる)
LED 照明透明密閉容器(タッパー等)CO2O2luxM5StackCO2: 800ppmO2: 20.5%Lux: 5000光を当てる/消すで CO2 と O2 の変化を観察 (光合成 vs 呼吸)
光合成実験のセットアップ(透明容器・植物・3 センサー・LED 照明)
⚠️ 実験時の注意事項

(1) 容器の密閉が不完全だと外気が混入し、結果が出ない。粘土・シリコン・テープで気密性を確保。(2) LED 照明 (特に植物育成用) は熱を持つ ので、容器に近づけすぎない (10cm 以上離す)。(3) 連続光照射は植物にストレス。実験は最大 24 時間に留め、その後は通常環境に戻す。(4) M5Stack のリポバッテリーは過熱・直射日光厳禁。USB 給電 + 室内が安全。(5) O2 センサーは高湿度に弱い ので、容器内に乾燥剤を入れるか、湿度をモニタリング。(6) 子どもが実験する場合は保護者の見守りを推奨

4. M5Stack のコード (3 センサー同時計測)

M5Stack Core2 + CO2 Unit + O2 sensor + DLight Unit
Python
from m5stack import lcd, sdcardimport unit, time
co2_unit = unit.get(unit.CO2L, unit.PORTA)o2_sensor_pin = 36   # O2 センサーをアナログピンに接続import machineo2_adc = machine.ADC(machine.Pin(o2_sensor_pin))dlight = unit.get(unit.DLIGHT, unit.PORTB)sdcard.SDCard()
def read_o2():    """O2 濃度の換算 (Grove O2 sensor)"""    raw = o2_adc.read_uv() / 1_000_000  # V    # 大気中 O2 = 20.9 % のとき出力 = 約 0.5V (校正済み前提)    return raw / 0.5 * 20.9
with open('/sd/photosynthesis.csv', 'a') as f:    f.write('timestamp,co2_ppm,o2_pct,{{lux|*}}\n')    while True:        ts = time.time()        co2 = co2_unit.co2        o2 = read_o2()        lux = dlight.lux        f.write(f'{ts},{co2},{o2:.2f},{lux:.0f}\n')        f.flush()
        lcd.clear()        lcd.print(f'CO2: {co2} ppm', 10, 30, 0x008800)        lcd.print(f'O2:  {o2:.1f} %', 10, 70, 0xFF0000)        lcd.print(f'Lux: {lux:.0f}', 10, 110, 0x0000FF)        time.sleep(30)

5. 実験手順

  1. 108:00: 容器セット完了、初期値を記録 (CO2 / O2 / 照度)
  2. 208:00 - 12:00: 暗所に置く (呼吸のみ)。CO2 が上がり O2 が下がるはず
  3. 312:00: 明るい場所 + LED 照明で光照射開始
  4. 412:00 - 18:00: 光照射 (光合成優勢)。CO2 が下がり O2 が上がるはず
  5. 518:00: 光を消して再び暗所
  6. 624 時間続ける とサイクルが 1 巡見える

6. 期待される結果

時間帯CO2 の変化O2 の変化解釈
朝 (暗所)なし増加 (+50〜200 ppm/h)減少呼吸のみ
昼 (光照射)あり減少 (-100〜500 ppm/h)増加光合成 > 呼吸
夜 (暗所)なし増加減少呼吸のみ
「光補償点」が見つかるかも

光合成 = 呼吸 になる光量を「光補償点」と呼びます。この点では CO2 も O2 も変動しない。光を弱くしたり LED を消したりすると、正味光合成が 0 になる照度 が見つかるはず。これは生物学の教科書に載っている重要な概念で、自分の植物の光補償点を測る のが探究学習として強い結論になります。

7. グラフ化 (Colab)

3 軸グラフで光合成の動きを可視化
Python
import pandas as pdimport matplotlib.pyplot as plt
df = pd.read_csv('photosynthesis.csv')df['time'] = pd.to_datetime(df['timestamp'], unit='s')
fig, ax1 = plt.subplots(figsize=(12, 5))# 左軸: CO2ax1.plot(df['time'], df['co2_ppm'], 'g-', label='CO2 [ppm]')ax1.set_ylabel('CO2 [ppm]', color='g')ax1.tick_params(axis='y', labelcolor='g')
# 右軸 1: O2ax2 = ax1.twinx()ax2.plot(df['time'], df['o2_pct'], 'r-', label='O2 [%]')ax2.set_ylabel('O2 [%]', color='r')ax2.tick_params(axis='y', labelcolor='r')
# 右軸 2: 照度 (背景の薄い領域として)ax3 = ax1.twinx()ax3.spines['right'].set_position(('outward', 50))ax3.fill_between(df['time'], 0, df['lux'], color='yellow', alpha=0.3)ax3.set_ylabel('照度 [lux]', color='orange')
ax1.set_title('光合成実験:1 日のCO2/O2/照度')fig.autofmt_xdate()plt.tight_layout()plt.savefig('photosynthesis_24h.png', dpi=200)

8. 自由研究のまとめ方

  • 仮説: 「光合成が起きている時、CO2 は減り O2 は増える」
  • 実験条件: 容器サイズ・植物の種類・葉の枚数・照度を必ず記録
  • 結果: グラフで「光照射開始から CO2 が ◯ ppm 減った」と数値で
  • 考察: 「正味光合成速度 = ◯ ppm/分」、葉面積で割って単位面積あたりに換算するとさらに本格的
  • 反省: 「予想通りにならなかった点」「次にやるならどう改善するか」

9. 次の話

EP.08 では 複数日のデータを継続的にログを取る方法 (SD カード保存・ローテーション・電源管理) を扱います。光合成実験のような「24 時間以上の長時間記録」を安定させる技術編です。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp