Created
July 13, 2026 05:53
-
-
Save moomdate/d37b7a83c2f621242ce66788428e0598 to your computer and use it in GitHub Desktop.
example oled
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| ESP32 + OLED 1.3" (SH1106) I2C Example | |
| ---------------------------------------- | |
| Wiring: | |
| SDA → GPIO 21 | |
| SCL → GPIO 22 | |
| VCC → 3.3V | |
| GND → GND | |
| Library ที่ต้องลง (Arduino Library Manager): | |
| - "U8g2" by olikraus | |
| */ | |
| #include <Wire.h> | |
| #include <U8g2lib.h> | |
| // SH1106 128x64 I2C — ใช้ HW I2C (SDA=21, SCL=22 เป็น default ของ ESP32) | |
| U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); | |
| void setup() { | |
| Serial.begin(115200); | |
| u8g2.begin(); | |
| Serial.println("OLED 1.3\" SH1106 Ready!"); | |
| } | |
| void loop() { | |
| // === หน้า 1: ข้อความต้อนรับ === | |
| u8g2.clearBuffer(); | |
| // หัวข้อ | |
| u8g2.setFont(u8g2_font_ncenB14_tr); // ฟอนต์ใหญ่ | |
| u8g2.drawStr(10, 20, "ESP32"); | |
| // ข้อความรอง | |
| u8g2.setFont(u8g2_font_ncenB10_tr); // ฟอนต์กลาง | |
| u8g2.drawStr(10, 40, "OLED 1.3\""); | |
| // ข้อความเล็ก | |
| u8g2.setFont(u8g2_font_6x10_tr); // ฟอนต์เล็ก | |
| u8g2.drawStr(10, 58, "SH1106 128x64 I2C"); | |
| u8g2.sendBuffer(); | |
| delay(3000); | |
| // === หน้า 2: วาดรูปทรง === | |
| u8g2.clearBuffer(); | |
| u8g2.setFont(u8g2_font_6x10_tr); | |
| u8g2.drawStr(0, 10, "Shapes Demo"); | |
| // สี่เหลี่ยม | |
| u8g2.drawFrame(10, 18, 30, 20); // กรอบ | |
| u8g2.drawBox(50, 18, 30, 20); // ทึบ | |
| // วงกลม | |
| u8g2.drawCircle(110, 28, 10); // กรอบ | |
| u8g2.drawDisc(110, 50, 8); // ทึบ | |
| // เส้น | |
| u8g2.drawLine(10, 50, 80, 60); | |
| u8g2.sendBuffer(); | |
| delay(3000); | |
| // === หน้า 3: ค่า sensor จำลอง === | |
| u8g2.clearBuffer(); | |
| u8g2.setFont(u8g2_font_6x10_tr); | |
| u8g2.drawStr(0, 10, "Sensor Data"); | |
| u8g2.drawHLine(0, 12, 128); | |
| // จำลองค่า | |
| float temp = 28.5 + random(-10, 10) / 10.0; | |
| float humi = 65.0 + random(-50, 50) / 10.0; | |
| unsigned long uptime = millis() / 1000; | |
| char buf[32]; | |
| snprintf(buf, sizeof(buf), "Temp: %.1f C", temp); | |
| u8g2.drawStr(0, 28, buf); | |
| snprintf(buf, sizeof(buf), "Humi: %.1f %%", humi); | |
| u8g2.drawStr(0, 42, buf); | |
| snprintf(buf, sizeof(buf), "Uptime: %lus", uptime); | |
| u8g2.drawStr(0, 56, buf); | |
| u8g2.sendBuffer(); | |
| delay(3000); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment