3人と1匹の日常とモノづくりブログ

興味のあるものをとりあえず動かしてみた、実装してみたシリーズをガンガン上げていきたいと思います。あくまでも自身の備忘録としてですが、誰かの助けになったらうれしいです。

【Wifi , Bluetooth搭載マイコン】【実装】ESP32でLCD (1602)を動かす

f:id:bamboomush:20210117164531p:plain
 ESP32を用いてLCDディスプレイを実装したので、そのやり方について紹介したいと思います。

この記事を読むことで、人気のWifi, Bluetooth搭載マイコン、ESP32でLCDディスプレイが実装できるようになります。

LCDディスプレイを動かせることで、センサのデータから文字表示まで広い範囲での使用が可能となります。これにより、自作IoT機器やロボットがより華やかになること間違いなしです!

 

Arduino Nano版はこちら

www.takeshi-1222.com

 

◆ESP32関係の実装記事◆ 
  • DCモータ実装

www.takeshi-1222.com

  • OTA実装 

www.takeshi-1222.com

  • Webサーバー実装

www.takeshi-1222.com

  •  サーボモータ実装

www.takeshi-1222.com

  • OLED実装

www.takeshi-1222.com

  • 超音波センサ実装

www.takeshi-1222.com

  • 温湿度センサ (低コスト) 

www.takeshi-1222.com

  • 温湿度センサ (ハイスペック)

www.takeshi-1222.com

  • 温湿度センサ (複数)

www.takeshi-1222.com

  • CO2センサ 

www.takeshi-1222.com

 

ESP32, LCDディスプレイの簡単な説明

ESP32

ESP32の大きな特徴はWifi, Bluetoothを搭載しているところです。そのうえでArduinoよりも安価に購入でき、ArduinoコードやC++などいくつかの言語の互換性があります。そのため、1つのマイコンでいろいろなことを試したい方には大変おすすめなマイコンです。

OLED

LCDは世間でいうところの液晶ディスプレイです。テレビでおなじみのこのディスプレイは安価できれいな表示が可能です。さらに高性能なディスプレイとしてOLEDがありますが、今回は安価で画面を作れることに重点を置きたいと思います。
これがあることでセンサ情報に対して、視覚的にわかりやすい情報を提示できるようになります。これの真骨頂はセンサと組み合わせなどで実現できますので、その記事も今後書きます。
また、今回のLCDディスプレイを簡単に使用するために、シリアル変換器を用意する必要があります。

実験構成

 今回の実験に使用する部品は以下のものです。
  • ESP32
  • LCDディスプレイ (1602)
  • LCDシリアル変換器
  • ジャンパ線多数

ESP32、LCDディスプレイ、LCDシリアル変換器は上記のものを使用しています。

 

ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。(メスメスのみで配線可能です)

実験

ESP32のセットアップや自動書き込み機能の実装に関してはこちらの記事を参考にしてください。

www.takeshi-1222.com

配線

まず配線は以下のようにします。

f:id:bamboomush:20210117185309p:plain

配線ができると以下のような画像のようになります。

f:id:bamboomush:20210117185436j:plain

実行コード

ここまで出来たら以下のコードを実行することで動作確認ができます。

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

#include <LiquidCrystal_I2C.h>

// set the LCD number of columns and rows
int lcdColumns = 16;
int lcdRows = 2;

// set LCD address, number of columns and rows
// if you don't know your display address, run an I2C scanner sketch
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);  

void setup(){
  // initialize LCD
  lcd.init();
  // turn on LCD backlight                      
  lcd.backlight();
}

void loop(){
  // set cursor to first column, first row
  lcd.setCursor(0, 0);
  // print message
  lcd.print("Hello, World!");
  delay(1000);
  // clears the display to print new message
  lcd.clear();
  // set cursor to first column, second row
  lcd.setCursor(0,1);
  lcd.print("Hello, World!");
  delay(1000);
  lcd.clear(); 
}

上記のソースコードでは、"Hello World"を表示しています。実際には、ここにセンサ情報を出力したいです。

まとめ

今回は、ESP32でLCDを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。