用ESP8266连接 0.96寸 OLED屏幕

用ESP8266连接 0.96寸 OLED屏幕,第1张

0.96寸 OLED屏幕

标签(空格分隔): ESP8266


网络代码

#include 
#include 
#include 

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);  


//读取串口接收信息,返回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 = "";          
  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,String ch1)
{
  
  Serial.println("ok");
  u8g2.clearDisplay();
  u8g2.setCursor(5, 19);
  u8g2.print(String(ch));
  u8g2.setCursor(5, 52);
  u8g2.print(String(ch1));
  
}

void oled0(){
  
  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("@ljy");
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setCursor(10, 50);
  u8g2.print("www.sangsang.xyz");
  u8g2.sendBuffer();
  delay(5000);   //初始化延时5秒钟之后准备显示第二组画面
  
  }

void setup()
{
  // OLED 初始化
  oled0();
    
  u8g2.setFont(u8g2_font_wqy12_t_gb2312b);
  //u8g2.setFontPosTop();
    
  Serial.begin(115200);
}

void loop()
{
   String data_led=Read_Tcp();  
   String data_0 = "奥利给!";  
   while(flag)
   {    
    Serial.print("data_led is:");
    Serial.println(data_led);
    // display data
    Serial.println("count = 0, display data");
    u8g2.firstPage();
    do
    {
      display(data_led,data_0);
    } while (u8g2.nextPage());
    flag=false;
   }

}
#include 
#include 
#include 
#include 

boolean flag = true;

//温湿度传感器引脚
int pinDHT11 = 14; 
SimpleDHT11 dht11(pinDHT11);
byte temperature = 0;
byte humidity = 0;


// 显示屏  如果引脚不同需要在这里修改
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ 0, /* data=*/ 2);  



//读取串口接收信息,返回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;
}



// OLED 显示数据
void display(String ch,String ch1)
{
  
  Serial.println("ok");
  u8g2.clearDisplay();
  u8g2.setCursor(5, 19);
  u8g2.print(String(ch));
  u8g2.setCursor(5, 52);
  u8g2.print(String(ch1));
  
}

void oled0(){
  
  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("@ljy");
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setCursor(10, 50);
  u8g2.print("www.sangsang.xyz");
  u8g2.sendBuffer();
  delay(5000);   //初始化延时5秒钟之后准备显示第二组画面
  
  }


void dht(){
  
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(500);
    return;
  }
  flag=true;  //修改 
 }


void setup()
{
  // OLED 初始化
  oled0();
    
  u8g2.setFont(u8g2_font_wqy12_t_gb2312b);
  //u8g2.setFontPosTop();
    
  Serial.begin(115200);
}

void loop()
{

  dht();
  
  String c = (String)temperature;
  String h = (String)humidity;
  Serial.print(c); Serial.print(" *C,");
  Serial.print(h);Serial.println(" H");
  
  
   //String data_led=Read_Tcp();  
   //String data_0 = "奥利给!";  
   while(flag)
   {    
    //Serial.print("data_led is:");
    //Serial.println(data_led);
    // display data
    //Serial.println("count = 0, display data");
    u8g2.firstPage();
    do
    {
      display(c,h);
    } while (u8g2.nextPage());
    flag=false;
   }

    
}
温湿度传感显示
#include 
#include 
#include 
#include 

boolean flag = true;

//温湿度传感器引脚
int pinDHT11 = 14; 
SimpleDHT11 dht11(pinDHT11);
byte temperature = 0;
byte humidity = 0;


// 显示屏  如果引脚不同需要在这里修改
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ 0, /* data=*/ 2);  

// OLED 显示数据
void display(String ch,String ch1)
{
  
  Serial.println("ok");
  u8g2.clearDisplay();

  u8g2.setCursor(5, 19);
  u8g2.print(String("温度:"));
  u8g2.setCursor(52, 19);
  u8g2.print(String(ch));
  u8g2.setCursor(78, 19);
  u8g2.print(String("*C"));
  
  u8g2.setCursor(5, 52);
  u8g2.print(String("湿度:"));
  u8g2.setCursor(52, 52);
  u8g2.print(String(ch1));
  u8g2.setCursor(78, 52);
  u8g2.print(String("H"));
  
}

void oled0(){
  
  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("@ljy");
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setCursor(10, 50);
  u8g2.print("www.sangsang.xyz");
  u8g2.sendBuffer();
  delay(5000);   //初始化延时5秒钟之后准备显示第二组画面
  
  }


void dht(){
  
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(500);
    return;
  }
  flag=true;  //修改 
 }


void setup()
{
  // OLED 初始化
  oled0();
    
  u8g2.setFont(u8g2_font_wqy12_t_gb2312b);
  //u8g2.setFontPosTop();
    
  Serial.begin(115200);
}

void loop()
{

  dht();
  
  String c = (String)temperature;
  String h = (String)humidity;
  Serial.print(c); Serial.print(" *C,");
  Serial.print(h);Serial.println(" H");
  
  
   
   while(flag)
   {    
    
    u8g2.firstPage();
    do
    {
      display(c,h);
    } while (u8g2.nextPage());
    flag=false;
   }

    
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/732224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存