使用手册
1 PCB焊接
电路焊接并无难点,最小的封装为0603,还是比较容易焊的.核心器件都采用的是排母插拔式设计,没有什么QFP、QFN芯片的焊接,难度相对较低.
分享几个在焊接时的小技巧
- 焊接有大面积填充铜的GND焊盘时,适当调高烙铁温度,以防散热过快导致焊锡温度不够,出现虚焊的情况;
- 先焊接各个芯片,如TC4056A、MT3608、LDO等;
- 然后再从小到大、从低到高焊接其他元器件;
- 在焊接开发板两排排母时,可以先把排母插到开发板排针上,再去焊接,这样能保证两排排母间距与开发板的匹配,毕竟开发板排针也是手焊的,难以做到完全垂直.
使用万用表通断挡测试是否有短路、断路的情况,一切没问题就将立创开发板、屏幕、ESP8266和电池都插入到各自的排母/连接器中.回到电脑上,跟着下面几个小节一步步来做,方可实现多功能物联网的电压电流表.
2 安装配置Keil & CW32程序下载
2.1 Keil下载安装
keil社区版下载与安装在立创开发板的Wiki有详细教程: 立创开发板Wiki安装keil
2.2 器件包安装
器件包安装在立创开发板的Wiki: 立创开发板Wiki器件包安装
2.3 CW32程序下载
(1)下载在附件中的CW32F030C8T6_VAmeter.zip
并解压.
(2)进入文件夹CW32F030C8T6_VAmeter
->Project
->MDK
,使用keil打开Project.uvprojx
工程文件
(3)配置WIFI.如图18所示,在main.h
中配置WIFI名称和密码.
(4)配置MQTT.请在4.5节设置好MQTT服务器之后,再回到本步骤.
如图19所示.username
和password
是在EMQX服务器上设置好的,具体请见4.5节;ClientID
为自己设置的,我这里为了方便辨识,就设置为esp8266_VAmeter;服务器地址
为EMQX设备所在的IP地址,而端口
一般不用动,默认1883;话题
是要发布消息的话题,这里自己写一个能记住的即可,因为后面在配置Python转发程序时要订阅这个话题.
(5)Keil下载器配置.如图20所示,我这里使用的是ST-LINK,请根据你的下载器自行选择.
(6)Keil编译器配置,本项目使用的是 V5.06编译的.安装编译器教程为:https://blog.csdn.net/weixin_44807874/article/details/128627528
为了方便大家下载,我把该文件从官网转存到网盘里 : https://www.123pan.com/s/TBfTjv-jdvg.html
(7)点击Keil的Rebuild按钮,编译完成后应为0 Error 0 Warning,如图21所示.
(8)连接下载器,点击Download按钮,稍等几秒,即可正常使用.
3 下载ESP8266的MQTT AT固件
(1)下载并解压附件中的flash_download_tool.zip
和1112_esp8266-4m.zip
(2)使用USB转串口模块,依照下表连接串口模块与板载的下载接口
串口模块 | 板载接口 |
---|---|
3.3V | 3.3V |
TXD | RXD |
RXD | TXD |
GND | GND |
(3)使用跳线帽,短接下载选择跳线,如图22所示
(4)将串口模块插入电脑,打开刚解压的flash_download_tool
文件夹中的flash_download_tool_3.9.2.exe
,在弹出的窗口中,第一个选择ESP8266
,第二个选择develop
,然后点击OK.
在接下来的界面,按图23所示配置好,COM口根据你电脑识别的选.配置好后点击START.
(5)由于CW32程序中默认是关闭ESP8266的,因此,现在需要操作CW32菜单至系统设置--启动ESP8266
请注意:保持板载总开关为关闭状态,否则可能无法正常下载ESP8266的固件
(6)再看电脑上的flash_download_tool,它就开始下载了,耐心等待进度条走完.
(7)拔掉串口模块接线、跳线帽,操作菜单至WIFI-连接WIFI,查看是否正常连接.也可以在连接后操作菜单至WIFI-网络信息,获取设备IP等信息.
4 自建InfluxDB数据库
请注意:4.4、4.5、4.6节均基于Docker一键安装部署,如果你还未安装Docker,请查看下列教程进行安装:
- Windows安装Docker教程:https://www.runoob.com/docker/windows-docker-install.html
- Ubuntu安装Docker教程:https://www.runoob.com/docker/ubuntu-docker-install.html
安装完成后,在命令行(windows)或终端(Linux)键入命令 docker -v
,如果返回Docker version xx.xx.x,build xxx
字样,则安装成功,可以继续往下看.
(1)拉取InfluxDB镜像
这里用我自建的一个Docker镜像加速器来做的镜像加速,有可能访问过多了就不可用,如果你有域名的话,可以查看这篇教程 ,利用cloudflare workers自建一个.
如果没有域名也没关系,用我的镜像加速就好了.打开终端,输入以下指令,创建存放数据的目录.
mkdir config && mkdir data
(2)然后运行docker run命令,其中$PWD是存在终端所在路径的文件夹下.端口映射的话我改成了3086
sudo docker run -d \
--name=influxdb2.0 \
-p 3086:8086 \
-v "$PWD/data:/var/lib/influxdb2" \
-v "$PWD/config:/etc/influxdb2" \
docker-mirror.vrxiaojie.top/library/influxdb:2.7.6
(3)不出意外的话,它会开始自动拉取镜像,没有报错.然后我们打开网页,输入你部署InfluxDB的机器的ip地址:端口,比如我的为192.168.50.111:3086,即可看到欢迎界面(图24).
(4)点击下一步,来到初始化设置,要求我们填写用户名密码、组织名称以及初始Bucket名称,可自己填,也可按我的来(图25).
(5)搞定!保存显示出来的API token,待会会用到.然后点击Quick Start(图26)
至此,InfluxDB数据库就搭建好了.
5 自建MQTT服务器-EMQX
(1)与搭建数据库类似,另找一个文件夹,输入指令创建EMQX的日志及数据文件所在的文件夹.
mkdir data && mkdir log
(2)然后启动docker容器
sudo docker run -d --name emqx \
-p 1883:1883 \
-p 18083:18083 \
-v $PWD/data:/opt/emqx/data \
-v $PWD/log:/opt/emqx/log \
docker-mirror.vrxiaojie.top/library/emqx:5.7.1
(3)打开浏览器,进入你部署EMQX的 ip地址:18083,比如我的为192.168.50.111:18083,进到登录界面,EMQX的默认用户名admin
密码public
,登录后修改密码,进入主界面.
(4)创建客户端认证,见图27.客户端认证-->创建-->"Password_Based" 下一步--> "内置数据库" 下一步-->"username" "sha256" "suffix" -->创建
(5)创建成功,点击用户管理(图28)-->“+”号-->输入用户名,我写esp8266
,密码123456-->创建 (图29).
同理,创建个用户名叫python
的,以便下一节使用.
(6)最后,回到4.2.3节的步骤(4),在宏定义中把相关参数填入,再下载程序到CW32.
6使用python程序接收并转发数据至数据库
(1)下载附件中的python转发程序.zip
并解压,进入该目录,打开终端运行,安装依赖库.
pip install -r requirements.txt
(2)完成之后,使用任意编辑器打开emqx_receive_VA_meter.py
,修改我标注#修改此行
的那些参数.如图30所示.改完记得保存.
(3)运行py程序.在当前目录打开终端,输入
python emqx_receive_VA_meter.py
如果出现Connected to MQTT Broker!
说明成功连接到EMQX服务器了,把该程序放在后台即可.
(4)打开电压电流表电源开关,依次连接WIFI、MQTT,并进入测量电压电流功能.此时再来看终端上,会显示出电压、电流、功率的数值,如图31所示
(5)进入InfluxDB后台管理界面,按图32所示操作,可查到刚刚发送上来的数据.
7 Grafana数据监控仪表盘
(1)使用Docker安装grafana.先创建数据文件夹
mkdir grafana
(2)然后docker run
sudo docker run -d --name=grafana \
-p 3000:3000 \
-v "$PWD/grafana:/var/lib/grafana" \
-e GF_DASHBOARDS_MIN_REFRESH_INTERVAL=100ms \
docker-mirror.vrxiaojie.top/grafana/grafana:11.0.0
(3)打开浏览器,进入你部署grafana的 ip地址:3000,比如我的为192.168.50.111:3000,进到登录界面.默认用户名和密码都是admin
(4)创建数据源.如图33所示,点击左侧栏的Data Sources,点击Add New..
选择InfluxDB,然后在接下来的页面按图34、35填写.
(5)点击主页右上角的"+"号,选择New Dashboard,点击Add visualization,选择刚才创建的数据源.这里我就加一个电压曲线图作为演示,其他几项都是类似的.
回到InfluxDB后台,在刚刚我们查询数据的地方,按图36的操作来,然后把图37所示的区域代码给复制下来,粘贴到Grafana中(图38). 一些样式可以在右侧栏调节完成后点击Apply 和 Save.
(6)把电流和功率的也用上面类似操作做好.最终效果见图39a与39b.