本實作使用 WeMos LoLin32 開發板配合U8g2程式庫於OLED中顯示訊息。直接將 WeMos LoLin32 以 USB 線連接到開發電腦進行程式編譯上傳即可。使用Arduino IDE 編譯 ESP32 程式前請先確認已經正確選定開發板規格。
使用 BluetoothSerial 程式庫可以很方便的控制 ESP32 內的藍牙模組,詳細的程式庫資料請參考 這裡 。本實作利用藍牙通訊接收命令後在OLED中顯示兩種訊息 Power On、Power Off,關於如何在OLED中輸出字串請參考 這裡。
ESP32 與 OLED 接腳設定
1. 電源接線:
【ESP32】3.3V →【OLED】VCC
【ESP32】GND →【OLED】GND
2. 信號接線:
【ESP32】22→【ESP-01】SCL
【ESP32】21→【ESP-01】SDA
撰寫實驗程式如下:
#include <U8g2lib.h>//引入OLED程式庫 #include <BluetoothSerial.h> //引入藍牙程式庫 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); BluetoothSerial BT; //建立藍牙物件 char instr; //設定接收訊息的變數 void setup(void) { u8g2.begin(); //初始顯示器物件 u8g2.setFont(u8g2_font_t0_22b_te); //指定字型 BT.begin("ESP32藍牙"); //初始藍牙物件 } void loop(void) { if (BT.available()){ // 若接收到藍牙序列資料 instr = BT.read(); switch (instr){ case '1': // 若接收到指令'1' u8g2.clearBuffer(); //清除暫存區 u8g2.drawStr(10, 50, "Power On"); //設定繪製內容 u8g2.sendBuffer(); //送出繪製內容 BT.println("電源開啟!"); break; case '0': // 接收到指令'0' u8g2.clearBuffer(); //清除暫存區 u8g2.drawStr(10, 50, "Power Off"); //設定繪製內容 u8g2.sendBuffer(); //送出繪製內容 BT.println("電源關閉!"); break; } }
1.安裝程式
2.將手機藍牙與ESP32藍芽模組配對連線。
4.在終端機畫面中輸入控制指令0、1,即可讓ESP32控制的OLED顯示對應訊息 Power On、Power Off,而終端機畫面會輸出"電源開啟!"、"電源關閉!"的對應訊息。
沒有留言:
張貼留言