用ESP8266连接 0.96寸 OLED屏幕

0.96寸 OLED屏幕

标签(空格分隔): ESP8266


网络代码


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


//读取串口接收信息,返回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 <SimpleDHT.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <Ticker.h>

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 <SimpleDHT.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <Ticker.h>

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

    
}
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值