欢迎光临散文网 会员登陆 & 注册

温湿度传感器项目

2022-01-13 16:00 作者:新阁教育  | 我要投稿

这个项目挺适合初学者的,搭建了一套硬件环境,并且也针对这套硬件做了一个仓储温湿度采集系统,很多学员都完成了,并且都有一个直观的感受就是————麻雀虽小,五脏俱全。

虽然是一个比较小的项目,但是涉及到很多知识点,Modbus采集、Modbus一主多从、Modbus串口断线重连、实时曲线、自定义控件、SQLite数据存储、数据查询、历史曲线、动态查询、报警设置、报警检测、参数配置等。

开发

1、首先设计UI界面如下图,这里主要是采用自定义组合控件的方式来实现。

2、首先确定温湿度传感器的寄存器地址,如下所示


3、开发之前需要提前将各个传感器的站地址设置好,并且保证不能重复。

4、通信部分主要应用的是Modbus一主多从,通过分析,对于每个站点的结果封装一个实体类,如下所示:

5、然后我们可以再封装一个单个设备数据读取的通用方法,如下所示:


6、然后开启多线程进行轮询,并对结果进行错误分析处理,如下所示:

       /// <summary>
        /// 多线程数据通信
        /// </summary>
        private void GetMonitorDB()
        {
            while (!cts.IsCancellationRequested)
            {
                if (isConnected)
                {
                    int error = 0;
                    //读取第一个从站
                    if (!GetSlaveData(config.SlaveId1, config.TempHigh1, config.TempLow1, config.HumHigh1, config.HumLow1))
                    {
                        error++;
                    }
                    //读取第二个从站
                    if (!GetSlaveData(config.SlaveId2, config.TempHigh2, config.TempLow2, config.HumHigh2, config.HumLow2))
                    {
                        error++;
                    }
                    //读取第三个从站
                    if (!GetSlaveData(config.SlaveId3, config.TempHigh3, config.TempLow3, config.HumHigh3, config.HumLow3))
                    {
                        error++;
                    }
                    //读取第四个从站
                    if (!GetSlaveData(config.SlaveId4, config.TempHigh4, config.TempLow4, config.HumHigh4, config.HumLow4))
                    {
                        error++;
                    }
                    //重连处理                   
                }
            }
        }

大家对这部分内容有兴趣,咱们很快将通过训练营讲解,先提前透漏一下安排


温湿度传感器项目的评论 (共 条)

分享到微博请遵守国家法律