0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >技术信息 > lua编程入门教程,用NodeMCU在OLED上显示温湿度

lua编程入门教程,用NodeMCU在OLED上显示温湿度

来源: 中电网
2020-11-10
类别:技术信息
eye 47
文章创建人 拍明

原标题:LEDlua编程入门教程,用NodeMCU在OLED上显示温湿度

硬件准备

  1. NodeMCU 开发板(基于 ESP8266)

  2. DHT11 或 DHT22 温湿度传感器

  3. 0.96 英寸 I2C OLED 显示屏(通常基于 SSD1306 驱动芯片)

  4. 面包板和杜邦线


软件准备

  1. Arduino IDE(用于编写和上传代码)

  2. NodeMCU 开发板驱动(确保电脑能识别 NodeMCU)

  3. 安装必要的库:

    • Adafruit_SSD1306(OLED 驱动库)

    • Adafruit_GFX(图形库)

    • DHT(DHT 传感器库)


接线说明

DHT 传感器接线

DHT 引脚 | NodeMCU 引脚
VCC | 3V3
GND | GND
DATA | D4 (GPIO2)

OLED 显示屏接线

OLED 引脚 | NodeMCU 引脚
VCC | 3V3
GND | GND
SCL | D1 (GPIO5)
SDA | D2 (GPIO4)


代码实现

以下是 Arduino C++ 代码,适用于 NodeMCU:

#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <DHT.h> // OLED 显示屏参数 #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET -1  // NodeMCU 没有硬件复位引脚,设为 -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // DHT 传感器参数 #define DHTPIN D4       // DHT 数据引脚连接到 NodeMCU 的 D4 #define DHTTYPE DHT11   // 使用 DHT11 传感器(如果使用 DHT22,请改为 DHT22) DHT dht(DHTPIN, DHTTYPE); void setup() {  // 初始化串口监视器  Serial.begin(115200);  Serial.println("DHT11/DHT22 + OLED 显示示例");  // 初始化 DHT 传感器  dht.begin();  // 初始化 OLED 显示屏  if (!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) { // 默认 I2C 地址为 0x3C    Serial.println(F("OLED 初始化失败"));    for (;;);  }  display.clearDisplay();  display.setTextSize(1);  display.setTextColor(SSD1306_WHITE);  display.setCursor(0, 0);  display.println("Initializing...");  display.display();  delay(2000); } void loop() {  // 读取温湿度数据  float humidity = dht.readHumidity();  float temperature = dht.readTemperature();  // 检查是否读取失败  if (isnan(humidity) || isnan(temperature)) {    Serial.println("Failed to read from DHT sensor!");    display.clearDisplay();    display.setCursor(0, 0);    display.println("DHT Sensor Error!");    display.display();    return;  }  // 打印到串口监视器  Serial.print("Humidity: ");  Serial.print(humidity);  Serial.print(" % ");  Serial.print("Temperature: ");  Serial.print(temperature);  Serial.println(" *C");  // 在 OLED 上显示  display.clearDisplay();  display.setCursor(0, 0);  display.setTextSize(1);  display.println("DHT11/DHT22 Sensor");  display.setTextSize(2);  display.setCursor(0, 20);  display.print("T: ");  display.print(temperature);  display.print(" C");  display.setCursor(0, 40);  display.print("H: ");  display.print(humidity);  display.print(" %");  display.display();  // 延迟 2 秒  delay(2000); }


QQ_1744792246129.png


代码说明

  1. 库的作用:

    • Adafruit_SSD1306 和 Adafruit_GFX:用于驱动 OLED 显示屏。

    • DHT:用于读取 DHT 传感器的温湿度数据。

  2. 初始化:

    • 初始化串口监视器、DHT 传感器和 OLED 显示屏。

  3. 数据读取:

    • 使用 dht.readHumidity() 和 dht.readTemperature() 读取温湿度数据。

    • 检查数据是否有效(避免读取失败导致程序崩溃)。

  4. 数据显示:

    • 在 OLED 显示屏上显示温湿度数据,使用 display.setCursor() 设置显示位置,display.print() 打印文本。


上传代码

  1. 打开 Arduino IDE,选择 工具 -> 开发板 -> NodeMCU 1.0 (ESP-12E Module)。

  2. 选择正确的端口(工具 -> 端口)。

  3. 点击“上传”按钮,将代码上传到 NodeMCU。


运行效果

  1. 打开串口监视器(波特率 115200),可以看到温湿度数据不断打印。

  2. OLED 显示屏上会实时显示当前的温度和湿度。


注意事项

  1. 电源问题:

    • NodeMCU 和 OLED 显示屏的工作电压均为 3.3V,不要直接连接 5V 电源。

  2. I2C 地址:

    • 如果 OLED 显示屏不显示,尝试修改 display.begin(SSD1306_I2C_ADDRESS, 0x3C) 中的地址为 0x3D。

  3. 传感器选择:

    • DHT11 精度较低,但价格便宜;DHT22 精度更高,适合需要高精度的场景。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

资讯推荐
云母电容公司_云母电容生产厂商

云母电容公司_云母电容生产厂商

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告