首页 > 评测 > 带你玩转物联网——机智云IOT KIT评测

带你玩转物联网——机智云IOT KIT评测

  • 作者:徐亚平
  • 来源:21ic
  • [导读]
  • 说起国内智能硬件厂商,避不开机智云。机智云可以说是国内最早一批做智能硬件云服务的团队。而今天评测的就是机智云 的IOTKIT 开发板套装。

         {

                       Motor_Control(status*4,0);

         }

        else if (status < 5)

        {

                      Motor_Control(0,(10-status)*4);

        }

}

通过听声音能够分辨出各个不同档位的不同的电机运转声音,电机控制和调整完毕,工作正常。

但本人LED 调节的功能出现异常,无法正常调节!通过查对电路,发现电路板的电路和手册给出的电路图相同,最终找到LED 的三极管控制开关的信号来自 A0,也即单片机的PA0 控制 (高电平有效)。

查代码,LED 的控制是由函数 LED_RGB_Control() 完成,并由变量Set_LedStatus表征LED 开关。发现初始化代码void RGB_LED_Init(void) 中并没有初始化 PA0,于是先加上初始化 PA0;并置高电平。发现还有设置不了颜色的情况,于是在函数void LED_RGB_Control(uint8_t R, uint8_t G, uint8_t B) 中增加 Set_LedStatus = 0; // 清除设置标志

大体能够控制三色LED 灯。

怀疑开发板例程不该犯上面的错误!今天在资料包里看到了关于新板的固件代码,特意查了一下,原来在 GoKit 的背面有个V2.3,正好跟新固件里说明的版本一致。看资料还是不够仔细呀!嗯,决定再改用新固件来再测试一下。

编译更新固件,打开客户端软件,控制正常,唯有红外探测没有反应。

试着修改代码,在main.C 的函数void GizWits_GatherSensorData(void)里增加:

ReadTypeDef.Infrared = IR_Handle();

编译更新固件,打开客户端软件,当红外探测指示灯变化时,客户端的红外探测状态跟着变化了。

10.png

固件修改测试

参考手册关于程序中添加和删除应用的方法 (以新固件为基础)。

先设置一个控制量。拟一个控制量控制 STUNO 板的4个LED灯。

具体修改:在文件gokit.h内修改结构体定义:

在结构体ReadTypeDef_t 中增加 uint8_t UNO_LED;

在结构体WirteTypeDef_t 最后增加 uint8_t UNO_LED;

在枚举 Attr_FlagsTypeDef 最后增加 SetUNO_LED = 0x40,

在main.c 的函数void GizWits_ControlDeviceHandle() 里添加

if( (WirteTypeDef.Attr_Flags & SetUNO_LED) == SetUNO_LED) {

SetUno_LED(WirteTypeDef.UNO_LED);

}

在函数 void GizWits_GatherSensorData(void) 里添加

ReadTypeDef.UNO_LED = GetUno_LED();

在Hal_led.c 里添加宏定义和函数以便于上面的函数调用

111.jpg

编译更新固件,打开客户端软件,原有的都控制正常,但不见新增加的 Uno_LED 控制。莫非需要再修改这个IOE Demo app才能实现?

打开IOE Demo,发现app里显示和控制的变量来自于类JSONObject,但是没有找到它的定义。看来还不容易修改客户端软件,那就测试到这里,等后面进一步学习吧。

12.png

  • 本文系21ic原创,未经许可禁止转载!

网友评论