300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 常用传感器-温湿度传感器SHT30

常用传感器-温湿度传感器SHT30

时间:2020-07-17 01:08:14

相关推荐

常用传感器-温湿度传感器SHT30

SHT30温湿度传感器

基本信息

工作电压:2.4V-5.5V

通讯协议:IIC

湿度测量范围:0-100

温度测量范围:-40°-125°

引脚

VIN:电源正极GND:电源负极SCL:数据线SDA:数据线

操作

1.加载库文件:ClosedCube_SHT31D

选择库文件:ClosedCube_SHT31D

2.连接esp mini d1和温湿度传感器

VIN和GND分别取主板5V电压SCL和SDA分别接主板D3和D4引脚

3.刷入主板代码

//包含读取传感器数据的代码,引脚、地址等配置均在该文件#include "sht30.h"void setup() {Serial.begin(115200);//sht30的开机配置函数sht30_setup();}void loop() {//sht30的循环读取函数,内设读取间隔可自行在 sht30.h 文件中设置sht30();}

//********sht30 温湿度传感器***************#include <Wire.h>#include "ClosedCube_SHT31D.h"ClosedCube_SHT31D sht3xd;// 配置引脚const int SHT_SCL = D4; const int SHT_SDA = D3;const int SHT_ADDRESS = 0x44;//配置读取频率struct SHT_DATA{int8_t temperature = -99;int8_t humidity = -99;unsigned long sht30_last = 0;const long sht30_interval = 1000; //每秒读取一次} sht_data;//开机函数void sht30_setup() {//定义I2C通讯的引脚Wire.begin(SHT_SDA, SHT_SCL);//准备读取sht3x传感器sht3xd.begin(SHT_ADDRESS);if (sht3xd.periodicStart(SHT3XD_REPEATABILITY_HIGH, SHT3XD_FREQUENCY_10HZ) != SHT3XD_NO_ERROR){Serial.println("[ERROR] 读取sht30数据失败,可能是传感器没插好");}}//保存结果到指定的数据结构,如果传感器断开,则尝试重载void saveResult(SHT31D result) {if (result.error == SHT3XD_NO_ERROR) {sht_data.temperature = result.t;sht_data.humidity = result.rh;} else { sht_data.temperature = -99;sht_data.humidity = -99;sht30_setup();}}//循环体函数,放在loop中void sht30() {unsigned long currentMillis = millis();if (currentMillis - sht_data.sht30_last >= sht_data.sht30_interval) {sht_data.sht30_last = currentMillis;saveResult(sht3xd.periodicFetchData());Serial.print("T:");Serial.print(sht_data.temperature);Serial.print(" H:");Serial.println(sht_data.humidity);}}

4.串口监视器输出数据

常用传感器-温湿度传感器SHT30

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。