
阿里云平台+cw32单片机多功能桌面工具
简介
立创cw32单片机开发板进行开发的一款多功能桌面工具
简介:立创cw32单片机开发板进行开发的一款多功能桌面工具开源协议
:GPL 3.0
描述
一.项目介绍
1.该项目使用多种环境检测传感器如SGP30对于co2,环境质量检测,SHT30进行环境温湿度检测等等
2.同时使用esp01s搭建了阿里云物联网平台进行数据收发与监控,同时也可以作为一个功率计,对于设备功率监控,例如手机充电过程中的电压和电流进行监控,并且上传阿里云等等
3.在此基础上为了充分利用手机充电器,我通过CH224KPD诱骗芯片或者使用高通协议的QC诱骗,把手机充电器的电压诱骗出来然后通过BUCK电路通过单片机pwm控制输出可调电压,把充电头改造成一个建议的桌面级别可调电压源,并且这些数据同样也可以发送到阿里云进行监控
4.加入了CH340K串口通讯,可以通过USB口连接电脑进行单片机串口数据打印,方便修改程序调参
5.使用了1.69寸tft彩色屏幕进行数据显示,tft屏幕色彩细腻使用寿命长,价格便宜等等
6.控制方式使用了ec11编码器和一个按键进行控制,同时也加入了3颗W2812B氛围灯珠,使得设备具有了灯光效果
7.设计了锂电池充电管理电路,板子背面安装18650电池,达到摆脱电源线供电烦恼
以上就是主要功能
二.程序功能实现
1.单片机选用的是立创开发板CW32F030C8T6开发板,官方资料齐全,低功耗,关键最重要的的单片机支持5V供电,相较于其它品牌单片机需要的3.3V供电方便实在太多了,不仅仅方便在供电方面,这也意味着电路可以少设计一个5V降压3.3V电路,大大降低生产成本,同时也给调试过程减少很多供电烦恼,同时在此也再次宣传一下立创开发板提供的文件资料十分丰富,大大降低了开发难度,文档从单片机介绍到程序例程和环境移植都做的十分优秀
这是立创开发板文档资料网址:https://wiki.lckfb.com/zh-hans/dwx-cw32f030c8t6/beginner/
2.环境传感器,tft屏幕,ec11旋转编码器,esp01s开发方面借鉴了立创开发板提供的移植成功的库文件,在此基础上进行移植和使用的,立创开发板文件资料十分全面,移植方法和步骤也十分详细。
这是资料网址:https://wiki.lckfb.com/zh-hans/dwx-cw32f030c8t6/
3.关于esp01s模块刷入MQTT完成阿里云物联网的过程我结合了立创开发板提供的文档实现了通过单片机控制esp01s初始化后生成wifi热点,手机等设备连接后接入后通过手机app可以查看单片机采集的数据
这是立创开发板关于cw32开发板使用esp01s进行与智能设备直接数据收发提供的详细文档网址:https://wiki.lckfb.com/zh-hans/dwx-cw32f030c8t6/module/rf/esp01s-wifi-module.html
遗憾的是文档未介绍关于设备接入阿里云的介绍,因此我通过寻找资料和学习去完善设备接入阿里云物联网,实现设备网络数据收发,以下是我学习关于如何让设备接入阿里云的一些调试步骤,部分借鉴了CSDN博客的一些资料
资料网址是:https://blog.csdn.net/yijujishouweihe/article/details/128694641
按照这个博客介绍,我了解了如何配置阿里云平台,根据这份博客完成了阿里云平台的设备建立以及三元组参数的获取,这是设备接入阿里云的一个最重要的环节,根据立创开发板通过的程序可以发现有链接阿里云的代码部分,同时也存在解析阿里云三元组数的部分,但是实际使用过程中,发现命令会卡死在三元组数解析环节,可能是我代码问题,未解决,但是在这份博客文档中我发现,作者是通过一个电脑软件完了阿里云设备三元组参数解析
因此,我修改了程序中关于阿里云三元组参数解析程序,将其注释掉,使用电脑软件解析的三个数据替代了程序解析输出的结果,从而使得设备连接上了阿里云,并且通过订阅完成设备数据上传阿里云,也可以通过阿里云发送数据让设备接收阿里云发送的数据并且通过串口将数据打印出来
需要注意的是通过阿里云设备建立后获得三元组参数通过电脑软件(该软件会打包到附件)解析填到程序对应位置,参考我附件中打包的源码,另外程序中该位置需要按照我修改的来运行才能保持成功,如该位置程序,不然会程序卡死
这是阿里云平台网址:https://cn.aliyun.com/
程序设计了两种esp01s的模式,一个是ap模式,设备生成热点,一个是sta模式连接阿里云用的,只需要在初始化程序地方把sta初始化程序注释掉就可以运行ap模式,通过手机连接设备热点进行数据收发。
4.电压诱骗方案PD/QC
CH224k电压PD诱骗,我也同样参考了CSDN一位博主文章,链接:https://so.csdn.net/so/search?spm=1010.2135.3001.4498&q=ch224k&t=&u=
我选择了电平控制,同时关于1K的限流电阻,我采用了4颗4.7K电阻并联达到散热和分散功耗的效果;
QC诱骗我则是采取了TYPEC线序的D-和D+上电压控制达到电压诱骗
通过9k电阻和2k电阻并联分压,并且通过单片机io口控制达到电平控制,达到不同协议充电器都可以把其中电压诱骗出来目的
5.BUCK电路设计
为了更好的驱动BUCK电路中核心MPSFET的工作,我采用了12v电压驱动控制打开和关断MOS管,并且采用了图腾柱电路进行MOS管驱动,设计了5V升压12V电路以及MOS管推挽电路
通过这些电路结合BUCK电路将充电器诱骗出来的电压控制输出可调电压,实现桌面级别可调电压源设计
6.ADC采样设计
通过查询CW32单片机数据手册,选择了四路ADC采样进行电压电流数据采集,电压采样则使用了10K加1K的分压电路;电流采样则采用了ina199a电流采样芯片,外围电路检测,采样数据较为精确,需要注意的是在与阿里云进行数据收发过程中电压采样是不正确的,目前问题未解决。
7.串口通讯电路设计
通过CH340K和一些简单元器件完成了CH340K串口电路模块搭建,单片机串口可以通过该电路和电脑串口工具进行通讯,方便单片机开发和调参
8.锂电池充电电路设计
采用了使用很成熟的TP5400锂电池充放电管理电路,充电是5V1A
初代电路在设计过程中发现一些问题,比如5V升压12V电路有一处接线错误,采用飞线方法解决了该问题,把功率计测量电路和PD,QC诱骗电路接到了一起,导致功率计功能无法使用,我拆除PD,QC诱骗功能后验证了功率计功能正常,另外就是mos管导通后最多只能输出9v左右,同时pwm脉宽幅值调节电压效果不理想,电压步进在4V到9V直接控制微调,0到4V则不规律,无法很好控制,该问题待解决,目前遇到的硬件电路问题都进行了原理图和PCB重新绘制,解决了这些硬件问题。
这是实物验证图片
三.硬件功能介绍
1.按照原先计划设置以及完成进度
2.四组传感器测量环境质量,计划使用的DS18B20和气压计无法正常运行移除,目前正常运行的有sht30温湿度传感器和sgp30环境质量传感器
3.四路ADC进行电压电流检测,目前软件调试完成,硬件电路已修改,未验证
4.立创cw32开发板采集数据使用esp01s上传阿里云,目前实现成功
5.PWM脉宽调压,目前可以调压但是存在一些问题,上述提到过,目前正在解决,DC5x2.5口输出口可以电压调速驱动减速电机或者直流风扇
6.TFT彩色屏幕,目前完成调试
7.WS2812B彩色灯珠,目前调试完成,根据电压诱骗不同模式显示不同颜色
8.PD和QC诱骗,验证成功,可以进行支持PD和QC协议的充电器电压诱骗
功能介绍
板载按键有一颗小按键和ec11编码器按键(ec11按下就是按键),通过中断控制设备,左右按键方便命名key1和key2,如上图所示,并且屏幕也有对应按键显示以及它们自身状态显示,因为硬件电路把屏幕排母装反了,所以反装屏幕了,硬件电路该问题已经修改
如何有小伙伴复刻,程序需要在
lcd_int的.h文件下进行修改就行了,程序设置默认开机进行联网然后把环境采集数据上报阿里云物联网平台,这里需要特别注意,程序中我设置的wifi名称是LAZXS-2,密码是la12345678,如果不进行修改会使程序卡在初始化中,导致设备不开机,可以自行用手机设置该名称热点和相同密码及可让设备初始化成功进入正常运行,同样程序也支持AP模式通过设备生成热点通过手机连接后打开对应app完成手机和设备之间交互功能,详情见立创开发板cw32地文星资料,如果需要改成自己需要连接的wifi,修改位置如图所示
然后按下设备按键key2进入模式二,该模式设备将断开环境数据采样,因为调试工程中发现采样环境数据会干扰电压电流测量,在该模式下可以把设备当功率计使用,由于修改后板子未验证,按照修改后板子介绍
右边最外侧则是功率计测量部分,上口是输入口,下口是输出口,插反则无法显示电流大小,按照介绍连接后可以测量用电设备电压电流大小,居中的Type-C口是充电&供电口,电路设计了如果外部供电则电路会断开锂电池通过升压模块的5V供电
右下角偏左的typec口是电压诱骗输入口,通过DCx2.5座子输出,同样可以测黑子座子输出的电压和电流大小
下面介绍如何进行电压诱骗,程序默认让ch224k上电初始化成输出5V电压。警告,板子未运行,ch224k可以诱骗20V电压。此时按下key1则进入PD/QC电压诱骗模式1,1模式是进行PD协议的四个档电压诱骗,按键按一次分别进入对应模式,WS2812B也会亮起不同数量和颜色灯,同样TFT屏幕也有对应显示,PD模式后就是QC诱骗的四个模式,现象和PD协议一样,如图所示
这些是QC诱骗对应的设备状态
下面则是PD诱骗四个档位的设备状态图片
最后就是PWM脉宽调压的使用方法了,通过上述电压诱骗的电压一般为四个档位,9V, 12V, 15V,20V,有时候需要一个特殊的电压,通过BUCK电路控制输出一个可控电压,此时需要按下按键key2,屏幕对应key2数值3时,同时屏幕上对应的PWM会显示ON,如果不是则显示OFF,此时旋转编码器就可以控制pwm脉冲宽度从而达到调压目的
设计图

BOM


评论