加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • Arduino IDE 安装
    • 代码
    • LabVIEW 界面
    • 程序框图
    • 效果展示
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集

11/09 17:38
1170
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集

Arduino IDE 安装

Arduino IDE 安装如下库文件

DHT sensor library by Adafruit

DHT11 温湿度传感器 Data 引脚与 Arduino Nano 开发板的 D2 引脚连接

代码

#include <DHT.h>
 
#define Temperature_COMMAND  0x10   //采集命令字
#define Humidity_COMMAND     0x11   //采集命令字

#define DHTPIN 2 // DHT sensor data GPIO
#define DHTTYPE DHT11 // select one kind of sensors from DHT11, DHT22 and DHT21
DHT dht(DHTPIN, DHTTYPE);
 
byte comdata[3]={0};      //定义数组数据,存放串口接收数据
 
void receive_data(void);      //接受串口数据
void test_do_data(void);         //测试串口数据是否正确,并更新数据
 
void setup()
{
  Serial.begin(115200);      
  dht.begin();
}
void loop()
{
  while (Serial.available() > 0)   //不断检测串口是否有数据
   {
        receive_data();            //接受串口数据
        test_do_data();               //测试数据是否正确并更新标志位
   }
}
void receive_data(void)       
{
   int i ;
   for(i=0;i<3;i++)
   {
      comdata[i] =Serial.read();
      //延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
       delay(2);
   }
}
 
void test_do_data(void)
{
  if(comdata[0] == 0x55)            //0x55和0xAA均为判断是否为有效命令
   {
     if(comdata[1] == 0xAA)
     {
        switch (comdata[2])
        {
            case Temperature_COMMAND: 
            Serial.println((float)dht.readTemperature()); 
            break;
            case Humidity_COMMAND:  
            Serial.println((float)dht.readHumidity()); 
            break;
 
        }
      }
   }
} 

将代码下载进开发板,通过串口助手软件分别发送 HEX 格式数据 `55AA10` 和 `55AA11` 获取反馈的温湿度数据,测试通过后关闭串口并运行 LabVIEW 程序,即可获得温湿度变化曲线。

LabVIEW 界面

标签 1 记录了温湿度的变化曲线

标签 2 记录温湿度随时间的演化过程

程序框图

Part 1

Part 2

效果展示

工程文件见附件。

相关推荐

电子产业图谱