2388|0

250

帖子

5

TA的资源

纯净的硅(初级)

楼主
 

【平头哥RVB2601创意应用开发】家庭环境监测及红外设备控制终端 [复制链接]

  本帖最后由 流行科技 于 2022-5-11 11:28 编辑

 

作品名称

家庭环境监测及红外设备控制终端

作者:流行科技

一、项目背景

目前很多的IOT设备都还是处于独立工作的状态,我通过此开发板可以完成多种传感器的集成化工作,并且可以外接很多设备,完善IOT终端,一个终端可以做很多事情。本次制作的环境监测及红外控制就结合了一款传感器和红外控制,可以通过监测环境温湿度,再通过红外发送给家里的空调等设备进行环境舒适度的调节。

本次作品所采用的开发板为RVB2601,其外设资源丰富,我所应用到的有IIC接口(接SHT20温湿度传感器),串口(Debug调试信息打印),SPI接口(OLED屏幕和W800WIFI模块),IO口(运行状态指示,以及PWM口)

二、作品简介+作品照片

这张是运行图,我在OLED上显示了温度湿度,以及空调模式,空调设定温度,这些展示信息。边上的是红外发射装置,可以产生空调需要的红外信号。

 

三、系统框图

整体围绕着RVB2601开发板进行开发,主要完成IIC读取温湿度信息,PWM输出控制红外设备(空调),OLED显示温湿度和空调状态信息,W800 WIFI芯片连接阿里云物联网平台,串口用作调试信息的打印功能,以及状态运行指示灯。

 

四、各部分功能说明和解析

SHT20模块,其是IIC通信设备,我采用了模拟IIC的方式进行通信。

1.湿度测量范围:0~100%RH

2.湿度测量精度:±3%RH

3.温度测量范围:-40~125℃

4.温度测量精度:±0.3℃

这是其主要的技术参数。

 

 

我通过一个函数不停的去获取SHT20的两个数值。

对于读取的数据也需要通过上面的代码进行转换。

我将转化后的值直接变成float型数据输出。所以串口打印直接能看到数值。同时也通过OLED显示屏输出。

在这里里面我是直接使用了LVGL的库,方便我们管理这些屏幕显示内容。我初始化了4个label,其中两个在前面显示当前值类型,后面两个是数值,不断变化的。

通过OS任务处理,每次读取到数据我都将刷新一次OLED显示屏上的信息,任务是0.5秒刷新一次。保证底层显示的更新速度。同时对于小数位的显示我也是做了处理的,通过扩大之后在处理,这样就能得到保留小数点后一位的数值,并能显示在OLED上。

红外设备比较简单,我这里使用了一个红外模块进行操作,我们只需要控制红外发光管的亮灭就能完成通信,需要注意的是,我们使用的IO需是PWM管脚,因为我们红外协议的载波是38Khz的。所以这里吧LED灯红色给拔掉了,接到我们模块上。

接下就是初始化了,我们对PWM输出进行初始化,要使其频率落在38Khz上。

ret = csi_pwm_out_config(&r, 7 / 2, 26, 10, PWM_POLARITY_HIGH);

按照此函数配置,其中26是其周期。计算方法如下:

其周期是uS,所以1/26*1000 000 这就换算成多少HZ了。大致是38461Hz,也就是38.461Khz。

这里可以用示波器观察下

大概输出是38.555Khz,这基本就可以进行下一步了。

这里我找到了一篇奥克斯空调的协议码,其基本是标准协议,但是按照了自己的组合。内部的是发送13个字节,我们只需要按照上面进行封装即可。

发送主要是从起始信号开始,我用延时函数进行了延时。之后就发送0,1的电平间隔时间不一致的。

协议我们来看下:

其是13个字节,最后一个字节是校验位,我规划了两个发送数组,一个是开空调,制冷模式,26度。一个是关空调。所以我们上电后只需要对其中的某些位进行改变,就能控制不同功能了,相应的阿里云端发送数据下来,我只需要相应改变其中的某些位即可。

所以到阿里云这边我们相应的进行接收,然后对数据处理即可。

例如这个设定温度是第二字节

第三位是一致默认位1的,我们只需要上面的5位。

所对应的就是这个表。

运算,我上面发送的是直接值,也就是16,17,这些数值。

