收藏官网首页
查看: 28688|回复: 0

[求助] 从0开始做WiFi智能插座:第二步:代码移植

681

主题

740

帖子

3万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
36564
跳转到指定楼层
楼主
发表于 2019-8-1 13:19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
本帖最后由 Kara 于 2019-8-1 13:21 编辑

WIFi智能插座是IoT入门的经典案例。使用esp8266 SoC方案来做智能插座是成本最低的IoT开发案例了,以往我们有几个版本的智能插座实现方案,如使用20元+实现老房子家用插座智能化、巧用代码自动生成工具实现智能插座开发等案例,本案例将分四步,从PCB打样开始,分享如何制作一个Wifi智能插座,并录制了相关视频以供参考。
上期分享了“生成供PCB打样的光绘文件”,这期我们来讲讲如何实现代码移植(相关视频:www.bilibili.com/video/av43083286)。



[ 2.1 在机智云自助开发平台创建云端产品]
首先,在机智云自助开发平台创建新产品、数据点、生成代码包,下载代码包。
新建数据点:本案例中设置了四种数据点:继电器开关定时器开关、分钟数、定时器的值;备注很重要,可帮助理解定义的数据点的作用(详细内容见视频)
MCU/SoC开发:几秒钟可以生成代码包,下载代码包,解压缩后如下所示

其次,开始修改代码:
需要安装AiThink IDE for IoT 、

此外,开发者在移植前要确保被移植平台的硬件参数满足以下的要求:
  • A. 平台支持两个串口接口(至少一个),一个负责与wifi模组间的数据收发(必须),一个用于调试信息打印(可复用数据收发串口)。
  • B.平台支持定时器功能(1ms精确定时)。
  • C.平台支持至少2K的RAM空间(可调整环形缓冲区大小来解决此问题,但易导致数据协议的处理异常)

了解以下文件:
  • gizwits_product.c:该文件为产品相关处理函数,如gizwitsEventProcess()。
  • gizwits_product.h:该文件为gizwits_product.c的头文件,如HARDWARE_VERSION、SOFTWARE_VERSION。
  • gizwits_protocol.c:该文件为SDK API接口函数定义文件。
  • gizwits_protocol.h:该文件为gizwits_protocol.c对应头文件,相关API的接口**均在此文件中。
  • 其他文件:a) User/main.c——MCU程序入口函数所在文件,入口函数为main(void)。

导入工程文件

接下来,修改第23行至27行的代码(修改后如下图蓝色高亮部分所示),想为什么这么修改?参考:docs.gizwits.com/zh-cn/deviceDev/gokit3_DEV_SDK_Common_transplant.html  或者是看视频了解原理。

User_Main.C 文件里的代码修改

打开User_Main.C文件,删除一个按键(删除下图所示的蓝色高亮部分)
原因:由于我做的插座只有一个按键,但是代码包默认有两个按键,所以需要删除一个

因为按键只有1个,按键放在GPIO4上,所以有如下红色框框所示的修改

与此同时,需要删除一个按键的消息映射的函数(下图蓝色高亮部分需删除)

在Key初始化的函数当中,删除“一个按键的初始化”(下图蓝色高亮部分需删除)

gizwits_product.h文件里的代码修改

增加一个全局变量(用于标识继电器开光和定时器开关)
需要在gizwits_product.c文件中初始化该全局变量

短按实现继电器开关状态的变化,则按照下图修改代码 Status[0]=!Status[0]

最后,保存,编译,看看是否正确无误。

接下来,设置长按的时候进入一键配置入网的模式
User_Main.C文件中
修改成Airlink模式,默认长按按键的时候继电器打开

在Key的初始化中增加几行代码
配置蓝色LED灯(GPIO2)为输出
配置5V继电器(GPIO5)为输出
继电器和LED默认是关闭状态(引脚拉高)

gizwits_product.c文件修改

增加代码:实现控制继电器的开关

增加代码:实现定时器的开关

增加代码:获取计时器的事件


增加代码:**和定义标识变量


增加代码:在user_handle函数中


多少秒进入User_Handle,这里改成50毫秒


点击保存,Build Project


相关推荐:
从0开始做WiFi智能插座:
  • 第一步:生成供PCB打样的光绘文件
基于ESP8266+机智云的低成本SOC远程孵化箱:(一)功能实现和材料准备(二)D3推送服务之邮件推送设置
(三)孵化箱制作和孵化记录

文章由 硬件开发平台 机智云 www.gizwits.com 整理发布
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表