【Beetle ESP32-C3试用】温湿度显示
本帖最后由 hmilycheng 于 2022-6-22 13:13 编辑ESP32-C3尺寸非常小巧,只有25x20.5mm,非常适合用于制作智能穿戴设备。这里就用ESP32-C3制作一个便携的温湿度计。
1 所需材料
[*]ESP32-C3 1块
[*]DHT1 温湿度传感器 1块
[*]0.96" OLED屏 1块
2硬件连接
2.1 引脚定义
2.2 接线图
ESP32-C3 OLED
9/SCL -------------- SCL
8/SDA -------------- SDA
GND -------------- GND
VIN -------------- VCC
ESP32-C3 DHT11
2/A2 -------------- S
GND -------------- GND
3V3 -------------- VCC
3 程序
#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include "DHT.h"
#define DHTPIN A2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11
/*
---显示屏硬件I2C接口---
U8G2_R0 不旋转,横向,绘制方向从左到右
U8G2_R1 顺时针旋转90度,绘制方向从上到下
U8G2_R2 顺时针旋转180度,绘制方向从右到左
U8G2_R3 顺时针旋转270度,绘制方向从下到上
U8G2_MIRROR 正常显示镜像内容(v2.6.x版本以上使用) 注意:U8G2_MIRROR需要与setFlipMode()配搭使用.
U8x8_PIN_NONE 表示引脚为空,不会使用复位引脚
---显示屏硬件SPI接口---
cs 按引脚接上即可(引脚可自己选择)
dc 按引脚接上即可(引脚可自己选择)
*/
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(/* rotation=*/U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
int led = 10;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(led,OUTPUT);
u8g2.begin();
u8g2.setFontPosTop();//使用drawStr显示字符串时,默认标准为显示字符的左下角坐标。本函数的功能可理解为将坐标位置改为显示字符串的左上角为坐标标准。
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
delay(500);
//清理屏幕
u8g2.clearBuffer();
//显示温度
u8g2.setFont(u8g2_font_ncenB08_tr); // 选择字体以及大小
u8g2.drawStr(5,10,"Temp:");//在指定位置写出字符
u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(50, 10);//显示从该位置开始
u8g2.print(t);
u8g2.setFont(u8g2_font_ncenB08_tr); // 选择字体以及大小
u8g2.drawStr(90,10,"C");//在指定位置写出字符
//显示湿度
u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.drawStr(5,40,"Humi:");
u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.setCursor(50, 40);
u8g2.print(h);
u8g2.setFont(u8g2_font_ncenB08_tr); // 选择字体以及大小
u8g2.drawStr(90,40,"%RH");//在指定位置写出字符
u8g2.sendBuffer();
}
4 运行效果
5 附件
页:
[1]