|
4G花园远程控制器
本开源教程主要演示如何利用 机智云平台快速开发一个4G花园远程控制器,主要实现功能有:远程控制8组开关,对其中2主开关进行限时关闭控制,同步开关状态(如有传感器,可在同步开关状态地方进行传感器的定时上报,实现传感器采集),通过云端快速构建APP,实现场景功能。
一、硬件框架 硬件主要接线说明:单片机串口2(即PA2 PA3)接4G模组协议串口;单片机PA15PB3-PB9一共8组输出信号接继电器(继电器采用低电平有效);通过继电器的开关来实现对交流220V信号的开关控制,从而实现对交流接触器的通断控制。
硬件说明: 1.单片机采用 STM32F103C8T6核心板一块 3.8路5V继电器模组(带光偶隔离,信号均采用低电平有效,通过跳冒调整) 4.交流接触器 二、云端部署 选择好产品分类,分类不影响开发,方案需要选择自定义方案,不能选择标准方案。 输入产品名称,例如:花园4G远程控制器,类型选择移动网络或者WiFi都可以,不影响后续开发,数据传输定长变长都可以,功耗选择正常,配置好后点击创建,完成产品的创建。 产品创建结束后需要进行数据点的创建,数据点决定改产品需要实现的功能,可根据自己的需求进行修改。 创建一个上花园喷淋数据点,显示名称就是APP显示的名称,标识名是需要写入程序的,需要用英文开头,可以搭配数字及下划线,数据点采用布尔可写。(自己需要新增功能,比如创建2位小数的温度数据点,可以创建数值可只读,分别率0.01,其他默认即可) 同样的方式创建,下花园喷淋,上花园灯光,下花园灯光,上花园鱼池循环泵,下花园鱼池循环泵,上院鱼池紫光灯,下院鱼池紫光灯,喷淋时间设置等数据点,可根据自己的需求自行创建。 2.移动应用页面编辑 创建好移动应用后,点击产品开发页面顶上的控制页面导航栏 点击关联应用(需要先创建好应用),选择之前创建好的应用,点击确定,关联好应用。 打开单设备分享 配置智能场景,选择所有数据点。方便后续智能场景操作。 APP布局修改 修改顺序,图标大小等参数后点击保存,中间是不会随着改变而改变的,仅作为参考。 回到应用开发页面,点击应用构建,构建测试版,构建完成后下载APP即可。 3.单片机代码生成与下载 下载代码到电脑备用,到此云顿部署结束。 三、单片机代码开发 1.CubeMX初始化配置 将下载的代码进行解压,找到STM32F103C8x.ioc文件,将其打开(需提前安装CubeMX,否则不能打开该项目文件) 更新库文件使其一致 按照如图所示,配置上院喷淋引脚, 同样的方式配置其它输出引脚 为每个文件都生成.c.h文件,方便后续代码整理 点击generate code,生成代码,出现库提示就点确认 可选择打开项目文件或者关闭文件都可以,打开项目文件需要电脑安装keilARM,到此CubeMX配置结束 2. Bootloder文件烧录 烧录Bootloder文件是为了方便后续进行远程升级系统,详细可参考代码根目录下的《OTA使用教程.html》文件说明。将解压过后的..\Bootloder\Project文件夹下的 gokit_mcu_stm32.uvprojx文件用keil ARM打开。 打开项目后,点击魔法标进入target,配置好烧录大小,11*1024=11264=0x2C00 点击Linker,配置Flash 烧写地址有效 点击debug,选择对应的下载器 下载模式选择按块擦除 Flash 区间 编译烧录Bootloader固件 3.单片机APP代码修改烧录 打开之前通过CubeMX初始化后的代码 找到gizwits_protocol.h文件,将注释的#define OTA_ENABLE 代码打开,让BootLoader生效 点击魔法标,配置下载起始地址及大小(此处由于需要用到断电状态数据缓存,所以预留2K地址作为缓存空间)。 配置flash烧写地址有效 配置下载器擦除固定区间 修改变更的flash起始地址及大小 定义一个数组用于存储开关状态及喷淋时间,以便于后续断电记忆数据处理。 在gizwits_product.c新增flash读写程序 处理云端下发数据,数据处理在gizwitsEventProcess函数。
断电记忆,开机读取存储在flash中的参数。 喷淋自动关闭时间处理。 喷淋关闭操作 如编译过程中出现was set but never used告警,只需要在对应的变量前加volatile即可,否则可能出现变量被屏蔽的情况。 远程升级:可参考生成代码根目录下的OTA文档操作。 开源项目实物及APP 硬件组装实物参考图:
APP控制页面
开源代码:通过网盘分享的文件:花园远程控制器2026
|