本帖最后由 hanreng 于 2021-7-1 13:42 编辑
基于Arduino使用GY-21-HTU21水分传感器模块
产品介绍
HTU21温度和湿度传感器潜入了适于回流焊的双列扁平无引脚DFN封装,底面3*3mm,高度1.1mm。传感器输出经过标定的数字信号,标准12C格式。 HTU21温度和湿度传感器为OEM应该提供一个准确可靠的温湿度测量数据,通过一个微控制器的接口和模块连接达到温度和湿度数字输出。HTU21的分辨率可以通过命令进行改变(8/12bit乃至12/14bit的RH/T),传感器可以检测到电池电量状态,并且输出校验和,有助于提高通信的可靠性。
(GY-21-HTU21水分传感器模块)
产品参数
(在T=25℃,Vdd=3.3V下)
接线方式
(GY-21-GTU21水分传感器模块 正面)
GY-21-GTU21水分传感器模块 <------> Arduino Nano SDA <------> A4 SCL <------> A5 GND <------> GND VIN <------> 3.3V
程序测试——读取HTU21水分传感器检测到的温湿度值
编写打印串口程序,通过HTU21水分传感器检测当前温度和湿度。
Mixly图形化编程程序
(串口打印程序)
串口监视器显示,微型人体红外感应模块检测到有人,输出高电平,即串口打印数值1。没有人时,输出低电平,串口打印数值0。
(串口监视器显示)
程序实现代码
- #include <SoftwareWire.h>
- #include "Adafruit_HTU21DF_Soft.h"
- SoftwareWire Wire_2_3(2, 3);
- Adafruit_HTU21DF_Soft HTU = Adafruit_HTU21DF_Soft();
- void setup(){
- Serial.begin(9600);
- while (!(HTU.begin(&Wire_2_3))) {
- Serial.println("没有搜索到HTU21D");
- delay(500);
- }
- }
- void loop(){
- Serial.println(String(String("湿度:") + String(HTU.readTemperature())) + String(String("湿度:") + String(HTU.readHumidity())));
- }
复制代码
HTU21水分传感器基础小案例
OLED液晶显示屏上分别显示实时的温度和湿度
(OLED液晶显示屏)
接线方式
GY-21-GTU21水分传感器模块 <------> Arduino Nano SDA <------> A4 SCL <------> A5 GND <------> GND VIN <------> 3.3V
OLED显示屏 <------> Arduino Nano GND <------> GND VCC <------> 5V SCL <------> D13 SDA <------> D11 RES <------> D8 DC <------> D9 CS <------> D10
Mixly 图形化编程程序 (图形化程序)
程序实现代码
- #include <SoftwareWire.h>
- #include "Adafruit_HTU21DF_Soft.h"
- #include <U8g2lib.h>
- #include <SPI.h>
- SoftwareWire Wire_2_3(2, 3);
- Adafruit_HTU21DF_Soft HTU = Adafruit_HTU21DF_Soft();
- U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, 10, 9, 8);
- void page1() {
- u8g2.setFont(u8g2_font_timR10_tf);
- u8g2.setFontPosTop();
- u8g2.setCursor(0,10);
- u8g2.print(String(String("umidity:") + String(HTU.readHumidity())) + String("%rh"));
- u8g2.setCursor(0,40);
- u8g2.print(String(String("temperature:") + String(HTU.readTemperature())) + String("℃"));
- }
- void setup(){
- Serial.begin(9600);
- while (!(HTU.begin(&Wire_2_3))) {
- Serial.println("没有搜索到HTU21D");
- delay(500);
- }
- u8g2.begin();
- u8g2.enableUTF8Print();
- }
- void loop(){
- u8g2.firstPage();
- do
- {
- page1();
- }while(u8g2.nextPage());
- }
复制代码
|