本帖最后由 qifeng0611 于 2025-3-25 12:59 编辑
NSHT30 温湿度传感器通信的示例代码, Arduino,通过连接 SCL 和 SDA 引脚与 NSHT30 传感器进行通信。
需要的库:
首先,确保你安装了适合 Arduino 的 Wire 库,用于 I2C 通信。你还需要安装 Adafruit_Sensor 和 Adafruit_NSHT30 库,或者根据你使用的库与平台,选择适当的驱动程序。
#include <Wire.h>#include <Adafruit_Sensor.h>
#include <Adafruit_NSHT30.h>// 创建一个 NSHT30 对象Adafruit_NSHT30 sht30 = Adafruit_NSHT30();void setup() { // 启动串口通讯
Serial.begin(9600); // 启动 I2C 通讯
Wire.begin(); // 检查传感器是否正确连接
if (!sht30.begin())
{ Serial.println("未能找到 NSHT30 传感器。");
while (1); // 停止程序,无法继续执行 }
Serial.println("NSHT30 传感器初始化成功。");}
void loop()
{ // 获取温度和湿度数据
float temperature = sht30.getTemperature();
float humidity = sht30.getHumidity(); // 输出温度和湿度数据到串口监视器
Serial.print("温度: ");
Serial.print(temperature);
Serial.print(" °C, 湿度: ");
Serial.print(humidity);
Serial.println(" %");
delay(2000); // 每2秒读取一次数据}代码解析:
库文件引入:Wire.h 是 Arduino 内置的 I2C 通讯库。Adafruit_Sensor.h 和 Adafruit_NSHT30.h 用于与 NSHT30 传感器进行交互。
初始化:
在 setup() 中,我们初始化了串口通信和 I2C 通信,并检查传感器是否正常工作。
sht30.begin() 方法用于初始化传感器,如果无法找到传感器,将会打印错误信息并停在当前位置。
读取数据:
在 loop() 中,使用 getTemperature() 和 getHumidity() 方法读取温度和湿度值。
通过 Serial.print() 打印温湿度数据到串口监视器。
delay(2000) 控制每 2 秒钟读取一次数据。
注意事项:
确保 NSHT30 的 SCL 和 SDA 引脚正确连接到 Arduino 的 I2C 引脚(一般是 A5 和 A4,具体根据你的硬件平台调整)。
如果使用的是其他开发平台(如 ESP32、Raspberry Pi 等),确保已安装适当的驱动库和调整引脚配置。
|