收藏官网首页
查看: 173714|回复: 250

[资料] 3分钟教你创建手机APP控制全彩智能灯泡应用,图形化编程!

 

321

主题

1054

帖子

4499

积分

论坛元老

Rank: 8Rank: 8

积分
4499
QQ
发表于 2016-9-21 19:34:46 | 显示全部楼层 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
本帖最后由 bigfanofloT 于 2016-9-22 22:33 编辑

版权所有,转载请注明出处http://club.gizwits.com/home.php?mod=space&uid=7261
对,你没有看错!!!3分钟教你创建手机APP控制全彩智能灯泡应用图形化编程,自动代码生成,麻麻再也不用担心我不会编程了,纯傻瓜式开发方式!机智云,物联网智能硬件平台领导者,重新定义智能设备开发
       本应用基于机智云gokitV2.1硬件平台,演示了如何通过手机APP下发数值量和枚举值控制一个RGB全彩LED的应用。
请看组图后面附PDF版教程和源码下载)

首先在机智云开发者中心创建产品。

云端创建产品

云端创建产品

云端项目

云端项目
填写好产品信息后新建数据点。

云端新建数据点

云端新建数据点

我们建立如下数据点。

注意枚举的LED颜色需要用英文逗号隔开,不能有空格!!!

云端数据点

云端数据点
然后我们在开发向导里面,生成STM32工程。有关新建产品、建立数据点、生成单片机工程等步骤这里不再赘述,不明白的请参考前期教程:
1.3分钟教你创建WIFI远程控制应用:
2. 3分钟教你创建手机APP远程温度监控应用:

下载生成的STM32工程并解压,生成的工程是Keil MDK的,如下点击打开。
工程-打开1.png
工程-打开2.png

若是Keil5打开工程,我们选择迁移packs。Keil4则没有这一步操作。
keil打开.png

工程目录.png

这里,我们从机智云官网下载Gokit V2.1 STM32底板 微信宠物屋源码,把里面的关于底板RGB5050 全彩LED的驱动文件Hal_rgb.h和Hal_rgb.c文件拷贝到我们的工程中来,并添加好文件和编译路劲。这里我把delay.c和delay.h也添加进来,以备使用(实际上没有使用到~~)。关于这些驱动文件可以在机智云官网下载或者参考前期教程。

Main.c包含了RGB驱动头文件。
主函数头文件包含.png
回到主函数main.c文件,把RGB初始化函数放到userInit()里,当然不是必须放这里,为了规范化,建议放这里。
主函数-外设初始化.png

下面添加和RGB颜色控制有关的代码了,在gizwits_product.c里面。

首先是包含RGB驱动头文件。
产品函数-头文件包含.png

这里是对于手机APP下发枚举颜色变量的处理,需要用户添加相关的处理函数。
产品函数-枚举变量处理.png
产品函数-枚举变量处理2.png
这些枚举变量是在这里定义的(云端自动生成的):
产品函数-颜色枚举变量.png
看到这里,我们可以回头看看前面云端定义的枚举颜色变量数据点。

接下来是手机APP下发数值量的处理:
产品函数-数值量处理.png
MCU工程弄好后,编译并下载,这里不再赘述,不清楚的参考前期教程。

下面我们去官网下载自动生成的安卓APP测试,当然不只是提供安卓APP。
11.png
22.png
33.png

关于手机APP连接路由器的教程这里不再赘述,请参考前期教程。

同样我们使用的触发配置入网方式为长按KEY2,为了配合生成的测试APP的入网提示,这里添加了RGB LED作为指示灯。我们采用的是AirLink方式,当然用户可以自定义触发方式和配置方式。
主函数-按键提示灯.png

一切就绪后打开串口助手可以看到日志:
串口调试-初始化过程.png
智能灯APP-登录.png
智能灯APP-菜单.png

这里给出演示视频:
优酷链接:
腾讯视频:
附件下载:
1.PDF版教程下载:
游客,如果您要查看本帖隐藏内容请回复
2.本例程STM32 keil5工程源码:
游客,如果您要查看本帖隐藏内容请回复
3.Gokit V2.1底板驱动程序打包下载:
游客,如果您要查看本帖隐藏内容请回复

超级简单有木有,so奔走相告吧




1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

12

主题

55

帖子

700

积分

高级会员

Rank: 4

积分
700
发表于 2016-11-2 10:39:27 | 显示全部楼层
/***发现楼主这个代码只能分别控制红绿蓝三个灯的状态(控制一个其它两个就被清零了)***/
case EVENT_LED_G:
        currentDataPoint.valueLED_G = dataPointPtr->valueLED_G;
        GIZWITS_LOG("Evt:EVENT_LED_G %d\n",currentDataPoint.valueLED_G);
            //ledRgbControl(0, currentDataPoint.valueLED_G, 0);//这样写就只能单独控制RGB三个灯的颜色,如红色 绿色 蓝色
            ledRgbControl(currentDataPoint.valueLED_R, currentDataPoint.valueLED_G, currentDataPoint.valueLED_B);//改成这样就可以混合控制,比如 粉色 紫色 等
        //user handle

12

主题

55

帖子

700

积分

高级会员

Rank: 4

积分
700
发表于 2016-11-2 16:18:16 | 显示全部楼层
bigfanofloT 发表于 2016-11-2 12:51
对呀,仅供演示,应用根据实际需要即可

楼主,你的教程非常好!根据你的教程,我已经学会了app端下发命令来控制设备;但上传状态及数据不会?期待你的更新啊