打印
[IDE]

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

[复制链接]
1681|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集
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
效果展示



工程文件见附件。







温湿度采集.zip

38.86 KB

工程文件

使用特权

评论回复

相关帖子

沙发
qintian0303| | 2024-10-7 22:16 | 只看该作者
实际上是不是也是USB转串口的?通过接口进行数据解析

使用特权

评论回复
板凳
无垠的广袤|  楼主 | 2024-10-8 16:06 | 只看该作者
qintian0303 发表于 2024-10-7 22:16
实际上是不是也是USB转串口的?通过接口进行数据解析

板载CH340G串口通信芯片,用来实现开发板和电脑端口的数据交互

使用特权

评论回复
地板
丙丁先生| | 2024-12-2 06:50 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

30

帖子

0

粉丝