Part.01硬件框架
硬件主要接线说明:单片机串口2(即PA2 PA3)接4G模组协议串口;单片机PA15,PB3-PB9一共8组输出信号接继电器(继电器采用低电平有效);通过继电器的开关来实现对交流220V信号的开关控制,从而实现对交流接触器的通断控制。

硬件组装实物参考图:
硬件说明:
1、单片机采用STM32F103C8T6核心板一块

2、带机智云gagent固件的GA211模组一个,购买链接:
https://item.taobao.com/item.htm?id=607405418406

3.8路5V继电器模组(带光偶隔离,信号均采用低电平有效,通过跳冒调整)

4、交流接触器

Part.02云端部署
https://developer.gizwits.com,点击左上角智能产品后创建,创建一个项目。

智能家居产品。
选择好产品分类,分类不影响开发,方案需要选择自定义方案,不能选择标准方案。

输入产品名称,例如:花园4G远程控制器,类型选择移动网络或者WiFi都可以,不影响后续开发,数据传输定长变长都可以,功耗选择正常,配置好后点击创建,完成产品的创建。


产品创建结束后需要进行数据点的创建,数据点决定改产品需要实现的功能,可根据自己的需求进行修改。

创建一个上花园喷淋数据点,显示名称就是APP显示的名称,标识名是需要写入程序的,需要用英文开头,可以搭配数字及下划线,数据点采用布尔可写。(自己需要新增功能,比如创建2位小数的温度数据点,可以创建数值可只读,分别率0.01,其他默认即可)

同样的方式创建,下花园喷淋,上花园灯光,下花园灯光,上花园鱼池循环泵,下花园鱼池循环泵,上院鱼池紫光灯,下院鱼池紫光灯,喷淋时间设置等数据点,可根据自己的需求自行创建。

2、移动应用页面编辑
在不使用公版APP,又不想开发代码开发APP的情况下,可选择云端的APP快速开发来进行APP快速生成,移动应用创建详细教程可参考帖子:
https://club.gizwits.com/thread-170135-1-1.html
创建好移动应用后,点击产品开发页面顶上的控制页面导航栏。

点击关联应用(需要先创建好应用),选择之前创建好的应用,点击确定,关联好应用。

打开单设备分享

配置智能场景,选择所有数据点。方便后续智能场景操作。

APP布局修改

修改顺序,图标大小等参数后点击保存,中间是不会随着改变而改变的,仅作为参考。

回到应用开发页面,点击应用构建,构建测试版,构建完成后下载APP即可。

3、单片机代码生成与下载
按照如图所示生成STM32f103c8x代码

下载代码到电脑备用,到此云顿部署结束。

Part.03单片机代码开发
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文件,将注释的#defineOTA_ENABLE 代码打开,让BootLoader生效。

点击魔法标,配置下载起始地址及大小(此处由于需要用到断电状态数据缓存,所以预留2K地址作为缓存空间)。

配置flash烧写地址有效

配置下载器擦除固定区间

修改变更的flash起始地址及大小

定义一个数组用于存储开关状态及喷淋时间,以便于后续断电记忆数据处理。


在gizwits_product.c新增flash读写程序。

处理云端下发数据,数据处理在gizwitsEventProcess函数。

断电记忆,开机读取存储在flash中的参数。


喷淋自动关闭时间处理。

喷淋关闭操作

如编译过程中出现was set but never used告警,只需要在对应的变量前加volatile即可,否则可能出现变量被屏蔽的情况。远程升级:可参考生成代码根目录下的OTA文档操作。
Part.04开源项目实物及APP


-
控制器
+关注
关注
114文章
17877浏览量
195095 -
STM32
+关注
关注
2313文章
11195浏览量
374612 -
机智云
+关注
关注
3文章
650浏览量
27821
发布评论请先 登录
基于STM32+机智云物联网平台的家电状态显示及控制系统
机友分享 | 机智云小程序启蒙:WebSocket网页控制
评测:STM32F769I-DISCO接入机智云,实现IoT开发远程控制等功能
十分钟开发物联网:远程甲醛监控(4G模组)
ESP8266开发板+机智云IoT+远程控制的智能风扇
基于机智云物联网平台与4G DTU远程车库门
STM32F40探索者开发板如何实现基础的远程检测以及控制
空调4G远程控制器能解决哪些问题
怎样通过4G网络实现PLC远程控制
基于STM32+机智云的花园4G远程控制器开发全教程
评论