Lolin ESP32 OLEDを試してみた

  • 投稿日:
  • by
  • カテゴリ:

HiLetgo ESP-WROOM-32 ESP32 ESP-32 0.96インチOLEDディスプレイWIFI-BT Arduino AP STAに対応先日、Amazonを見ていると、ESP32とOLEDディスプレイが一体化した製品を見つけました。
面白そうなので入手して動作を試してみました。

1.製品の概要

この製品は、WiFi/BluetoothモジュールのESP32と、0.96インチOLEDディスプレイが一体になったものです。
WiFiなどで通信しつつ、0.96インチ/128×64ピクセルのディスプレイにグラフィックや文字などを表示することもできます。
一体化している分、小さなスペースで済むというメリットがあります。

2.購入まで

Amazonでは1,800円で売られていましたが、「AliExpressならもっと安く手に入るかも」と思って調べてみました。
すると、「Lolin ESP32 OLED」のような商品名になっていて、安いショップでは1,000円程度になっていました。
Amazonで買っても配送元が中国で、AliExpressで買っても到着までの日数はさほど変わらないので、AliExpressで注文してみました。
Lily Goというショップで注文したところ、10日ほどで届きました。

3.Arduino IDEで使う

Lolin ESP32 OLEDは、Arduino IDEからプログラムを書き込むことができます。
ESP32 DevKit-Cの場合と同じ手順で、ESP32用のライブラリ等をArduino IDEに組み込みます。
「ツール」→「ボード」メニューでは、「WEMOS Lolin 32」を選べば良いようでした。

ただし、プログラムの書き込みが終わるまで、Lolin ESP 32の裏面にある「Boot」のスイッチを押したままにしておく必要がありました。
また、書き込みが終わったら背面の「EN」のスイッチを押すことで、プログラムが実行されました。

4.OLEDに表示する

WiFi部分のプログラムの組み方は、ESP32 DevKit-Cの場合と同じです。
一方、OLEDに表示するには、ライブラリが別途必要になります。
GitHubからライブラリをダウンロードした後、Arduino IDEで「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインストール」メニューを選び、ダウンロードしたZipファイルを選択します。

esp8266-oled-ssd1306ライブラリのダウンロード

ライブラリの基本的な使い方は、GitHubのページに記載されています。
SSD1306.hをインクルードし、「SSD1306 display(0x3c, 5, 4);」のようにしてdisplayオブジェクトを生成したあと、各種のメソッドで描画します。

ごく簡単な例として、以下の動画のようなものを作ってみました。

ソースコードは以下の通りです。

#include <SSD1306.h>
#include <OLEDDisplay.h>

SSD1306 display(0x3c, 5, 4);
int x, p;
OLEDDISPLAY_COLOR c;

void setup() {
  // put your setup code here, to run once:
  display.init();
  display.resetDisplay();
  display.displayOn();
  display.clear();
  display.setColor(WHITE);
  x = 60;
  c = WHITE;
  p = -4;
}

void loop() {
  // put your main code here, to run repeatedly:
  int y, w, h;
  y = x / 2;
  w = 127 - x * 2;
  h = 63 - x;
  display.drawRect(x, y, w, h);
  display.display();
  x += p;
  delay(50);
  if ((p == -4 && x == -4) || (p == 4 && x == 64)) {
    c = (c == WHITE) ? BLACK : WHITE;
    display.setColor(c);
    if (c == WHITE) {
      p = (p == -4) ? 4 : -4;
    }
    x = (p == -4) ? 60 : 0;
  }
}