建立设备与平台的连接

希沃物联网平台提供设备端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下载

  • 获取 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"
  • 编译,运行

img

设备上线成功后,会自动向物联网平台上报一条颜色属性上报的消息。每次输入一次回车发送一条。您可以通过查看命令行输出,获取具体内容。

2 Android版本

2.1 运行环境

  • minSdkVersion 19
  • targetSdkVersion 27

2.2 使用入门

  1. Manifest中添加IotServices,指定独立process
<manifest
    ...
    <application
        ...
          <service
            android:name="com.seewo.iotsdk.core.IotService"
            android:process=":iot" />
    </application>
</manifest>
  1. 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);
...
  1. 在应用的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();
}