ESP32로 OLED 디스플레이에 시간 표시
13295 단어 Arduino
목적
ESP32에서 OLED 디스플레이 SSD1331에 현재 시간을 얻는 웨어러블 장치 개발의 선구자.
미리 다운로드
ESP32에 필요한 ESP32 라이브러리을 다운로드합니다.
현재 시간을 얻으려면 NTP (Network Time Protocol)에서 시간 취득 라이브러리을 가져옵니다.
ESP32 보드를 추가하는 방법
・Windows의 방법으로 추가 방법을 소개합니다.
Arduino가 설치된 위치에 폴더를 만들고 이전에 esp32에 다운로드 한 "arduino-esp32-master"를 저장하십시오.
예 C:\Program Files (x86)\Arduino\hardware\espressif\esp32\
esp32\tools에서 get.exe를 시작합니다.
시작하면 필요한 파일이 다운로드됩니다.
· CP210x USB-UART 브리지 VCP 드라이버을 다운로드하여 설치하십시오. .
목차
ESP32에 필요한 ESP32 라이브러리을 다운로드합니다.
현재 시간을 얻으려면 NTP (Network Time Protocol)에서 시간 취득 라이브러리을 가져옵니다.
ESP32 보드를 추가하는 방법
・Windows의 방법으로 추가 방법을 소개합니다.
Arduino가 설치된 위치에 폴더를 만들고 이전에 esp32에 다운로드 한 "arduino-esp32-master"를 저장하십시오.
예 C:\Program Files (x86)\Arduino\hardware\espressif\esp32\
esp32\tools에서 get.exe를 시작합니다.
시작하면 필요한 파일이 다운로드됩니다.
· CP210x USB-UART 브리지 VCP 드라이버을 다운로드하여 설치하십시오. .
목차
1. 전자 부품 목록
이름
사양
개수
ESP-WROOM-32
ESP32
1개
소형 유기 EL 디스플레이
SSD1331
1개
브렛 보드
1개
케이블
7개
2. 배선
ESP32
OLED
5
SCLK
18
MOSI
12
ChipSelect
13
DC
14
Reset RST
3. 현재 시간을 취득하는 프로그램
ESP32.rb#include <WiFi.h> // WiFi接続
#include <WiFiUdp.h>
const char *ssid = "*******"; //WiFi接続ID ;
const char *password = "*******"; //WiFi接続パスワード ;
#include <NTPClient.h> //時間取得ライブラリ
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);
// OLEDピン定義
const uint8_t SCLK_OLED = 5; //SCLK (SPI Clock)
const uint8_t MOSI_OLED = 18; //MOSI (Master Output Slave Input)
const uint8_t CS_OLED = 12; //OLED ChipSelect
const uint8_t DC_OLED = 13; //OLED DC (Data/Command)
const uint8_t RST_OLED = 14; //OLED Reset RST
// 色の設定
#define BLACK 0x0000 // 黒
#define BLUE 0x001F // 青
#define RED 0xF800 // 赤
#define GREEN 0x07E0 // 緑
#define CYAN 0x07FF // シアン
#define MAGENTA 0xF81F // マゼンダ
#define WHITE 0xFFFF // 白
// ライブラリの設定
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>
Adafruit_SSD1331 afficheur = Adafruit_SSD1331(CS_OLED, DC_OLED, MOSI_OLED, SCLK_OLED, RST_OLED);
void setup() {
Serial.begin(115200); // シリアルモニタ開始
afficheur.begin(); // OLEDディスプレイの開始
// WiFi接続開始
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
Serial.print ( "." );
}
// 現在時間の取得
timeClient.begin();
timeClient.setTimeOffset(32400);
}
void loop() {
// 時間の表示
timeClient.update();
String jp_time = timeClient.getFormattedTime();
Serial.println(jp_time);
Serial.print("\n");
afficheur.setCursor(0,0); // cursor is in x=0 and y=0
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print("--------"); // テキスト表示
afficheur.fillScreen(BLACK); // バックグラウンド黒
afficheur.setCursor(0,16); // cursor is in x=0 and y=16
afficheur.setTextSize(2); // テキストサイズ
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print(jp_time); //テキスト表示
afficheur.setCursor(0,31); // cursor is in x=0 and y=31
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print("--------"); // テキスト表示
afficheur.setCursor(0,46); // cursor is in x=0 and y=46
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print(" "); // テキスト表示
delay(1000); // 1000 us(1秒)毎に更新
}
디스플레이에 굽는 것을 피하기 위해 디스플레이를 1초 간격으로 화면을 업데이트합니다.
4. 동영상
아래 이미지를 선택하면 동영상이 재생됩니다.
YouTube로 날아갑니다.
Reference
이 문제에 관하여(ESP32로 OLED 디스플레이에 시간 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m2y2/items/03456cce390d62fa781e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ESP32
OLED
5
SCLK
18
MOSI
12
ChipSelect
13
DC
14
Reset RST
3. 현재 시간을 취득하는 프로그램
ESP32.rb#include <WiFi.h> // WiFi接続
#include <WiFiUdp.h>
const char *ssid = "*******"; //WiFi接続ID ;
const char *password = "*******"; //WiFi接続パスワード ;
#include <NTPClient.h> //時間取得ライブラリ
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);
// OLEDピン定義
const uint8_t SCLK_OLED = 5; //SCLK (SPI Clock)
const uint8_t MOSI_OLED = 18; //MOSI (Master Output Slave Input)
const uint8_t CS_OLED = 12; //OLED ChipSelect
const uint8_t DC_OLED = 13; //OLED DC (Data/Command)
const uint8_t RST_OLED = 14; //OLED Reset RST
// 色の設定
#define BLACK 0x0000 // 黒
#define BLUE 0x001F // 青
#define RED 0xF800 // 赤
#define GREEN 0x07E0 // 緑
#define CYAN 0x07FF // シアン
#define MAGENTA 0xF81F // マゼンダ
#define WHITE 0xFFFF // 白
// ライブラリの設定
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>
Adafruit_SSD1331 afficheur = Adafruit_SSD1331(CS_OLED, DC_OLED, MOSI_OLED, SCLK_OLED, RST_OLED);
void setup() {
Serial.begin(115200); // シリアルモニタ開始
afficheur.begin(); // OLEDディスプレイの開始
// WiFi接続開始
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
Serial.print ( "." );
}
// 現在時間の取得
timeClient.begin();
timeClient.setTimeOffset(32400);
}
void loop() {
// 時間の表示
timeClient.update();
String jp_time = timeClient.getFormattedTime();
Serial.println(jp_time);
Serial.print("\n");
afficheur.setCursor(0,0); // cursor is in x=0 and y=0
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print("--------"); // テキスト表示
afficheur.fillScreen(BLACK); // バックグラウンド黒
afficheur.setCursor(0,16); // cursor is in x=0 and y=16
afficheur.setTextSize(2); // テキストサイズ
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print(jp_time); //テキスト表示
afficheur.setCursor(0,31); // cursor is in x=0 and y=31
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print("--------"); // テキスト表示
afficheur.setCursor(0,46); // cursor is in x=0 and y=46
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print(" "); // テキスト表示
delay(1000); // 1000 us(1秒)毎に更新
}
디스플레이에 굽는 것을 피하기 위해 디스플레이를 1초 간격으로 화면을 업데이트합니다.
4. 동영상
아래 이미지를 선택하면 동영상이 재생됩니다.
YouTube로 날아갑니다.
Reference
이 문제에 관하여(ESP32로 OLED 디스플레이에 시간 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m2y2/items/03456cce390d62fa781e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <WiFi.h> // WiFi接続
#include <WiFiUdp.h>
const char *ssid = "*******"; //WiFi接続ID ;
const char *password = "*******"; //WiFi接続パスワード ;
#include <NTPClient.h> //時間取得ライブラリ
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);
// OLEDピン定義
const uint8_t SCLK_OLED = 5; //SCLK (SPI Clock)
const uint8_t MOSI_OLED = 18; //MOSI (Master Output Slave Input)
const uint8_t CS_OLED = 12; //OLED ChipSelect
const uint8_t DC_OLED = 13; //OLED DC (Data/Command)
const uint8_t RST_OLED = 14; //OLED Reset RST
// 色の設定
#define BLACK 0x0000 // 黒
#define BLUE 0x001F // 青
#define RED 0xF800 // 赤
#define GREEN 0x07E0 // 緑
#define CYAN 0x07FF // シアン
#define MAGENTA 0xF81F // マゼンダ
#define WHITE 0xFFFF // 白
// ライブラリの設定
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>
Adafruit_SSD1331 afficheur = Adafruit_SSD1331(CS_OLED, DC_OLED, MOSI_OLED, SCLK_OLED, RST_OLED);
void setup() {
Serial.begin(115200); // シリアルモニタ開始
afficheur.begin(); // OLEDディスプレイの開始
// WiFi接続開始
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
Serial.print ( "." );
}
// 現在時間の取得
timeClient.begin();
timeClient.setTimeOffset(32400);
}
void loop() {
// 時間の表示
timeClient.update();
String jp_time = timeClient.getFormattedTime();
Serial.println(jp_time);
Serial.print("\n");
afficheur.setCursor(0,0); // cursor is in x=0 and y=0
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print("--------"); // テキスト表示
afficheur.fillScreen(BLACK); // バックグラウンド黒
afficheur.setCursor(0,16); // cursor is in x=0 and y=16
afficheur.setTextSize(2); // テキストサイズ
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print(jp_time); //テキスト表示
afficheur.setCursor(0,31); // cursor is in x=0 and y=31
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print("--------"); // テキスト表示
afficheur.setCursor(0,46); // cursor is in x=0 and y=46
afficheur.setTextColor(WHITE); // テキストカラー白
afficheur.print(" "); // テキスト表示
delay(1000); // 1000 us(1秒)毎に更新
}
아래 이미지를 선택하면 동영상이 재생됩니다.
YouTube로 날아갑니다.
Reference
이 문제에 관하여(ESP32로 OLED 디스플레이에 시간 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m2y2/items/03456cce390d62fa781e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)