3646|2

336

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

【RT-Thread软件包应用作品】+温湿度控制系统 [复制链接]

 

基于RT-THREAD系统的智能家庭温湿度控制系统

  1. 项目来源

    东北的冬天寒冷而干燥,孩子晚上学习和睡觉的时候会因为环境太干燥或太冷而不适,严重的时候,一觉醒来嗓子都沙哑了,鼻子里面都有血嘎巴。本地的老手段是在孩子卧室里面放一盆水,改善屋内湿度,但是效果明显不好,基于以上的情况,设计了一个孩子卧室内的小型智能温湿度控制器,让室内温度和湿度适宜。

  1. 项目概述

    这个项目基于W601开发板和板载传感器完成室内温湿度采集,通过构建无线网络MQTT消息服务器,完成采集数据和控制命令传递,采用其它支持MQTT的硬件完成温度和湿度设备控制。

    网络架构图如下:

  

项目网络架构图

  1. 温湿度采集器 (RT-THREAD+软件包(aht10,easyflash,fal,nettuils,mqtt))

以W601开发板及板载温湿度传感器为基础硬件,RT-THREAD实时IOT操作系统为基础软件。基于wifi网络和MQTT消息协议完成数据采集和传递。

  1. 温湿度执行器

以ESP32开发板为硬件基础,基于wifi网络和MQTT消息协议完成数据解析和控制执行。

  1. MQTT消息服务器

Raspberry Pi Zero W为硬件基础,运行开源eclipse mosquitto broker消息服务器。

  1. 环境温湿度控制器

通过windows应用程序,使用开源paho MQTT的client库,基于wifi网络和MQTT消息协议获取传感器数据,通过一定的判断逻辑,发送控制命令。

  1. 项目实现
  2. 温湿度采集器
  1. 硬件原理

温湿度采集器是基于正点原子W601评估板,采用板载的温湿度传感器AHT10,I2C总线获取数据,数据精度0.1度温度或0.1%湿度。

  1. 开发环境建立

参见帖子《https://bbs.eeworld.com.cn/thread-1098918-1-1.html》中关于采用env+arm-gcc建立开发环境部分。

  1. 软件原理

软件设计基于RT-THREAD实时IOT操作系统,利用线程技术实现,MQTT信息获取,MQTT信息发送,传感器信息采集。软件设计主要流程见下图描述。

当wifi完成连接建立后,自动调用MQTT启动函数,完成一个MQTT客户端的建立和初始化工作,同时会创建一个接收线程,用来接收来自MQTT分发的消息数据 。同时程序会创建一个数据发送线程,用来将温湿度数值发送到MQTT消息服务器。为了保证消息传递的实时性,数据发送采用变化阈值和定时发送相结合的方式,保证数据变化较大时数据可以立刻更新,如果数据长期维持或变化较小,也可以采用定时的方式保证数据刷新。

程序启动后,建立温湿度传感器获取线程,程序首先寻找和打开温湿度传感器设备,采用定时方式读取温湿度传感器的数值。

  1. 温湿度执行器
  1. 硬件原理

采用bpi:uno32基于ESP32,具有板载WiFi功能,兼容Arduino UnoR3的引脚输出。

  1. 软件原理

采用Arduino开发环境,使用EspMQTTClient库,接收来自消息服务期的两条命令,分别为/mqtt/02/R1和/mqtt/02/R2两个主题的控制命令,其中/mqtt/02/R1用来控制一对继电器接点,启动加热器;/mqtt/02/R2用来控制另一对继电器接点,启动加湿器。这里为了表征简单,用led指示灯代替继电器接点的输出,其中加热器接点输出用绿灯表示,加湿器接点输出用红灯表示。

Bpi:uno32同时定时发送一条消息,/mqtt/02/S1表征自己的在线状态,供控制器检查使用。


  1. MQTT消息服务器
  1. 硬件原理

采用树梅派成熟开源硬件Raspberry Pi Zero W

基本参数描述:

  1. Broadcom BCM2835

1GHz ARM11内核

  1. 512MB 内存
  2. 802.11 b/g/n WiFi无线网卡
  3. 低功耗蓝牙4.1 (BLE)
  4. Micro SD 卡插槽
  5. Mini-HDMI接口 (可输出1080p60视频)
  6. Micro-USB供电接口
  7. Micro-USB OTG通信接口
  8. 40PIN GPIO接口焊盘 (兼容A+/B+/2代B/3代B)
  9. CSI摄像头接口
  10. 复合视频接口焊盘
  11. 复位接口接口焊盘
  12. 尺寸:65mm x 30mm x 5mm

