查看: 1996|回复: 5

LabVIEW监控温度传感器

[复制链接]
  • TA的每日心情
    郁闷
    2020-7-18 14:58
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2019-4-30 22:10 | 显示全部楼层 |阅读模式
    本帖最后由 Alan_Green 于 2019-4-30 22:29 编辑

       这里涉及 dht11 数字温度湿度传感器模块、TM1637数码显示模块、LabVIEW。
       功能:定时采集温度,把温度显示在数码管上,并通过串口发送给LABVIEW,记录成EXCEL表格。

       这是几个月前整的东西吧,当时刚买到R3的板子和模块,在贴吧里找的库和代码,东拼西凑改过来的,(记得改过显示模块的库文件,增加了数组。。。。只是为了使用方便)这两个模块的库很好找。这里主要是把LabVIEW连接起来了,其实LabVIEW也是用自带的串口通信例程改过来,自己在循环里添加了程序,把串口收到的数据处理成表格保存。


    [mw_shl_code=arduino,true]

    //********显示温度到数码管,温湿度数据发labview********//

    //****温湿度传感器库****//
    #include <dht11.h>
    #define DHT11PIN 4
      dht11 DHT11;

    //****数码管库*******//
    #include "TM1637.h"
    #define CLK 3//pins definitions for TM1637 and can be changed to other ports      
    #define DIO 2
      TM1637 tm1637(CLK,DIO);
      int8_t ListDisp[4] = {1,2,3,12};   //数码管要显示的内容写入数组

    //***其他全局变量****//
    volatile byte seconds,okstage;     //定时中断内部变量,使用带volatile修饰防止在其他线程被更改值。
    #define LED 13
    int ledstage = LOW;

    void setup()
    {
      //***初始化数码管模块***//
      tm1637.init();
      tm1637.set(0);        //BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
      
      pinMode(LED,OUTPUT);
      Serial.begin(9600);

    //**初始化定时1****//
    cli();      // disable global interrupts
    TCCR1A = 0; // set entire TCCR1A register to 0
    TCCR1B = 0; // same for TCCR1B

    OCR1A = 15624;              // set compare match register to desired timer count:
    TCCR1B |= (1 << WGM12);     // turn on CTC mode:
    TCCR1B |= (1 << CS10);      // Set CS10 and CS12 bits for 1024 prescaler:
    TCCR1B |= (1 << CS12);
    TIMSK1 |= (1 << OCIE1A);    // enable timer compare interrupt:
    sei();                      // enable global interrupts:
    }


    void loop()
    {
      if(okstage == 1){
        DHT11.read(DHT11PIN); //读温湿度传感器数据存入相应数组
        count();              //把温湿度转换存入显示数组
        displayLED();         //显示显示数组  

        send_labview();
    //  bringled();           //翻转LED   
        okstage = 0;
        }
        Serial.println();   
      delay(200);
    }


    //**********显示数组内容到数码管*****************//
    void displayLED()
    {
        for(int i=0;i<4;i++)
        {
        tm1637.display(i,ListDisp);  //What the F***? 这里是ListDisplay 【i】,为什么显示不出来?
        }
    }


    //**********温湿度转换写显示数组*****************//
    void count()
    {
      ListDisp[0] = DHT11.temperature / 10;
      ListDisp[1] = DHT11.temperature % 10;
    //  ListDisp[2] = DHT11.humidity / 10;
    //  ListDisp[3] = DHT11.humidity % 10;
      ListDisp[2] = DHT11.temperature_4;
    }


    //**********取反闪烁LED*****************//
    void bringled()
    {
      if(ledstage == LOW) ledstage = HIGH;
      else                ledstage = LOW;
      digitalWrite(LED,ledstage);
    }


    //****串口发labview*****//
    void send_labview(){
        Serial.write(DHT11.humidity);
        Serial.write(DHT11.humidity_1);
        Serial.write(DHT11.temperature);
        Serial.write(DHT11.temperature_4);
        Serial.write(DHT11.jiaoyan);
        Serial.println();   
    }

    //***定时中断****//
    ISR(TIMER1_COMPA_vect)
    {
      seconds++;
      if (seconds == 1)
      {
        seconds = 0;
        okstage = 1;
    //    readMySensor();   //定时访问传感器或者其他子程序

      }
    }[/mw_shl_code]

    LABVIEW框图

    LABVIEW框图

    LABVIEW前面板

    LABVIEW前面板

    串口数据

    串口数据
    实物图.jpg

    不能上传表格,只能截图了。

    不能上传表格,只能截图了。
  • TA的每日心情
    郁闷
    2020-7-18 14:58
  • 签到天数: 15 天

    [LV.4]偶尔看看III

     楼主| 发表于 2019-4-30 22:16 | 显示全部楼层
    果然还是写得很随便

    该用户从未签到

    发表于 2019-5-1 09:24 | 显示全部楼层
    可以了,非常棒,要是写个labview教程就更好了
  • TA的每日心情
    郁闷
    2020-7-18 14:58
  • 签到天数: 15 天

    [LV.4]偶尔看看III

     楼主| 发表于 2019-5-1 11:09 | 显示全部楼层
    本帖最后由 Alan_Green 于 2019-5-1 11:10 编辑

    自己也不是很熟悉,功能都是一点一点调出来的,凑合着玩一玩。附件是LabVIEW的VI。

    VI.rar

    37.4 KB, 下载次数: 48

  • TA的每日心情
    开心
    2020-7-6 22:31
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2019-6-12 00:44 | 显示全部楼层
    真的很厉害
  • TA的每日心情
    开心
    2020-8-15 08:30
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-8-14 22:49 | 显示全部楼层
    厉害刚好需要这方面的东西,感谢大神
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    关于第三方IDE
    关于第三方IDE
    刚开始玩esp8266,用arduino做了几个例子,太蛋疼,开始找第三方ide,目前只研究了vsc
    arduino蓝牙接口串口显示为乱码
    arduino蓝牙接口串口显示
    各位看一下代码,我这串口无论怎么改,通过手机发送信息都是乱码。 #include
    开源!白菜白光T12控制器 全新UI界面
    开源!白菜白光T12控制器
    *声明:本项目源于https://github.com/wagiminator/ATmega-Soldering-Station 采用CC3
    关于arduino端口问题,萌新求助帖
    关于arduino端口问题,萌
    已经下好了 arduino的ide 可以从设备管理器看到 连接的板的名称, 但是不能从ide中找
    ESP8266烧录错误
    ESP8266烧录错误
    -首先-ESP8266新手 使用Arduino IDE Mac版开发, 对eps8266进行例程对烧录,总是报错
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表