准备学习微信蓝牙
2016-06-08 14:18
471 查看
笔者决定在嵌入式企鹅圈2016年的首篇文章中,发表微信硬件物联领域极具实践价值的文章,它将能指引和帮助任何有兴趣于物联网开发的童鞋们快速掌握微信硬件开发流程,只需一个小时,而再不需要通过揣摩微信硬件浩瀚的文档资料来完成艰难构建。 笔者之前曾经撰写过一篇文章《基于微信硬件公众平台的智能控制开发流程》介绍微信硬件开发的流程,但该篇文章是理论性的描述。而本篇文章是完全可操作实践的,请结合两篇文章理解。 本篇文章的目的是快速搭建微信硬件开发的环境,完成微信硬件物联Demo。直接上图,傻瓜式教程! 1. 申请微信硬件测试公众号 链接:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,用自己的微信扫一扫即可以完成注册申请。微信测试公众账号重要信息包括:appID、appsecret和微信号。开发工程师代表厂商/运营商的角色,所以这里的微信号其实是代表厂商/运营商的微信ID. 2. 开通测试微信公众账号的设备功能接口 开启后如下图: 3. 添加设备产品,获得产品编号 点击设置进行添加: 添加后可以看到产品的编号,如下图。这里只是演示,选择设备品类为“血压计”,其编号是4735. 表明要生成微信蓝牙血压计(其实是笔者的微信蓝牙开发板)。 4. 蓝牙设备授权 微信硬件平台的核心功能之一就是对硬件设备进行身份管理。授权即是硬件设备的身份注册,其需要硬件设备的唯一地址码MAC(例如新生儿的指纹)以及人为给这个硬件设备起的名字id(例如新生儿的姓名)。 授权我们通过微信网页调试工具进行,链接是:http://mp.weixin.qq.com/debug/。 1) 获取access_tocken 2) 设备授权 授权字段定义请参考:http://iot.weixin.qq.com/document-2_6.html。也可以按照以下修改: 这里要特别注意,微信硬件平台有时更新了策略又没说明白,坑很多。应该在2015年9月前注册的测试号可以在不写product_id时也能成功授权,但最近注册的测试号如果不写这个product_id会报以下错误: {"errcode":100020,"errmsg":"accountquota not enough"} 说是“账号设备授权配额已用完,需重新申请”。晕倒,我刚注册的账号,配额就用完了,天知道微信为什么要这么搞。最后增加产品编号product_id即可以完成注册。 5. 微信硬件测试公众号自定义菜单 1) 获取access_tocken,同上。 2) 自定义菜单,定义两个按钮 自定义菜单的效果如下:如果用户关注了该公众号,则进入该公众号后会看到底部有开灯和关灯两个button: 6. 部署后台开发环境 1) 安装JDK,安装后设置系统高级环境变量JAVA_HOME,指向JDK的安装目录。 2) 安装tomcat,修改apache-tomcat-7.0.64\conf\server.xml,将web服务端口改为80 3) 启动tomcat, 点击apache-tomcat-7.0.64\bin\startup.bat 4) 安装MyEclipse 5) MyEclipse配置Tomcat 6) 下载微信蓝牙后台服务样例工程roseblue 7) MyEclipse导入roseblue工程 8) MyEclipse配置服务推送,即生成类文件并拷贝到tomcat的对应目录(apache-tomcat-7.0.64\webapps)。 9) 后台工程配置,修改工程配置属性指向微信测试账号 7. 配置微信测试公众号的第三方服务地址,指向tomcat所在的web服务目录 8. MyEclipse生成设备二维码 这里的device_id和mac两个值和设备授权时的值务必保持一致。Device_id可以任意取值,而mac必须是蓝牙设备的真实MAC地址。 以Java application直接运行这个类可以生成设备二维码,生成路径可以修改: 9. 手机用户扫描关注这个设备二维码,完成设备绑定。 例如昵称为O的微信用户绑定了这个设备,则在微信测试公众号的后台可以看到它的微信号。 10.修改roseblue工程的通信设备配置 暂时不使用数据库,可以将所有的数据库操作注释掉,并直接硬编码。 deviceType即是第1步里面的微信号 deviceID即是设备授权时的deviceID openID是绑定这个设备的用户的手机微信ID,如昵称为O的微信ID。 11.实现Airsync协议的微信蓝牙开发板上电,开始广播。 12.微信昵称为O的用户打开订阅的微信测试公众号,开始自动扫描并连接微信蓝牙开发板。 13.公众号连上微信蓝牙开发板后,即可以发开灯和关灯指令,对微信蓝牙开发板进行控制。 |
相关文章推荐
- Crossin先生的微信打飞机游戏(2)
- 微信公众号开发--获取用户信息中文乱码的解决方案
- Python公众号开发部分代码开源
- OAuth client 微信、qq、新浪登录
- 相同位置字符串比较小程序
- 安卓对接微信支付
- android开发之微信分享小计
- 微信硬件平台设备直连全讲解(1)开发前的准备
- [公开课]微信公众平台与javaWeb的结合开发
- Crossin先生的微信打飞机游戏(1)
- 移动端(html5)微信公众号下用keyup实时监控input值的变化无效
- 仿朋友圈微信的几分钟前、几小时前、几天前、几周前、几月前、几年前的Java实现!
- 微信公众号开发-iphone手机时间显示NaN:NaN的问题修改
- 微信web开发者工具-移动调试iphone端的调试
- 10分钟搞定支付宝和微信支付的各种填坑
- ios开发之OC基础-oc小程序
- android 滚动条HorizontalScrollView左右滑动反弹的效果(类似微信朋友圈下拉反弹)...
- 微信分享时链接地址代替了描述的问题
- 微信分销系统多少钱
- 判断是否是从微信中打开的浏览器