选择树梅派ZeroW的目的:

    从基本参数性能上看,它的性能不是超级强悍,但是它集成WiFi,512M的内存,加上1GHz的主频完全可以满足MQTT消息服务器的数据处理需求。

  1. 软件基础

采用官方最新的2019-09-26-raspbian-buster-lite系统,没有图形界面,因为我们完全不需要。系统中集成了树梅派的gcc编译器,后面会用到。

  1. MQTT服务器建立

架设MQTT服务器的软件很多,选择Eclipse Mosquitto broker是因为他的系统比较简单,容易架设,不需要系统的性能多么强大,更主要的是部署简单。

  • 源代码下载

Eclipse Mosquitto服务器是开源软件broker,可以直接从网站克隆或下载最新的代码。

地址: https://mosquitto.org/download/

  • 编译源码

下载当前版本: mosquitto-1.6.7.tar.gz

安装必要的库: sudo apt-get install build-essential python quilt libwrap0-dev libssl-dev  devscripts  python-setuptools

编译: make

不出什么意外可以编译通过的,如果编译中提示缺少库,可以直接安装。

最后一个帮助文件生成总是提示有问题,不过这个不影响程序运行。

  • 配置执行

编译通过后,执行文件叫做mosquitto。如果我们希望调试设备连接和数据交互,可以采用-v参数;如果希望以服务的形式运行,可以使用-d参数。


  1. 温湿度控制器

温湿度控制器采用labview+开源的lv-mqtt库完成。

  1. 主画面

软件分为左右两个部分,左侧为消息服务器连接基本信息,和程序控制按键;右侧为实现控制功能的主要显示和输入部分。其中温度和湿度分别采用两个指针表,黑色指针为当前环境温湿度只是,红色指针为阈值设置。如果当前环境温湿度低于设定值,温湿度越线指示灯亮,同时会给执行器发送相应的启动加热器或启动加湿器的控制命令。

    温湿度阈值可以通过温度定值和湿度定值完成设定。

   

  1. 软件处理流程
    • 系统初始化和mqtt服务器连接

    • 订阅和接收消息服务期信息

    • 解析和判断信息,并且发送相应的控制命令

温度获取和判断

湿度获取和判断

    • 系统退出

反初始化并退出系统

  1. 项目总结

本项目已MQTT消息服务为基础,采用RT-THREAD实时IOT操作系统,结合W601开发板板载传感器完成温湿度,并利用自身集成的WiFi接入局域网,将传感器数据共享到消息服务期。利用开源的硬件和开源软件假设MQTT消息服务器和执行器,采用labview实现界面友好的控制器。

       本系统实现了基本数据采集,转发共享,解析判断,控制执行的各个环节,完成了设定的主题。

   5. 视频展示

    优酷视频: https://v.youku.com/v_show/id_XNDQ1OTQxNDA0MA==.html?spm=a2h3j.8428770.3416059.1

 


由于时间原因,系统还存在缺陷,不过基本功能和架构都已经可用。

源码:

    采集器W610源码  w601采集器.rar (6.87 MB, 下载次数: 34)

   执行器源码  bpi.ino (3.23 KB, 下载次数: 7)

   控制器源码  温湿度控制器.rar (1 MB, 下载次数: 25)



此内容由EEWORLD论坛网友我爱下载原创,如需转载或用于商业用途需征得作者同意并注明出处

最新回复

楼主厉害,我的作品都还没整理出来,明天周六整理下   详情 回复 发表于 2019-12-6 14:56

赞赏

1

查看全部赞赏

点赞 关注(1)
 

回复
举报

90

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

楼主厉害,我的作品都还没整理出来,明天周六整理下

点评

时间比较紧,所以内容实现的还需努力啊   详情 回复 发表于 2019-12-7 09:54
 
个人签名http://rayuu.com
 
 

回复

336

帖子

2

TA的资源

纯净的硅(初级)

板凳
 
禅师 发表于 2019-12-6 14:56 楼主厉害,我的作品都还没整理出来,明天周六整理下

时间比较紧,所以内容实现的还需努力啊 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表