开源基于涂鸦模组和沁恒RISC-V 架构32位MCU的IOT物联网生活环境监测系统及涂鸦模组使用


前言

         感谢涂鸦提供的模组和立创EDA提供的优惠劵,很nice的一次活动,第一次涂鸦活动只白嫖了,打好了板子没有真正去做,这次使用沁恒的RISC-V架构的32位MCU制作,完美结尾,在这里可以阐述一下开发流程。
         还要感谢逐飞科技为智能车提供的驱动库。


一、项目简介

         活动主题是Diy物联网温湿度检测装置。因为DHT11的精度较低,所以使用SHT30作为温湿度传感器,再加上立创白嫖(#.#)不要太香。(DHT11使用单总线通信协议,SHT30使用IIC通信协议),这里感谢逐飞做的驱动库,IIC驱动稍微移植一下即可使用。
         传输方案使用的是涂鸦的MCU方案,涂鸦的这款WBR3模组可以作为一个MCU使用,有将近10个IO口,还有模拟输入,我想学习智能车要使用的这款MCU,所以选择了使用MCU方案。编译器采用MounRiver Studio。(这里吹一波RTT-Studio,因为Art-Pi的缘故,刚刚学会了RTT-stuido之后来使用MounRiver Studio,两个都是基于GCC做得,基本上毫无差别,不过RTT Studio的串口助手和命令行是真心好用)。
         系统实现的功能包括:温湿度实时上传、光敏电阻监测,板载OLED显示,涂鸦手机APP显示。


二、硬件介绍

在这里插入图片描述

1.硬件原理图

         这可以算一IOT的小项目,所以打算将它开源出来,PCB工程和代码我都会贴出来滴。
硬件原理图

         原理图也挺简单的,大概就包括以下几部分

1.1核心板

         左上角是个核心板,可以参考逐飞的核心板图片(淘宝一搜就有滴),这里我自己参考逐飞的原理图自己批量做了很多核心板(仅自己使用,非商业用途)。核心板包括下载电路和DUBUG串口还有USB供电(方便调试)。在这个项目里就负责MCU的作用,核心板的下载器上带有串口一的debug接口,所以很方便就能进行调试。
         串口在调试的时候有个BUG,开始的时候将MCU和模组焊接好之后,移植好通信协议发现无法通信,MCU的串口接收中断一直在接收,一直卡在中断中里。模组也用的是串口一,然后问题出现了(使用串口1和模组无法通信,和MCU也无法正常通信),这里将核心板和MCU断开,用USB-TLL插上核心板的串口1进行测试,才想起来,三个外设共用一个串口。系统上电后,模组会发心跳包到MCU,然后MCU就一直接收串口信息,一直处于中断中,无法验证通信协议,所以只能借助USB-TTL进行 涂鸦协议的测试。
沁恒核心板

1.2涂鸦模组

         在画PCB的时候,参考涂鸦官方的手册进行了模组外围电路的绘制,这里要注意一点,选择电源的时候一定要考虑模组的功耗,我记得手册里WBR3的最高功耗可以高到500MA还是300MA,所以电源特别是LDO的选型一定要注意。目前使用AMS1117-3.3最大输出电流800MA,完全满足系统要求。然后就是外设该加的去耦电容一定要加,可能因为这个去耦电容就让外设无法工作(以前亲测,CH340缺少一个0.1uf的去耦电容让下载电路无法工作)。
WBR3模组

1.3供电电路设计

         电源采用USB供电的方式,因为核心板自带串口,所以底板USB无需再设计串口电路,直接使用6P-Type-c接口,供电,后跟了一个6脚带自锁的开关作为电源控制接500MA自恢复保险丝作为电路保险器件,防止因为短路烧坏MCU和模组。
         因为模组供电是3.3V,所以必须使用降压IC降压,成本和复杂度肯定首选LDO,这里采用AMS1117-3.3V ,这个是我最经常使用的LDO(一方面是便宜)另一方面还是便宜嘿嘿(搞硬件,毕竟要涉及成本呀)。
LDO电路

1.4外设电路

         外设部分还是相对简单滴,温湿度和光敏电阻。
         最重要的就是本次温湿度传感器SHT30,DFN-8的封装是真的难焊,不过幸好我提前在PCB画好之后将焊盘全部拉长了十几mil,然后哈哈哈哈(直接上助焊剂,然后上焊锡烙铁烫一下,吸锡带吸走结束)焊的真心漂亮。
SHT30
         光敏电阻就是串了一个10K,并了一个10K然后接入了ADC,但是GL系列光敏电阻怎么将电压值转到Lux 我是真没搜到,这里还是粗略的显示个大概。

1.4总结

         硬件一定要先搞电源,硬件一定要先搞电源,硬件一定要先搞电源,然后最好有人帮你检查原理图。
         我就因为原理图的时钟和数据引脚标反了,然后IIC通信折腾了3天,一直以为是时序问题,然后第四天看原理图才发现这个问题。

二、涂鸦模块通信协议使用

2.1涂鸦模组协议移植

         *涂鸦模块的通信协议已经封装好了,只需要将这些文件导入工程中,然后里面有一些需要调用的函数,编译一下就知道啦,这个必须要赞,涂鸦将需要调用的函数都写了中文注释没有注释掉,然后你编译就会报错啦。调用之后注释掉中文即可。
涂鸦协议移植

2.2移植步骤

  1. 这个是涂鸦模组初始化的函数,必须在初始化的时候调用它。
    涂鸦初始化
  2. 我寻思这个函数应该是发送心跳包之类的,必须在主循环中不断执行,且记不要加条件判断,否则可能造成设备掉线,云端无法接受。
    涂鸦模组服务函数
  3. 配置串口中断,这里需要将串口的接收中断打开,然后在接收中断中调用uart_receive_input()这个函数,并将串口接收到的值传递给uart_receive_input的参数,这是最重要的一步,也是和MCU最相关的一步。
    配置串口中断
  4. 到这里就需要改设备号啦,涂鸦会给每个设备分配独立的设备号,请在protocol.h中进行修改,设备号在涂鸦平台的设备管理中。
    涂鸦设备号修改

三、涂鸦的软件数据接口

涂鸦将所有的API函数都定义在mcu_api.c中,mcu_dp_value_update();这个函数就是给涂鸦平台上传数据的关键函数,第一个参数是dp号和 设备定义有关,需要看设备管理平台。 第二个参数是要上传的数值。
涂鸦上传数据的API

三、实现的功能

1实时上传温湿度信息及光照信息

这里截图是之前的,没开启lux的上传函数。
在这里插入图片描述

系统OLED显示温湿度及光照

板子上有好多油,没有洗板水细(哪位宝贝能赞助哈)。
在这里插入图片描述

四、硬件文件及代码开源

硬件链接:https://oshwhub.com/kexie/ji-yugui-di-wen-shi-du-jian-ce
代码链接:https://github.com/l874818045/Lele-learning

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值