bigfanofloT 发表于 2016-9-16 19:19:19

3分钟教你创建WIFI远程控制应用,图形化编程,自动代码生... ...

本帖最后由 bigfanofloT 于 2016-10-14 21:25 编辑

版权所有,转载请注明出处http://club.gizwits.com/home.php?mod=space&uid=7261对,你没有看错!!!3分钟教你创建WIFI远程控制应用,图形化编程,自动代码生成,麻麻再也不用担心我不会编程了,纯傻瓜式开发方式!机智云,物联网智能硬件平台领导者,重新定义智能设备开发!下面以智能灯为例:请看组图(下面附PDF教程下载):














生成的工程是Keil MDK的,如下点击打开。







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





这里,我们从机智云官网下载Gokit V2.1 STM32底板 微信宠物屋源码,把里面的关于底板4颗LED的驱动文件Hal_led.h和Hal_led.c文件拷贝到我们的工程中来,并添加好文件和编译路劲。



下面是关于LED的API,在Hal_led.h文件里面;

回到主函数main.c文件,把LED初始化函数放到userInit()里,当然不是必须放这里,为了规范化,建议放这里。



下面添加和LED亮灭控制有关的代码了。



MCU工程弄好后,编译并下载,这里不再赘述。下面我们去官网下载自动生成的安卓APP测试,当然不只是提供安卓APP。







下载好后打开手机“机智云APP”



注册帐号登录或者点击跳过
点击添加设备
输入你手机连接的路由器的ssid名称和密码,点击下一步


接下来长按KEY2 2S,我们使用的触发配置入网方式为长按KEY2,AirLink方式,当然用户可以自定义触发方式和配置方式。



上述步骤完成后在app上“已完成上述操作”打勾,点击下一步。这里注意,MCU程序里面目前没有RGB LED的驱动,因此忽视测试APP的提示绿灯亮,心里默数3S左右就行,不确定就多按一下。关于这个RGB LED驱动的移植请参考下期教程http://club.gizwits.com/thread-3572-1-1.html

此时app会发出配置包,并提示正在搜索设备


连接好后app会返回设备列表界面并显示出该设备


点击该设备绑定后进入控制页面

这里给出演示视频:优酷视频:http://v.youku.com/v_show/id_XMTcyNzQxNTkzMg==.html?oldhttp://v.youku.com/v_show/id_XMTcyNzQxNTkzMg==.html腾讯视频:http://static.video.qq.com/TPout.swf?vid=n03304dx3nv&auto=0http://static.video.qq.com/TPout.swf?vid=n03304dx3nv&auto=0PDF版教程下载:**** Hidden Message *****超级简单有木有,so奔走相告吧!如需交流,请在论坛发帖。附上源代码:
用户添加的部分非常少;



木木夕雨田 发表于 2017-5-25 15:51:43

..\Gizwits\gizwits_protocol.c(465): warning:#223-D: function "gizGetTimerCount" declared implicitly
      gizwitsProtocol.waitAck.sendTime = gizGetTimerCount();
..\Gizwits\gizwits_protocol.c(639): warning:#177-D: variable "lastReportTime" was declared but never referenced
      static uint32_t lastReportTime = 0;
..\Gizwits\gizwits_protocol.c(681): warning:#177-D: variable "devStatusTmp" was declared but never referenced
      devStatus_t devStatusTmp;//涓存椂璁惧鏁版嵁鐐瑰彉閲?                  ^
..\Gizwits\gizwits_protocol.c(932): warning:#223-D: function "gizGetTimerCount" declared implicitly
      if(0 == (gizGetTimerCount() % (600000)))
..\Gizwits\gizwits_protocol.c(1082): warning:#223-D: function "gizGetTimerCount" declared implicitly
      gizwitsProtocol.waitAck.sendTime = gizGetTimerCount();
..\Gizwits\gizwits_protocol.c(1158): warning:#223-D: function "gizGetTimerCount" declared implicitly
            if(SEND_MAX_TIME < (gizGetTimerCount() - gizwitsProtocol.waitAck.sendTime))
..\Gizwits\gizwits_protocol.c(1223): warning:#1029-D: __packed ignored for non-pointer parameter
static int32_t gizProtocolErrorCmd(protocolHead_t *head,errorPacketsType_t errno)
..\Gizwits\gizwits_protocol.c(1260): warning:#177-D: variable "ret" was declared but never referenced
      int32_t ret = 0;
..\Gizwits\gizwits_protocol.c(1291): warning:#223-D: function "gizGetTimerCount" declared implicitly
      uint32_t timeDelay = gizGetTimerCount();
..\Gizwits\gizwits_protocol.c(1700): warning:#223-D: function "gizwitsEventProcess" declared implicitly
            gizwitsEventProcess(&gizwitsProtocol.issuedProcessEvent, (uint8_t *)&gizwitsProtocol.gizCurrentDataPoint, sizeof(dataPoint_t));
..\Gizwits\gizwits_protocol.c(1610): warning:#177-D: variable "i" was declared but never referenced
      uint16_t i = 0;
