1.问:为什么不能绑定我的设备?
答:绑定不成功一般有两种情况,具体可查看输出的日志:
{"error_message": "token invalid!","error_code": 9004,"detail_message": null}
该种情况为token输入错误的字段。
{"error_message": "token expired!","error_code": 9006,"detail_message": null}
该种情况为token已过期。
遇到这两种情况,请重新调用账号登录接口,获取到正确的token后再执行设备绑定。
2.问:配置成功后,App设备列表找不到设备?
答:因为开源的app里面都做了设备列表过滤,只能显示当前App对应的ProductKey的设备,因此不同Productkey的设备是没办法在列表中显示的。要显示目标设备,需要修改源代码的ProductKey与目标设备一致。
3.问:IOE Demo显示“未知设备\不支持该设备\下载配置文件失败”是什么?怎么处理?
答:IOE Demo加载了设备列表以后,会自动下载设备的配置文件,SDK通过该配置文件进行JSON和二进制数据的解析,这样才能正确的控制设备和获取设备状态。如果IOE Demo因为网络问题未下载到对应设备的配置文件,或者云端无法找到该设备的配置文件,就会出现该句提示,或者提示“下载配置文件失败”。
4.问:App怎样更新JSON配置文件?
答:更新有两种方式:
一是SDK调用获取设备列表的接口getBoundDevices,SDK会根据传入的ProductKey自动下载配置文件,如果已下载,SDK不会自动更新。
二是调用更新配置文件接口updateDeviceFromServer,SDK会根据传入的ProductKey下载配置文件,每次下载成功都会覆盖原文件。
5.问:开源App要怎样改动才能控制我的设备?
答:
1.修改源码的ProductKey和AppID与自己的设备一致。
2.修改源码的数据点标识名与自己的设备一致。
3.根据自己的设备功能修改UI。
6.问:如何发送控制设备指令?
答:机智云App发送设备控制指令的流程如下:App写入JSON格式指令->SDK按照配置文件转换为二进制指令->发给设备。控制指令JSON格式如下,以控制gokit的红色灯开关为例:
{“entity0”:{"LED_OnOff":true},“cmd":1}
该条指令控制gokit的红色灯开启,其中”entity0”代表设备名关键字,目前所有设备都一样,每一条控制指令都应带上该字段。“LED_OnOff”代表gokit设备控制红色灯开关的数据点标识名。”cmd”为该条指令类型,1代表写入,通常情况下,所有设备都一样,每一条控制指令都应带上该字段。
7.问:为什么发{“cmd”:2}获取不到设备状态?
答:只要设备按照机智云生成的mcu串口协议文档实现了以后,就能正常获取到设备状态。出现这个问题,要检查一下自己的mcu是否正确实现了机智云的串口协议文档哦。
8.问:App怎么获取和写入binary数据?
答:
获取binary数据:
获取Binary数据通过didReceiveData回调中获取”binary”关键字下的数据,获取到的值是一个byte数组。
发送binary数据:
发送Binary较之获取比较麻烦,把需要发送的指令字节数组,通过系统原生的Base64转换以后,再调用设备的write方法发送。 如Android发送“binary”的代码:
byte []input = ByteUtils.StringToBytes(sendvalue);
String value = new String(Base64.encode(input));
final JSONObject jsonsend = new JSONObject();
JSONObject jsonparam = new JSONObject();
jsonsend.put("cmd", 1);
jsonparam.put(key, value);
jsonsend.put(action, jsonparam);
xpgWifiDevice.write(jsonsend.toString());
9.问:开发Andrdoid App时候遇到崩溃,日志提示找不到库文件?
答:机智云的SDK由XPGWifiSDK.jar和libXPGConnect.so组成。使用的的时候要注意是否正确加载了SDK包。libXPGConnect.so需要放置在”工程/libs/armeabi/“目录下。
10.问:gokit的针脚定义是什么?
11.问:Arduino底板的原理图有吗?
12.问:gokit上的传感器有哪些?有什么作用?
答:gokit应用板板载了正反转可调速电机马达、温湿度传感器、红外感应器、RGB全彩LED灯,另外增加了OLED扩展接口,你可以为GoKit配上一块显示屏。WiFi模块方面,目前已经有二十几家国内厂商为机智云做了兼容。而且,现在所有开发者都可以拿到开发协议自行开发适配。
13.问:gokit怎样烧写固件和编程?
14.问:Arduino底板和stm32底板的异同是什么?
答:
stm32底板
采用STM32F103作为主控MCU,STM32F103是32bit ARM芯片,主频最高72MHz,Flash大小为128k bytes,支持usb接口。
开发IDE为Keil,也可以用Arduino IDE。
Arduino底板
采用ATmega328P作为主控MCU,ATmega328P是一个0bit AVR芯片,主频20MHz,Flash大小为32k bytes,无usb接口。
开发IDE为Arduino IDE。
两个底板使用的gokit扩展板是一致的。开发难度上,Arduino要比Stm32容易上手。
15.问:gokit的一代和二代有什么异同?
答:
1、一代采用STM32103F作为主控芯片,WiFi模块分别有庆科3162和汉枫LPB-100.板子载有温湿度传感器、小型马达、红外感应,预留5个Key键和扩展口。无论您是有经验stm32开发者还是小白入门,该开发板完全可以满足实际物联网案例开发。
2、二代Gokit是基于一代Gokit上改进的,主控芯片板子分两块:底板和功能板。底板的设计采用arduino标准I/O接口设计,主控芯片分别有:STM32F103f和arduino AVR ATMEGA328P-AU 。WiFi模块仍然有有两款可以选择:庆科3162和汉枫LPB-100。功能板上的传感器与一代一致。拿到Gokit2代的小伙伴们可以在arduino IDE上对MCU进行编程开发。可见Gokit2代比Gokit1代扩展性更强,开发更方便。
16.问:gokit的操作步骤是怎样的?
答:
1.下载并安装ioedemo;
2.使用USB电源线为gokit供电;
3.手机接入WiFi网络,打开IOE Demo,主界面点击“菜单”,选择“添加设备”;
4.按GoKit上的“Key2”按钮(STM32底板:长按;Arduino底板:短按),设备绿灯闪烁表示进入AirLink配置模式;
5.App上输入你使用的WiFi网络密码并点击“配置”,等待GoKit接入WiFi网络。
6.根据Aapp提示绑定GoKit。
7.点击“微信宠物屋”登录GoKit。
8.gokit连入网络后,使用微信扫描gokit盒身上的二维码可用微信绑定和控制GoKit。
17.问:虚拟设备调试成功后,怎样开发自己的mcu?
答:
1.mcu通过串口连接已烧写机智云GAgent固件的Wi-Fi模块。
2.根据机智云官网生成的自己产品的《XXX机智云接入串口通信协议文档》实现与Wi-Fi模块的通信。
3.使用IOE Demo测试自己的MCU。
18.问:HF-LPB100的针脚定义是什么?
19.问:EMW3162的针脚定义是什么?
20.问:怎样烧写gagent?
21.问:Wi-Fi模块的指示灯状态代表什么?
答:
+--------------------------------------------------------------------------------+
+ GAgent 信号灯表达信息 +
+ wifi模组上有一盏红灯和绿灯表达信息如下 +
+ ( 1:亮 0:灭 X:闪烁 ) +
+-------------------------------------------------------------------------------+
+ 红灯 绿灯 模组信息 +
+ X 0 wifi模组红灯闪,20s 之后红绿灯亮2s接着重启Wi-Fi模组 +
+ 0 1 wifi模组尝试接入AP. +
+ 1 0 wifi模组处于SoftAp模式. +
+ 1 X wifi模组SoftAp和Station都没开启. +
+ 1 1 wifi模组成功接入AP但是还没连接入云端. +
+ X X wifi模组红绿灯交叉闪烁,模组成功接入云端. +
+------------------------------------------------------------------------------------------+
22.问:机智云现在支持什么模块?
答:目前支持GAgent的模块有庆科的EMW3162和汉枫的LBP100,所需要的GAgent可以在
机智云官网上下载,烧写固件后则可正常接入机智云。另外,还可以联系官方客服,签署相关协议后,可获得通信协议等资源,开发属于自己模块的GAgent。
23.问:wifi模块怎么连接云端?
答:如果使用的Wi-Fi模块是庆科的EMW3162和汉枫的LBP100,可在
机智云官网上下载接入机智云所需要GAgent固件,烧写固件后则可正常接入机智云。另外,还可以联系官方客服,签署相关协议后,可获得通信协议等资源,开发属于自己模块的GAgent来接入云端。Wi-Fi模块需要先配置一个能上网的路由器,接入以后会自动连接云端,并在云端注册。
24.问:模块ap模式的密码是什么?
答:烧写了GAgent固件的模块,或者使用机智云协议的模块,AP模式的SSID均为”XPG-GAgent-xxxx”,其中”xxxx”为Wi-Fi模块的物理地址后四位,初始密码为”123456789”。
25.问:openapi的接口有什么限制?
答:同一个IP地址1秒内只能访问5次,超过5次的请求会抛弃,直到下一秒。
26.问:我调用openapi为什么会返回错误信息?
答:一般来说,返回错误信息有以下几个原因:
1.请求的HEADER没填写正确。
2.请求的类型不正确,POST或者GET要分清楚。
3.部分接口需要的TOKEN已过期。
4.参数不正确。
5.请求的JSON数据不正确。
27.问:TOKEN的有效期是多久?
答:7天
28.问:Demo App如何下载?是通用的吗?
答:Demo App可通过
机智云下载中心下载。因为Demo App做了界面空间和通讯协议自适应,所以机智云平台上的所有产品用的都是同一个Demo App,不需要另外下载。
29.问:如何创建产品?
30.问:虚拟设备怎么使用?
答:
1.在机智云官网产品管理页面打开虚拟设备页面。
2.点击启动虚拟设备,等待虚拟设备登录成功,如登录失败,请再次打开。
3.点击扫码控制设备,弹出虚拟设备二维码窗口。
4.打开手机端IOE Demo,打开菜单栏,点击“二维码扫描”选项,打开扫描窗口。
5.用App扫描网页端的二维码,扫描成功后,自动执行设备绑定,成功后自动返回设备列表。
6.App点击设备列表中的虚拟设备,则可正常登录虚拟设备了。
7.改变App上的控件,可看到网页端同时变化;改变网页端的空间,点击推送,可看到App同时变化。
31.问:机智云支持图片、音频和视频吗?
答:机智云目前尚未支持图片、音频和视频等流媒体。
32.问:如何删除设备或模版?
答:基于安全考虑,避免已上线的设备被删除,机智云未提供删除设备和模版的功能。
33.问:如何申请Gokit?
答:目前Gokit开发套件免费申请,具体可参考
机智云官网说明。
34.问:数据透传要怎么做?
答:因机智云推荐使用数据点的方式来传输数据,因此尚不提供真正意义上的透传功能。可以使用扩展类型的数据点,自行封装和解析数据,从而达到透传的目的。
35.问:OTA要怎么做?
答:在机智云官网产品管理页面,有固件升级(OTA)功能。产品发布以后,如果有新的固件需要更新,可使用该功能进行固件更新。目前,OTA仅支持Wi-Fi模块固件的更新,MCU还未支持。升级流程如下:
1.在OTA页面点击添加固件。
2.按要求填写固件资料,上传固件,并点击创建。
3.点击推送。
4.设定推送规则。
5.点击推送,则开始固件推送,Wi-Fi模块收到推送通知以后,会自动获取新固件并自动升级。
36.问:Onboarding是什么?
答:用户将一款基于Wi-Fi的物联网设备配置连接上路由器的过程称为Onboarding。新设备第一次使用时需要知道路由器的账号和密码,以通过路由器连接互联网。由于大多数的物联网设备没有自带的屏幕和键盘,所以需要通过智能手机向设备发送路由器的SSID和密码,这个过程机智云称为Onboarding。机智云提供的Wi-Fi设备接入SDK中已经内置了此配置的功能。机智云的Onboarding目前支持AirLink和Soft AP令中方式。
37.问:AirLink是什么?
答:机智云推出的实现Onboarding的一套技术名称,兼容了多个Wi-Fi模块厂商的 Smart-Config协议以及一套良好用户体验的标准Onboarding操作流程,机智云的Wi-Fi 设备接入SDK已经内置AirLink技术。实现原理是通过手机端发送包含路由器SSID和密码的特定的UDP广播,Wi-Fi模块接受后根据广播包含的信息连接目标路由器。
38.问:SoftAP是什么?
答:由于目前各个Wi-Fi模块厂商的Smart Config协议均未完全成熟,也不支持5G路由器信号。机智云在提供了AirLink配置模式的同时也支持SoftAP模式配置设备接入路由器。当设备进入SoftAP配置模式时,设备本身将成为一个AP,智能手机可直接与设备进行连接,然后在手机上的界面上输入路由器的SSID和密码,设备接收到信息的时候会自动尝试连接路由器,连接成功则自动切换到正常使用的模式。
39.问:AppID是什么?
答:AppID是应用标识码。当开发者需要为一款智能产品开发应用(包括iOS、Android、Web应用等)时,后台会自动生成一个AppID,并与此设备进行关联。应用开发时需要填入此AppID。每个AppID对应的用户系统都是独立的,也就是在AppID A对应的App注册的用户,无法在AppID B对应的App中登录,需要重新注册并绑定设备。应用标识码(ProductKey )和产品标识码(AppID)在产品创建时同时生成,但两者之间没有直接的对应关系,一个AppID可以对应多个ProductKey,一个ProductKey也可以对应多个AppID。
40.问:ProductKey是什么?
答:ProductKey是产品标识码,开发者通过机智云后台创建新产品后,自动生成的一个32位字符串。在机智云的数据库中是一个唯一的号码,开发者完成开发写入设备主控MCU后,机智云通过此标识码对设备进行识别并自动完成注册。使用机智云的SDK开发App时,也需要使用到该ProductKey来对设备列表进行过滤,让App只能搜索到对应的设备,而不会获取到属于别的产品的设备。一个ProductKey对应的是一个产品,而不是只对应该产品的单个设备。例如一个ProductKey对应的是某款净化器,生产出来的该款净化器使用的都是同一个ProductKey,而不是一台一个ProductKey。
41.问:did是什么?
答:did是设备号(Device ID),当一个设备初次接入机智云时,机智云自动根据ProductKey以及设备Wi-Fi模块MAC地址为此设备注册一个did,此did全网唯一,用于与用户的绑定及后续远程控制操作。did设计的初衷是给每台设备一个唯一标识码,远程控制是通过该唯一标识码识别目标设备,同时,出于安全性考虑,该设备号需要与用户账号绑定才能远程控制。另外,可以通过重置模块的方式,让模块重新在云端注册并生成新的did,这样可以让误绑定的用户无法再控制目标设备。
42.问:passcode是什么?
答:passcode是设备通行证,用于校验用户的绑定/控制权限。设备初次上线时,Wi-Fi模块会生成一个passcode存入设备并上传云端,当用户发起设备绑定时,只要是合法操作即可获取此通行证,通过此通行证可以绑定设备,该通行证的获取时限可以在MCU串口协议中指定,如果设定了获取时限,则只能在该时限内获取和绑定,避免非法用户恶意绑定设备,只有用户使用设备的启动配置功能以后,才能重新获取到passcode。另外,可以通过重置模块的方式,让模块重新生成一个passcode。
43.问:productkey.JSON文件是什么?
答:机智云的SDK会在App使用的时候自动下载一个以产品的productkey命名的JSON配置文件。SDK通过该配置文件,将JSON指令解析为二进制指令,传输给设备,反之同理。如果SDK已经检测到该产品对应的配置文件已下载,则不会重新下载,所以更新了云端的数据点,需要重新更新配置文件。可通过清空App缓存或者调用SDK的updateDeviceFromServer接口重新下载配置文件。
44.问:机智云接口的错误代码表在哪里?
45.问:机智云SDK的错误代码表在哪里?
答:表格如下:
46.问:Gagent在哪里下载?
47.问:GAgent的源码在哪里下载?
答:机智云官网上没有提供源码下载链接,但是可以通过联系客服的方式,签署相关协议后就可以获取到GAgent的通讯协议,自行开发自己的GAgent了。
48.问:开源app源码在哪里下载?
答:目前开源的app有如下几个,可通过Github下载:
gokit demo
热水器
净化器
插座
空调
中控灯
49.问:gokit mcu源码在哪里下载?
答:可通过github下载
50.问:产品生成的串口协议文档在哪里?
答:
1.左侧产品管理页面
2.点击产品开发资源,页面中午MCU 开发资源
3.点击产品的《机智云接入串口通信协议文档》下载
4.按文档要求开发MCU,则可与Wi-Fi模块及云端进行通信了。
51.问:微信开发要用个人公众号还是企业公众号?
答:微信公众号分为服务号、订阅号、企业号。设备功能目前是微信服务号的一个插件功能,开通设备功能前需要先申请开通服务号。未认证的服务号也可以开通设备功能,但对接入设备的数量有严格限制。因此, 未认证的服务号开通设备功能后,需要尽快通过服务号认证,以提高接入设备限额。因为服务号目前不向个人开放申请,个人开发者可以使用测试账号来完成开发调试。详情可参考
微信官方说明。
52.问:微信设备怎么绑定?
答:
微信绑定设备有两种方式
一、扫描绑定:
1.厂商需要先调用微信公众平台接口,注册设备。
2.注册设备后,调用微信公众平台接口,生成设备二维码。
3.微信扫描设备二维码,绑定设备。
二、后台绑定
1.微信扫描周边设备。
2.根据返回的设备信息,调用微信公众平台绑定接口,执行绑定。
53.问:有没有微信项目的开源代码?
答:近期会发布微信宠物屋项目的开源代码。
54.问:微信的AirKiss跟你们的AirLink有什么区别?
答:AirKiss是微信硬件平台提供的WIFI设备快速入网配置技术,AirLink是机智云提供的WIFI设备快速入网配置技术。从技术的角度上说,两者都是通过包含特定信息的UDP广播的方式使Wi-Fi模块配置连上路由器,但二者支持的Wi-Fi模块有所差别。目前来说,机智云可提供支持AirKiss或AirLink的GAgent给开发者使用。
55.问:机智云能帮我开发APP吗?
答:机智云免费提供公版App(标准用户界面及设备功能),并协助实现。机智云已经对部分热门品类的智能硬件App开放源代码,开发者可以获得源代码进行参考实现,机智云可以推荐优秀的物联网应用开发团队为你提供定制化的App开发
56.问:可以用安卓模拟器运行使用机智云SDK的App吗?
答:
首先,不建议使用模拟器来运行。原因有几个:
1.SDK包含了JNI的架构,里面是基于ARM的CPU架构编译的,Windows一般使用的是X86架构的CPU,因此会出现模拟器无法打开APP的问题。该类问题可通过ADT下载相关CPU架构的镜像来解决。
2.机智云的配置、搜索设备等功能,会使用到设备的WI-FI功能,而目前官方的模拟器,还不能支持模拟设备的Wi-Fi功能,所以会出现不能发现设备,配置设备等问题。
综上所述,开发使用机智云SDK的APP,最好还是在真机上进行哦~