【5】esp8266控制oled输出

我这里用的是四角的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));
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值