我这里用的是四角的oled,通过串口收发消息并传递给oled输出
/*************************************************************
ESP8266 with 0.96inch OLED 引脚
VCC <---> VCC
GND <---> GND
SDA <---> SDA(2) D4
SCL <---> SCL(14) D5
*************************************************************/
/*仅仅针对四个引脚和oled屏显示*/
//针对串口显示oled屏幕
#include <ArduinoJson.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <Ticker.h>
boolean flag = true;
// JSON
DynamicJsonBuffer jsonBuffer(256); // ArduinoJson V5
// 显示屏 如果引脚不同需要在这里修改
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ 14, /* data=*/ 2);
void setup()
{
// OLED 初始化
u8g2.begin();
u8g2.enableUTF8Print();
u8g2.clearDisplay();
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setCursor(45, 19);
u8g2.print("Powered by");
u8g2.setCursor(45, 31);
u8g2.print("@夏友");
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setCursor(10, 50);
u8g2.print("www.夏友-blog.cn");
u8g2.sendBuffer();
delay(5000); //初始化延时5秒钟之后准备显示第二组画面
u8g2.setFont(u8g2_font_wqy12_t_gb2312b);
//u8g2.setFontPosTop();
Serial.begin(115200);
}
void loop()
{
String data_led=Read_Tcp();
while(flag)
{
Serial.print("data_led is:");
Serial.println(data_led);
// display data
Serial.println("count = 0, display data");
u8g2.firstPage();
do
{
display(follower, likes, data_led);
} while (u8g2.nextPage());flag=false;
}
}
//读取服务器信息,返回String类型
String Read_Tcp(){
String data = "";
while(Serial.available()>0)
{
char inchar = Serial.read(); //
//char data=(Serial.read());
data += char(inchar);
delay(10);
flag=true; //修改
}
return data;
}
/*
//读取服务器信息,返回String类型
String Read_Tcp(){
String data = "100";
while(Serial.available()>0)
{
char inchar = Serial.read(); //
//char data=(Serial.read());
data += char(inchar);
delay(10);
flag=true; //修改
}
return data;
}
*/
// OLED 显示数据
void display(String ch)
{
Serial.println("ok");
u8g2.clearDisplay();
u8g2.setCursor(5, 52);
u8g2.print("串口数据:" + String(ch));
}
739

被折叠的 条评论
为什么被折叠?



