#include <Wire.h>
#include <Adafruit_GFX.h >
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN1_ADDR 0x3C // Địa chỉ I2C của OLED1
#define SCREEN2_ADDR 0x3D // Địa chỉ I2C của OLED2
// Khai báo đối tượng màn hình
Adafruit_SSD1306 display1(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Adafruit_SSD1306 display2(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(115200);
// Khởi động màn hình OLED1
if (!display1.begin(SSD1306_SWITCHCAPVCC, SCREEN1_ADDR)) {
Serial.println(F("Không thể khởi động OLED1"));
for (;;);
}
display1.clearDisplay();
display1.setTextSize(1);
display1.setTextColor(SSD1306_WHITE);
display1.setCursor(0, 0);
display1.print("Màn hình OLED1");
display1.display();
// Khởi động màn hình OLED2
if (!display2.begin(SSD1306_SWITCHCAPVCC, SCREEN2_ADDR)) {
Serial.println(F("Không thể khởi động OLED2"));
for (;;);
}
display2.clearDisplay();
display2.setTextSize(1);
display2.setTextColor(SSD1306_WHITE);
display2.setCursor(0, 0);
display2.print("Màn hình OLED2");
display2.display();
}
void loop() {
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
int mh1Index = input.indexOf("MH1:");
int mh2Index = input.indexOf("MH2:");
if (mh1Index != -1) {
// Nếu "MH1:" được tìm thấy
String message = input.substring(mh1Index + 4);
display1.clearDisplay();
display1.setCursor(0, 0);
display1.print("");
display1.print(message);
display1.display();
}
if (mh2Index != -1) {
// Nếu "MH2:" được tìm thấy
String message = input.substring(mh2Index + 4);
display2.clearDisplay();
display2.setCursor(0, 0);
display2.print("");
display2.print(message);
display2.display();
}
}
}