建立设备与平台的连接
希沃物联网平台提供设备端SDK,设备使用SDK与平台建立通信。在这一步里,我们使用平台提供的样例程序iot_sample_link模拟设备开发,实现设备与物联网平台的通信。
1 Windwos版本
1.1 运行环境
- 本文使用的windows下的C++语言的SDK,使用VC++2015编译的32位的动态库。依赖VC++2015运行库,推荐使用VS2015 nuget方式加载SDK。
- 同时SDK本身支持CentOS7、Andorid等环境,需要二进制包,请查看:设备SDK下载。
- 其他环境,如ARM等,请联系我们获取源码,进行交叉编译。
1.2 操作步骤
1.2.1 获取C++语言SDK
详见:设备SDK下载
1.2.2 修改iot_sample_link.cpp样例程序
- 获取 iot_sample_link.cpp
- 编辑 iot_sample_link.cpp,将设备证书信息修改为前一步中创建的301房间测试平板的设备证书,完成后保存退出。如下所示,在此处填入ProductKey、DeviceId和DeviceSecret,301房间测试平板将使用该设备证书进行身份认证并连接物联网平台。
// demo
#define PRODUCT_KEY "1_aa90ddf4a9e"
#define DEVICE_ID "335955739405238272"
#define DEVICE_SECRET "b2128927177ae8dc"
- 编译,运行
设备上线成功后,会自动向物联网平台上报一条颜色属性上报的消息。每次输入一次回车发送一条。您可以通过查看命令行输出,获取具体内容。
2 Android版本
2.1 运行环境
- minSdkVersion 19
- targetSdkVersion 27
2.2 使用入门
- Manifest中添加IotServices,指定独立process
<manifest
...
<application
...
<service
android:name="com.seewo.iotsdk.core.IotService"
android:process=":iot" />
</application>
</manifest>
- Application中配置IotSDK, 由于iot服务在独立进程中,Application onCreate会执行两次,需在对应进程中执行如下代码
RegisterConfig registerConfig = new RegisterConfig.Builder()
.setUrl(xxx)
.setProductKey(xxx)
.setProductSecret(xxx)
.setDeviceIdType(xxx)
.setDeviceIdValues(xxx)
.build();
//设置产品配置,用于设备注册
IotSDK.INSTANCE.setupRegisterConfig(registerConfig);
//开启日志
IotSDK.INSTANCE.setLog(true);
...
- 在应用的Service中实例化IotClient,以保证应用退出到后台可以继续保持长连接
//实例化IotClient,传入Broker地址
mIotClient = new IotClient(mContext, mBrokerUrl);
mIotClient.setCallback(new IotCallback() {
@Override
public void onConnectCompleted(DeviceAuth deviceAuth) {
//完成连接
}
@Override
public void onConnectFailed(IotException iotException) {
//连接失败, IotSDK默认会进行重试,应用可自行配置失败重试
}
@Override
public void onConnectionLost() {
//连接断开,IotSDK native层内部会进行断线重连
}
});
if (!mIotClient.isConnected()) {
mIotClient.connect();
}