0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ESP32入門】CO2モニターを作る #4 LCD表示編

0
Posted at

はじめに

前回(#3 Gmail通知編)でCO2が高くなったらメールで通知できるようになりました。

今回はCO2濃度を LCDに表示 して、PCがなくても手軽に確認できるようにします。


なぜLCDをつけるのか

これまではCO2濃度をPCのSerial Monitorでしか確認できませんでした。

つまりPCを開いていないと数値が見られず、手軽さに欠けていました。

LCDをつければPCなしで、ぱっと見るだけでCO2濃度がわかります。これが今回の目的です。


使用する部品

部品 説明
LCD1602 16文字×2行のキャラクタ液晶
ジャンパー線 配線用

LCD1602は電子工作の定番ディスプレイで、16文字を2行表示できます。


配線

LCD1602とESP32を以下のように接続します。

LCD1602 役割 ESP32
1 (VSS) GND GND
2 (VDD) 電源 5V
3 (V0) コントラスト GND
4 (RS) レジスタ選択 GPIO19
5 (RW) 読み書き GND
6 (EN) イネーブル GPIO23
11 (D4) データ GPIO18
12 (D5) データ GPIO17
13 (D6) データ GPIO16
14 (D7) データ GPIO15
15 (A) バックライト+ 5V
16 (K) バックライト- GND

ピンが多いので、配線は1本ずつ確認しながら進めるのがおすすめです。


使用ライブラリ

  • LiquidCrystal by Arduino, Adafruit

コード

CO2濃度に応じて4段階のレベルを表示します。

#include <LiquidCrystal.h>
#include <HardwareSerial.h>
#include <MHZ19.h>

MHZ19 myMHZ19;
HardwareSerial mySerial(2);
LiquidCrystal lcd(19, 23, 18, 17, 16, 15);

void setup() {
  Serial.begin(115200);
  mySerial.begin(9600, SERIAL_8N1, 13, 14);
  myMHZ19.begin(mySerial);
  myMHZ19.autoCalibration(false);
  lcd.begin(16, 2);
  lcd.clear();
}

void loop() {
  lcd.clear();
  int co2 = myMHZ19.getCO2();

  lcd.setCursor(0, 0);
  lcd.print("CO2:" + String(co2) + "ppm");
  lcd.setCursor(0, 1);

  if (co2 >= 5000) {
    lcd.print("Danger");
  } else if (co2 >= 2000) {
    lcd.print("Warning");
  } else if (co2 >= 1000) {
    lcd.print("Caution");
  } else {
    lcd.print("Good");
  }

  delay(5000);
}

CO2レベルの目安

CO2濃度 表示 状態
~1,000 ppm Good 良好
1,000~2,000 ppm Caution 注意
2,000~5,000 ppm Warning 警告
5,000 ppm~ Danger 危険

コードのポイント

① LCDのピン設定

LiquidCrystal lcd(19, 23, 18, 17, 16, 15);

カッコの中はピン番号です。順番は RS, EN, D4, D5, D6, D7 です。

② 1行目にセンサーで取得したCO2濃度の数値、2行目に取得したCO2濃度の状態を表示

lcd.setCursor(0, 0);  // 1行目
lcd.print("CO2:" + String(co2) + "ppm");
lcd.setCursor(0, 1);  // 2行目
lcd.print("Good");

setCursor(0, 0) で1行目、setCursor(0, 1) で2行目を指定しています。


動かしてみた

書き込むとLCDにこう表示されました。

CO2:583ppm
Good

PCを開かなくてもCO2濃度が一目でわかるようになり、ぐっと実用的になりました。


まとめ

  • LCD1602を配線した
  • CO2濃度とレベルを表示できた
  • PCなしで確認できるようになった

次回はブラウザでグラフ表示できるWebサーバーを作ります!


#5 Webサーバー編へ続く


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?