1746浏览
查看: 1746|回复: 0

[ESP8266/ESP32] FireBeetle 2 ESP32-S3 测试2--连接透明显示屏、温湿度传感器

[复制链接]
本帖最后由 Anders项勇 于 2023-9-7 00:03 编辑

本文继续测试FireBeetle 2 ESP32-S3,连接一个DHT20温湿度传感器,用1.51”透明单色OLED显示屏显示数据
1.连接DHT20温湿度传感器:
DHT20温湿度传感器是DHT11的全新升级版,在测量精度、供电电压、测量范围、响应时间、稳定性等方面的性能参数相交DHT11都有大幅提升。I2C 接口,正好接FireBeetle 2 ESP32-S3的板载I2C 接口。
FireBeetle 2 ESP32-S3 测试2--连接透明显示屏、温湿度传感器图2
Arduino库里面搜索DFRobot_DHT20库安装

2.连接1.51”透明单色OLED显示屏:
这是一块带转接板的1.51”透明单色屏幕,分辨率为128x64(完全透明的区域分辨率为128*56,在靠近排线侧有一小块区域不能完全透明,但可显示),显示颜色为蓝色,全视角显示。尺寸小巧的转接板提供了GDI接口和SPI排针两种接线方式。刚好连接FireBeetle 2 ESP32-S3的GDI接口。安装U8g2_Arduino库文件。
3.arduino代码:


#include <Arduino.h>
#include <U8g2lib.h>
#include <DFRobot_DHT20.h>
#include <SPI.h>


/*
* Display hardware IIC interface constructor
*@param rotation:U8G2_R0 Not rotate, horizontally, draw direction from left to right
           U8G2_R1 Rotate clockwise 90 degrees, drawing direction from top to bottom
           U8G2_R2 Rotate 180 degrees clockwise, drawing in right-to-left directions
           U8G2_R3 Rotate clockwise 270 degrees, drawing direction from bottom to top
           U8G2_MIRROR Normal display of mirror content (v2.6.x version used above)
           Note: U8G2_MIRROR need to be used with setFlipMode().
*@param reset:U8x8_PIN_NONE Indicates that the pin is empty and no reset pin is used
* Display hardware SPI interface constructor
*@param  Just connect the CS pin (pins are optional)
*@param  Just connect the DC pin (pins are optional)
*
*/
#if defined ARDUINO_SAM_ZERO
#define OLED_DC  7
#define OLED_CS  5
#define OLED_RST 6
/*ESP32 */
#elif defined(ESP32)
#define OLED_DC  D2
#define OLED_CS  D6
#define OLED_RST D3
/*ESP8266*/
#elif defined(ESP8266)
#define OLED_DC  D4
#define OLED_CS  D6
#define OLED_RST D5
/*AVR series board*/
#else
#define OLED_DC  2
#define OLED_CS  3
#define OLED_RST 4
#endif
U8G2_SSD1309_128X64_NONAME2_1_4W_HW_SPI u8g2(/* rotation=*/U8G2_R0, /* cs=*/ OLED_CS, /* dc=*/ OLED_DC,/* reset=*/OLED_RST);

DFRobot_DHT20 dht20;

void setup(void) {
  u8g2.begin();    //init
  u8g2.enableUTF8Print();        // Enable UTF8 support for Arduino print()function.
  Serial.begin(115200);
  //传感器初始化
  while(dht20.begin()){
    Serial.println("传感器初始化失败");
    delay(1000);
  }
}

void loop(void)
{
   //获取环境温度
  Serial.print("temperature:"); Serial.print(dht20.getTemperature());Serial.print("C");
  //获取相对湿度
  Serial.print("  humidity:"); Serial.print(dht20.getHumidity()*100);Serial.println(" %RH");
  /*@brief Set font direction  of all strings setFontDirection(uint8_t dir)
   *@param dir=0,rotate 0 degree
                 dir=1,rotate 90 degrees
                 dir=2,rotate 180 degrees
                 dir=3,rotate 270 degrees
   *@param When completed font setting, re-set the cursor position to display normally. Refer to API description for more details.
  */
  u8g2.setFontDirection(0);
  /*
   * firstPage Change the current page number position to 0
   * Revise content in firstPage and nextPage, re-render everything every time
   * This method consumes less ram space than sendBuffer
  */
  u8g2.firstPage();
  do {
    /*
     *The font takes up a lot of memory, so please use it with caution. Get your own Chinese encode for displaying only several fixed words.
     *Display by drawXBM or use controller with larger memory
     *Chinese Font:require a controller with larger memory than Leonardo  
     *Japanese Font:require a controller with larger memory than UNO
     *Korean Font:Arduino INO files of the current version do not support for displaying Korean, but it can displayed properly on the Screen
    */
    u8g2.setFont(u8g2_font_unifont_t_chinese2);
    u8g2.setCursor(0, 15);  
    u8g2.print("温度");
    u8g2.setFont(u8g2_font_unifont_t_chinese2);
    u8g2.setCursor(0, 30);
    u8g2.print(dht20.getTemperature());   
    u8g2.setFont(u8g2_font_unifont_t_chinese2);
    u8g2.setCursor(0, 45);
    u8g2.print("湿度");
    u8g2.setFont(u8g2_font_unifont_t_chinese2);
    u8g2.setCursor(0, 60);
    u8g2.print(dht20.getHumidity()*100);
  } while ( u8g2.nextPage() );
  delay(1000);
}
4.显示:
FireBeetle 2 ESP32-S3 测试2--连接透明显示屏、温湿度传感器图1
可以看到温湿度读取出来了,但中文只显示了一个字,不知道哪里设置的有问题,后面再研究下。这个透明屏幕加上摄像头再利用
FireBeetle 2 ESP32-S3运行ai,应该可以实现在屏幕显示实景和实景框加文字的ai效果,后面有时间再测试下。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail