机智云代码移植_从0开始做WiFi智能插座:第二步:代码移植

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智能插座:

基于ESP8266+机智云的低成本SOC远程孵化箱:

扫一扫,开启您的IoT开发之旅

文章由 硬件开发平台 机智云 www.gizwits.com 整理发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能云插座 使用机智云开源APP之前,需要先在机智云开发平台创建您自己的产品和应用。 开源App需要使用您申请的AppId、AppSecret以及您自己的产品ProductKey才能正常运行。 具体申请流程请参见:http://docs.gizwits.com/hc/。 上述信息申请好之后,在代码中请找到"your_app_id"、"your_app_secret"、"your_product_key"字符串相应的替换。 Gizwits Power Socket Android Demo App XPGWifiSDK 版本号 1.6.1.15123015 功能介绍 这是一款使用XPGWifiSDK的开源代码示例APP,可以帮助开发者快速入手,使用XPGWifiSDK开发连接机智云的物联APP。该APP针对的是智能家电中的插座类产品。包括了以下几点插座常用功能: ▪ 插座电源的开关 ▪ 插座定时开关 ▪ 插座倒计时开关 ▪ 定时周重复 如果开发者希望开发的设备与以上功能类似,可参考或直接使用该APP进行修改进行快速开发自己的智能家电App。 以下功能是机智云开源App的几个通用功能,除UI有些许差异外,流程和代码都几乎一致: ▪ 机智云账户系统的注册、登陆、修改密码、注销等功能 ▪ 机智云设备管理系统的AirLink配置入网、SoftAP配置入网,设备与账号绑定、解绑定,修改设备别名等功能 ▪ 机智云设备的登陆,控制指令发送,状态接收,设备连接断开等功能 另外,因为该项目并没有相对应的实体硬件设备供开发者使用,因此还提供了扫描虚拟设备功能,通过扫描机智云实验室内相对应的虚拟设备,可进行设备的绑定和控制等功能。同时可免费申请gokit进行设备的配置入网和绑定等流程。 项目依赖和安装 ▪ XPGWifiSDK的jar包和支持库 登录机智云官方网站http://gizwits.com的开发者中心,下载并解压最新版本的SDK。 下载后,将解压后的目录拷贝到复制到 Android 项目 libs 目录即可。 ▪ Gokit设备 使用机智云开发的Gokit设备并烧写相对应的产品标识码,可以体验设备配置上线等功能。 ▪ 虚拟设备 使用机智云实验室的相对应虚拟设备,可以体验设备指令收发,状态的获取等功能。 项目工程结构 ▪ 包结构说明 com.gizwits.powersocket -智能云插座独有代码,包含控制部分和侧边栏部分 com.gizwits.powersocket.activity.control -智能云插座控制界面activity com.gizwits.powersocket.activity.slipbar -智能云插座侧边栏activity com.gizwits.framework -机智云设备开源APP框架,包含除控制界面Activity外的代码,暂时机智云实验室中的其他开源APP所用框架一致 com.gizwits.framework.activity -机智云设备开源APP框架相关activity com.gizwits.framework.adapter -机智云设备开源APP框架相关数据适配器 com.gizwits.framework.config -机智云设备开源APP框架配置类 com.gizwits.framework.entity -机智云设备开源APP框架实体类 com.gizwits.framework.sdk -机智云设备开源APP框架操作SDK相关类 com.gizwits.framework.utils -机智云设备开源APP框架工具类 com.gizwits.framework.widget -机智云设备开源APP框架自定义控件 com.gizwits.framework.XpgApplication -机智云设备开源APP框架自定义Application com.xpg.XXX -机智云通用开发API zxing -第三方二维码扫描控件 使用流程 ▪ 虚拟设备+app使用流程(体验指令发、状态获取等流程) 1.在机智云官网上注册并登录帐号 2.使用机智云实验室里面的智能云插座启动虚拟设备 3.在app上注册并登录帐号 4.通过扫描网页上的二维码添加虚拟设备 5.进入控制界面与虚拟设备进行交互 ▪ gokit+app使用流程(体验配置、绑定实体设备等流程) 1.免费申请gokit,http://gizwits.com/zh-cn/gokit 2.下载gokit开源代码并按说明替换为智能云插座的产品标识码 3.在app上注册并登录帐号 4.通过我要配置gokit按钮,使用Airlink或SoftAP模式配置gokit入网 5.绑定gokit 6.进入控制界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值