WIFI物联网平台微信端开发分享
本文由企鹅圈原创成员Hunter_Zhu贡献。
本篇文章是基于近期一个项目微信端开发过程的一个总结。文中主要介绍了云智易平台下微信端开发的流程、该平台提供的主要功能以及此次H5开发使用到的一些UI组件。能够帮助企鹅仔高速对该平台微信开发有个了解。
本文介绍的微信硬件物联网开发思路不局限于某个平台。对市场上全部的平台,如机智云也是适用的,特此说明。
一、创建微信应用,配置微信server
在云智易开发平台中,开发人员须要在应用管理中创建一个微信应用,填写微信公众号的基本信息:APPID, APPSecret等,另外平台会为该应用生成一对APPUrl以及APPToken可用于配置微信公众平台设备功能的server配置。假设开发人员採用这样的方式,那么微信server转发的设备事件(如绑定/解绑/订阅设备状态等)都由云智易平台处理。
当然。开发人员也能够採用第二种方式。即自身先处理微信硬件的设备事件。并转发设备事件通知云智易平台。
wx_fmt=png" data-ratio="0.46881878209831257" data-w="1363" src="http://img.blog.csdn.net/20170221191559635?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVlcWlhbl9zY3V0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" data-fail="0" style="margin: 0px; padding: 0px; height: auto !important; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; width: auto !important; visibility: visible !important;" alt="" />
在微信硬件平台中创建了产品后。我们就能够方便地在云智易平台中指定授权的微信产品号批量完毕设备微信授权,获取设备的二维码链接。
在此部分中主要体现物联网中用户管理、设备管理、用户和设备绑定的情景。
二、微信设备控制
在云智易平台中,微信H5和server採用websocket进行通信。
上图是云智易平台提供的微信应用开发流程图,从图中能够看出,微信设备开发可分5步走:
1)通过OAuth2.0获取微信用户的openid。
2)以openid为參数获取微信用户的认证码用于初始化XSDK实例;
3)以openid为參数获取微信用户的设备列表;
4)向XSDK实例导入设备列表;
5)通过XSDK实例监听设备的上报数据/向设备下发数据/监听设备的在离线状态变化/主动读取设备数据等。
上图中通过调用云智易平台提供的xsdk.js文件就可以完毕物联网的基本需求:用户和设备通信(读、写、订阅和通知),另外的功能拓展云智易平台通过RESTful接口想开发人员进行提供。针对微信开发除了上述中获取用户绑定的设备列表接口外还包含:
1)取消绑定设备;
2)获取微信JSAPI调用签名;
3)获取设备的信息。
4)改动设备的名称;
5)获取微信用户在云智易平台下的接口调用凭证access-token;
云智易平台提供了大量的RESTful接口拓展各种情景的功能,大部分都须要上述获取到的access-token来完毕调用。
三、数据服务
物联网情景中大多不满足于主要的设备控制,非常多时候须要为用户提供历史数据查看服务。云智易平台提供了四大数据服务:数据表,数据快照,统计规则以及数据转发。
数据表功能相似数据库,是云智易为开发人员提供的数据存储功能,开发人员通过调用RESTful接口可进行增删查改操作;
数据快照功能用于存储设备某一时刻的状态,通过设备快照服务能够获取历史数据以及变化的数据。
统计规则功能是基于数据快照的数据进行统计,获取数据的特征,如统计某个时间段内数据的最大值。最小值。平均值等信息;
数据转发服务可实现设备数据到开发人员server的转发,如设备上报的数据、设备的在离线状态变化等。
前面三大数据server都是能够通过RESTful接口来完毕,在数据转发服务中须要完毕和微信开发中一样的server验证,随后server就能够对转发过来的数据进行个性存储处理。
近期一个项目开发中。本人在数据展现上使用的是百度ECharts图表,ECharts功能强大,在实时数据和历史数据展现过程中主要使用了当中的数据区域缩放组件(dataZoom),通过这个组件,我们能够对大量的数据进行展现,对数据区域进行防缩、平移以关注某一小段的数据。例如以下图所展示,有了这两个功能就能实现大量数据的显示查看。
wx_fmt=png" data-ratio="0.9983388704318937" data-w="602" src="http://img.blog.csdn.net/20170221191700626?
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVlcWlhbl9zY3V0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="margin: 0px; padding: 0px; height: 601px !important; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; width: 602px !important;" alt="" />
四、告警功能
云智易平台中提供了两种设备告警的方式,一种是通过微信公众号直接推送告警,第二种用户在设备控制页面能够查看告警的消息。第一种方式是通过设置认证了的微信服务号的模板消息实现的,不须要涉及编程,对于第二种是通过平台提供的RESTful接口进行获取,然后再向用户进行展现。告警功能实现了设备出现异常时对用户通知的实时性,提示用户前去查看,告警的内容能够包含:设备某个数值超过指定范围获取设备的在离线状态通知等。
公众号推送告警信息:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXVlcWlhbl9zY3V0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="margin: 0px; padding: 0px; height: 623.429px !important; max-width: 100%; box-sizing: border-box !important; word-wrap: break-word !important; width: 670px !important;" alt="" />
设备控制页面中获取告警列表:
五、UI组件
最后,向大家分享一下微信H5开发中一个不错的UI组件——MUI。其以ios平台UI为基础,追求原生UI感觉。例如以下图的输入对话框。除此以外。在性能上也有非常好的用户体验。
很多其它嵌入式Linux和物联网原创技术分享敬请关注微信公众号:嵌入式企鹅圈
WIFI物联网平台微信端开发分享的更多相关文章
- H5 页面在微信端的分享
微信分享,咋一看好像很复杂,实则非常简单.只需要调用微信官方出的微信jssdk,加上些许配置,就可以实现h5页面在微信上的分享,官方文档地址为: https://mp.weixin.qq.com/wi ...
- H5页面在微信端的分享
微信分享,咋一看好像很复杂,实则非常简单.只需要调用微信官方出的微信jssdk,加上些许配置,就可以实现h5页面在微信上的分享,官方文档地址为:https://mp.weixin.qq.com/wik ...
- Intel为Google的物联网平台Brillo推出开发板Edison
Brillo* is a solution from Google* for building connected devices. Incorporating aspects of the Andr ...
- 【微信Java开发 --2】接入微信公众平台开发,配置自己的服务器,验证过程
接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑好我们就开始:1.填写好我们的URL和Token[此处是已经通过验证的] ...
- 国外物联网平台(8):Telit
国外物联网平台(8) ——Telit 马智 定位 We Bring IoT to Life Telit提供世界上最全面的高性能物联网模块.连接服务和软件. 产品体系 模块 Telit提供丰富专业的物联 ...
- 聊聊如何在华为云IoT平台进行产品开发
摘要:华为云物联网平台承载着南北向数据互通的功能职责. 本文分享自华为云社区<如何基于华为云IoT物联网平台进行产品开发>,作者: Super.雯 . 华为云物联网平台承载着南北向数据互通 ...
- 微信jsSDK开发
(学习类)2015年最新微信公众平台开发 微信JSSDK开发分享功能 链接地址:http://blog.163.com/sdolove@126/blog/static/1146378852015132 ...
- 华为OceanConnect物联网平台概念全景 | 我的物联网成长记
作者 | 我是卤蛋 华为云OceanConnect IoT云服务包括应用管理.设备管理.系统管理等能力,实现统一安全的网络接入.各种终端的灵活适配.海量数据的采集分析,从而实现新价值的创造. 华为云O ...
- 干货分享 | 3个开发IoT项目的开源物联网平台
物联网(IoT)是帮助人工智能(AI)以更好的方式控制和理解事物的未来技术. 艾艺收集了一些最有名的物联网平台,帮助您以受控方式开发物联网项目.物联网平台是帮助设置和管理互联网连接设备的组件套件. 一 ...
随机推荐
- 解决sdk manager下载非常慢或者下载失败
有了sdk manager,打开它,想下载一些须要的东西总是会发现非常慢,然后就仅仅好慢慢等待,等待许久之后最后是失败了,这样就会非常麻烦,以下我总结总结,怎样解决这些问题,让你在分分钟下载好这些东西 ...
- SRM 624 D2L3: GameOfSegments, 博弈论,Sprague–Grundy theorem,Nimber
题目:http://community.topcoder.com/stat?c=problem_statement&pm=13204&rd=15857 这道题目须要用到博弈论中的经典理 ...
- Nginx和Tomcat负载均衡实现session共享
以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架. 此框架的优 ...
- 多线程demo,订单重复支付
背景描述,一个商城网站,一个订单支付方案有多个1.金额支付2.积分支付3.工资支付(分期和全额),所以一个订单的方案可能有1:有1.2,或1.2.3 状态,1.订单状态,2,支付状态==>多方案 ...
- C语言:通过指针函数输出二维数组中每个学生的成绩
// // main.c // Pointer_function // // Created by ma c on 15/8/2. // Copyright (c) 2015年 bjsxt. ...
- Retrofit 从入门到了解【总结】
源码:https://github.com/baiqiantao/RetrofitDemo.git 参考:http://www.jianshu.com/p/308f3c54abdd Retrofit入 ...
- 你应该抓紧学习Python,它是开发Web应用最强大的语言
Python和少数几种编程语言,如MySQL.Perl.PHP和与LAMP打包的网络结构一起的Apache,已经成为Linux的一个基本组件.即 使从它诞生开始,Python就与其他动态编程语言如Ru ...
- C# 特性(Attribute)(二)
AttributeUsage类是另外一个预定义特性类,它帮助我们控制我们自己的定制特性的使用.它描述了一个定制特性如和被使用. AttributeUsage有三个属性,我们可以把它放置在定制属性 ...
- 【Javascript Demo】遮罩层和弹出层简单实现
最近纠结于遮罩层和弹出层的实现,终于搞定了个简单的版本.示例和代码如下,点击按钮可以看到效果: 1.示例: 2.代码: <!DOCTYPE html PUBLIC "-//W3C//D ...
- OC 创建单例
static BlockBackground *_sharedInstance = nil; + (BlockBackground*)sharedInstance { if (_sharedInsta ...