..\Gizwits\gizwits_protocol.c(39): warning:#177-D: function "rbDelete" was declared but never referenced
static void rbDelete(rb_t* rb)
..\Gizwits\gizwits_protocol.c(321): warning:#177-D: function "gizY2X" was declared but never referenced
static uint32_t gizY2X(uint32_t ratio, int32_t addition, int32_t preValue)
..\Gizwits\gizwits_protocol.c(340): warning:#177-D: function "gizX2Y" was declared but never referenced
static int32_t gizX2Y(uint32_t ratio, int32_t addition, uint32_t preValue)
..\Gizwits\gizwits_protocol.c(359): warning:#177-D: function "gizY2XFloat" was declared but never referenced
static uint32_t gizY2XFloat(float ratio, float addition, float preValue)
..\Gizwits\gizwits_protocol.c(378): warning:#177-D: function "gizX2YFloat" was declared but never referenced
static float gizX2YFloat(float ratio, float addition, uint32_t preValue)
..\Gizwits\gizwits_protocol.c: 16 warnings, 0 errors

楼主为什么会这样呀!而且会设备配网超时

林光光1号 发表于 2016-10-26 00:54:36

深夜学习了一下,上面有一点没写上,就是在添加LED_ON(LED)。。,那个文件那里要include "hal_led.h",希望以后多出一点这类型的教程,很详细,很受用,...:lol

梅达尔多 发表于 2016-9-16 19:35:44

长按K2,进入airLink亮绿灯是微信宠物屋的设计,自助生成的代码是没有亮绿灯的。

bigfanofloT 发表于 2016-9-16 19:42:36

本帖最后由 bigfanofloT 于 2016-9-16 19:47 编辑

梅达尔多 发表于 2016-9-16 19:35
长按K2,进入airLink亮绿灯是微信宠物屋的设计,自助生成的代码是没有亮绿灯的。 ...
亮绿灯只是一个指示作用,只需要长按KEY2就行了,自动生成的测试APP没有考虑用户添加的指示方式,你看看源代码就明白了,当然你可以自己添加其他的触发方式,指示方式,例如蜂鸣器

hebmagic 发表于 2016-9-16 22:52:57

这是哪里不对了

bigfanofloT 发表于 2016-9-16 22:57:18

hebmagic 发表于 2016-9-16 22:52
这是哪里不对了

你要添加头文件,把led驱动源文件.h和.c复制到工程目录,并且添加编译路径

林光光1号 发表于 2016-9-17 00:16:55

够详细,哈哈哈:lol:lol:lol

jipin 发表于 2016-9-17 17:09:22

支持楼主,想法很好。生成编译代码之后,是否直接在后面提供编译环境下载链接,省得还要到处找编译软件下载。

bigfanofloT 发表于 2016-9-17 18:07:46

jipin 发表于 2016-9-17 17:09
支持楼主,想法很好。生成编译代码之后,是否直接在后面提供编译环境下载链接,省得还要到处找编译软件下载 ...

这个。。。用keil,代码量大了,要和谐,你懂的

pauline 发表于 2016-9-18 19:47:12

我正好在做这部分我有看到初始化部分和执行部分 但是单片机抓取数据部分怎么实现 如果有两个开关 他怎么实现开关A对A B对B   我现在下了微型宠物屋的源代码 我希望能多加两个开关就够了,可是我现在依然没搞懂怎么在开辟两路通道(抓取数据,分析数据,执行部分)

bigfanofloT 发表于 2016-9-18 19:50:12

pauline 发表于 2016-9-18 19:47
我正好在做这部分我有看到初始化部分和执行部分 但是单片机抓取数据部分怎么实现 如果有两个开关 他怎么 ...

在官网开发者中心添加2个数据点就可以了,这个例程是1个数据点的,1个数据点作为一个开关。你按照我的例程,采用云端自动生成MCU端Keil MDK工程。

安星 发表于 2016-9-19 22:40:13

写的很详细很易懂,辛苦了楼主

pauline 发表于 2016-9-20 18:35:55

如果我的设备从开始之初 原装调试就没连上过airlink之类的方法 全靠直接接入设备的wifi上 这个要怎么解决

bigfanofloT 发表于 2016-9-20 22:03:07

pauline 发表于 2016-9-20 18:35
如果我的设备从开始之初 原装调试就没连上过airlink之类的方法 全靠直接接入设备的wifi上 这个要怎么解决 ...

全靠直接接入设备的wifi上 ??请详细描述一下

anymax 发表于 2016-9-22 10:33:31

本帖最后由 anymax 于 2016-9-22 10:34 编辑

:lol:lol:lol楼主你机智云的ESP8266烧的是哪个固件呢??


智慧家居 发表于 2016-9-23 14:17:23

顶!d=====( ̄▽ ̄*)b

Xuedong 发表于 2016-9-24 15:01:47

下来学习!

LuuuuuCh 发表于 2016-9-27 10:30:05

楼主写的很是详细啊...赞

gongxiaoxin 发表于 2016-9-28 09:38:15

大赞一个~~~~~~~~~~~~~~~~~~~

molo 发表于 2016-9-28 13:56:43

看看,谢谢分享!

free_energy 发表于 2016-9-29 17:38:59

赞一个!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 3分钟教你创建WIFI远程控制应用,图形化编程,自动代码生... ...