AUX_ON[1] = ((0x40>>3)+(AirConditionerSetTemp_Value->valueint-16))<<3|0x07;

经过此关系式运算就能得到我们需要的红外码了,然后进行发送即可。

往后做的其他两种控制也是如此。

3.OLED显示屏幕

 

其是在硬件上与SPI1连接了,所以我们直接初始化它。

顺便把LVGL也初始化了。

LVGL的显示就是我之前说的温湿度值和空调模式设定温度这些,全是使用label控件。

4.WIFI模块(W800)

其也是SPI接口。我们通过初始化接口,最终调用API进行发送和接收,在上层协议中已经封装成AT指令了,所以根据其给的连接阿里云的AT指令我们即可完成连接阿里云的操作。

同样我在这里还进行了运行指示灯初始化,让其跟随上传指令进行状态改变。

任务中每次就是上报温湿度值,以及空调状态。

5.阿里云平台

我通过阿里云的物联网平台创建了一个产品,产品名称我命名为RVB2601,其中我们看物模型,在这里面我定义了下位机上传上来的信息,有空调开关状态,温湿度,这些等等,空调控制这些都是读写,因为我们还需要通过云平台得到相应的控制信息。之后产品下面需要创建设备,设备创建好了,我们下面传上来的数据也就能获取到了。

这是设备界面,我创建了一个名为w800的设备,同样我们进入物模型数据,也是可以看到其中的信息。这里面有最好平台发送的数据时间。我们可以看下这些信息。

如图,同样我还做了两种一个是web端的控制,一个是手机端联网控制效果。我们使用物联网应用开发,就能帮助我们生成Web端和手机端显示的功能。

这是Web浏览器端的界面,做的很简洁,直接就是显示可以显示的内容,控制我用了一些控件。

手机端,基本按照手机页面大小来做的,也是有同样的控件可以显示,我们只需要通过二维码扫描,就能进入上面的界面,然后收发都是没问题的,如果有能力应该是可以对接平台做一个完整的APP的。

五、作品源码

链接:https://pan.baidu.com/s/1j_F23fge-m-kGwkW6y3v7Q

提取码:w1yk

六、视频演示

RV2601应用开发-智能家庭环境监控及控制

https://www.bilibili.com/video/BV16R4y1A7bA/

RVB2601开发板红外控制空调

https://www.bilibili.com/video/BV13a411Y7vn?share_source=copy_web

七、项目总结(项目文字总结+帖子分享链接汇总)

目前使用RVB2601开发,体验了CDK,总结CDK使用目前没什么问题,就是有些跳转可能不太方便,有时候某些函数头文件也有可能出现找不到的情况。但其后续应该也会逐渐修复这些问题。目前开发这款RISC-V,从CDK中能找到很多现成的库,开发起来比较方便,但同时库多了也感觉比较凌乱,希望能够整合库,某些操作感觉是重复重新定义了。此开发板集成功能很多,也有未利用上功能模块,希望后期能够继续学习开发。

【平头哥RVB2601创意应用开发】开箱

https://bbs.eeworld.com.cn/thread-1197179-1-1.html

【平头哥RVB2601创意应用开发】OLED显示温湿度

https://bbs.eeworld.com.cn/thread-1199034-1-1.html

https://occ.t-head.cn/community/post/detail?id=4032255727942377472

【平头哥RVB2601创意应用开发】温湿度传感器测量

https://bbs.eeworld.com.cn/thread-1198822-1-1.html

https://occ.t-head.cn/community/post/detail?id=4032256774198927360

【平头哥RVB2601创意应用开发】TCP传输温湿度

https://bbs.eeworld.com.cn/thread-1200128-1-1.html

https://occ.t-head.cn/community/post/detail?id=4036143348040404992

【平头哥RVB2601创意应用开发】阿里云上云测试

https://bbs.eeworld.com.cn/thread-1201807-1-1.html

https://occ.t-head.cn/community/post/detail?id=4041836946169860096

【平头哥RVB2601创意应用开发】红外设备控制

https://bbs.eeworld.com.cn/thread-1202459-1-1.html

八、其他

 

家庭环境监测及红外设备控制终端.doc (3.72 MB, 下载次数: 4)



 

 

 

 

 

 

点赞 关注
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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