在2015年曾写过一篇文章《从微软build 2015,展望微软未来发展》,提到了微软的Azure和Windows 10 IoT,那算是初次接触微软物联网技术。比较幸运的是在后续的时间里,有幸和微软相关部门进行了深入合作,对微软的Azure云及Windows 10 IoT有了更深的了解。
除了最初的基于树莓派平台做了微软利事盒教育箱(如下图所示)外,尤为重要的是基于台湾新汉的NISE50 Windows 10 IoT工控级网关对接微软Azure IoT Hub平台开发了养殖监控系统,后续在潍坊的一个现场成功实施。
并于今年的1月9号在中关村微软大厦和甘来、健安华夏和研华相关人员一起向微软物联网部门汇报了各自和微软云相关的项目进展。
不过基于Windows10 IoT终端设备,对物联网项目来说,还是太“重”了,急需轻量级的网关进行数据采集,并上传到微软Azure IoThub端。
好在微软提供了设备端的SDK(链接如下)
https://github.com/Azure/azure-iot-sdks
有基于C代码,也有基于C#代码的SDK,另外我们有性价比较高的,且相对成熟的物联网网关硬件,所以最直接的想法就是把SDK相关代码移植到硬件上去,但是没有想到一开始就困难重重,开始的几个月一直进展不大,后来在微软纪尚豪和王启霄等老师的协助下,突破了相关瓶颈,成功在凌霄物联网网关上移植成功了:基于Mbed OS系统的MQTT接口的云端通信、以及基于.NET Micro Framwork系统上的HTTP和MQTT的云端通信。
本篇文章就先介绍基于.NET Micro Framwork系统上的HTTP协议和微软Azure云进行通信的整个过程。
第一步:在MicrosoftAzure上创建一个IoT Hub
创建完毕后,大概这个样子
创建完毕后,我们单击共享访问策略,获取共享访问密钥。
第二步:借助DevcieExplorer Twin工具创建设备
从上面SDK链接中可以下载这个工具的源代码,编译运行,在IoT Hub Connection String中填写第一步的共享访问密钥。
然后在Management页面创建设备
下一个操作比较关键,我们要获取设备的连接字符串,以便在设备中填写这个字符串。
第三步:在.NETMicro Framework代码中填入连接字符串,并进行联调
设备运行后,在DeviceExplorer Twin的Data选项卡中就可以看到设备上传的数据了。
同样,也可以测试数据下发,可发现双向通信都是正常的。
这个时候登陆MicrosoftAzure我们可以看到数据上传的情况。
本篇文章先介绍到这里,下一篇文章将介绍基于MQTT通信协议和微软Azure云进行通信的过程。有对微软物联网开发感兴趣的网友可以加我的QQ(71825781)或微信(yefanqiu),一起进行物联网技术探讨。