macsbug

Just another WordPress.com site

ESP8266 単体で I2C OLED を動かす

leave a comment »

ESP8266 単体で OLED を動かす。                                                                                             2015.10.18

ESp8266 で、表示装置が簡単に使えるようになると、多彩な電子工作が出来ます。
たとえば、動作確認の為の、LED や Arduinoにあるシリアルモニターを
このディスプレーで表示する事ができ、部品が不要になります。



準備:
1. ESP8266:秋月電子通商の ESP-WROOM-02 と基板。
2. OLED:Blue 0.96 int I2C 128X64 OLED Display。I2C 128X64 OLED Display for Arduino を参照の事。
3. ESPとOLEDの配線:2本。ESP8266(IO_0) – OLED(SDA)、(IO_1) – OLED(SCL)。Vcc=+3.2V,GND=GND。
4. Liblary: ESP_Adafruit_SSD1306
5. Liblary: Adafruit_GFX
6. Arduino IDE:ライブラリ−のインストール方法と、ESP8266 への書き込み方法は習熟済みである事。


ポイント:
I2C :配線は Liblary の Wire で定義する。
基本:Wire.begin(SDA,SCL);  例:Wire.begin(0,2);  0:GPIO_0,  2:GPIO_2
SDAとSCLは、OLEDの端子に記載されている。
ESP8266 側は、空いているGPIO端子を使用する。尚、10kohm程度でプルアップ(+)しておく事。
注:ESP8266 に於ける、I2C の端子の解説は多数あり要注意の事。ESPのマニュアルの記載は解りにくい。

OLED:
_ 特徴:とにかく明るく見易い。配線数4本のみ。グラッフィック可能。文字、画像表示のサンプルあり。
_    サンプルは非常に良く出来ていて、参考にすると多彩な表現が容易に出来ます。
_ 電源:ESP8266と同じ、3.2Vで動作する。
_ 電源端子:販売されているOLEDは、2種類有り、VCC とGND の配置が逆になっているので、要注意!!
_ アドレス:OLED の基板の裏に書いてある。例:0x7A、0x78
_ スケッチとアドレス:Setupで、display.begin(SSD1306_SWITCHCAPVCC, 0x78>>1); と定義する。
_ 価格:ブログ記載時、ebayにて 883円。国内で高い場合は、共同購入しましょう。

ESPの電源:
_ 電源の入力は容量の大きな物を使用する事。これが前提です。
_ 秋月の基板は良く出来ています。それは、ESPの裏側が全面グランドパターンになっているからです。
_ ノイズ対策ができます:基板に小さな穴を開け、ESPの裏のグランドと基板のグランドをハンダ付けする。
_ さらに、3端子のグランドを基板のグランドに付け、放熱させる事が出来る。
_ 端子と3端子のグランドが接近している為、他の端子周辺には絶縁テープを付ける事。
_ この時、3端子の出力は、最大限、ESPの電源端子に近づけてハンダ付けする事。
_ 3端子のグランド側は極力太い線か銅板でグランドに付ける。
_ 3端子Regulatorの入出力には、1uFと10uFのチップ積層電解コンデンサーを付ける。
_ さらに、47uFの導電性高分子アルミ個体電解コンデンサーを付けると、かなり安定します。
_ 以上、Analog Discovery にて、ESPの電源端子をモニターして確かめた内容です。
_ この事を、順序立てて行う事により、大きなコンデンサーを付ける必要はなくなります。
_ 尚、写真は製作中のもので、3端子は横に付けてあるとか、47uF は外してあります。


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <ESP_Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
Wire.begin(0,2);  // (SDA,SCL):ESP8266(IO_0)-OLED(SDA),(IO_1)-OLED(SCL)
display.begin(SSD1306_SWITCHCAPVCC, 0x78>>1); // OLED ADDRESS
display.clearDisplay(); // Clear the buffer.
}

void loop() {
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(30,10);
display.println("Hello");
display.setCursor(30,40);
display.println("World");
display.display();
delay(2000);
}

参考:
มาเล่น ESP8266 กับจอ OLED 128×64 ด้วย Arduino ESP กัน
nathan.chantrell.net:WiFi MQTT Display with the ESP8266


Written by macsbug

10月 19, 2015 @ 2:06 am

カテゴリー: ESP8266

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。