ESP8266-07
0.93存 液晶屏 128*64 驱动芯片 ssd1306
接线
VCC-5v
GND-GND
SCL-D1(SCL)
SDA-D2(SDA)
安装两个库
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
串口输入一句话
液晶屏幕显示出来
#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) #define OLED_RESET -1 //4 Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); #define NUMFLAKES 10 // Number of snowflakes in the animation example #define LOGO_HEIGHT 16 #define LOGO_WIDTH 16 String comdata = ""; void oledint(){ // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64 Serial.println("SSD1306 allocation failed"); for(;;); // Don't proceed, loop forever } Serial.println("success"); // Show initial display buffer contents on the screen -- // the library initializes this with an Adafruit splash screen. display.display(); delay(2000); // Pause for 2 seconds // Clear the buffer display.clearDisplay(); // Draw a single pixel in white display.drawPixel(10, 10, WHITE); // Show the display buffer on the screen. You MUST call display() after // drawing commands to make them visible on screen! display.display(); delay(2000); // Invert and restore display, pausing in-between display.invertDisplay(true); delay(1000); display.invertDisplay(false); delay(1000); } void setup() { Serial.begin(9600); while(Serial.read()>= 0){} //clear serialbuffer oledint(); } void loop() { if(Serial.available()>0){ delay(100); comdata = Serial.readString(); // Serial.print("Serial.readString:"); // Serial.println(comdata); testdrawstyles(comdata); } comdata = ""; } String getValue(String data, char separator, int index) { int found = 0; int strIndex[] = {0, -1}; int maxIndex = data.length()-1; for(int i=0; i<=maxIndex && found<=index; i++){ if(data.charAt(i)==separator || i==maxIndex){ found++; strIndex[0] = strIndex[1]+1; strIndex[1] = (i == maxIndex) ? i+1 : i; } } return found>index ? data.substring(strIndex[0], strIndex[1]) : ""; } // x;31.112;y;31.123;z;23.3213;AP1;-23;AP2;-26;AP3;-21 void testdrawstyles(String msg) { display.clearDisplay(); display.setTextSize(1); // Normal 1:1 pixel scale display.setTextColor(WHITE); // Draw white text display.setCursor(0,0); // Start at top-left corner //display.println(msg); display.println( "*-------------------*"); String part01 = getValue(msg,';',1); display.print(F(" X : ")); display.println(part01); String part02 = getValue(msg,';',3); display.print(F(" Y : ")); display.println(part02); String part03 = getValue(msg,';',5); display.print(F(" Z : ")); display.println(part03); display.println( " ------------------- "); String part04 = getValue(msg,';',7); display.print(F("AP1: ")); display.println(part04); String part05 = getValue(msg,';',9); display.print(F("AP2: ")); display.println(part05); String part06 = getValue(msg,';',11); display.print(F("AP3: ")); display.println(part06); display.display(); delay(2000); }