MyException - 我的异常网
当前位置:我的异常网» 硬件开发 » 从零开始筹建微信硬件开发环境全过程——1小时掌握

从零开始筹建微信硬件开发环境全过程——1小时掌握微信硬件开发流程

www.MyException.Cn  网友分享于:2013-01-18  浏览:0次
从零开始搭建微信硬件开发环境全过程——1小时掌握微信硬件开发流程

笔者决定在嵌入式企鹅圈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.公众号连上微信蓝牙开发板后,即可以发开灯和关灯指令,对微信蓝牙开发板进行控制。

如果想要以上安装程序和代码敬请关注嵌入式企鹅圈,并发消息给嵌入式企鹅圈获取资讯。

 

OK, 所有的微信硬件开发流程全部完成!可以看到,当你拥有一块实现Airsync协议的微信蓝牙开发板时,即可立刻开始微信硬件物联的Demo。笔者研发的基于Ti CC2541的微信蓝牙模组和微信蓝牙开发板已经量产,能够同时支持微信Airsync协议和一般APP串口透传,用户可以直接在此基础上进行应用控制开发。


你希望立刻拥有这块开发板吗?还记得嵌入式企鹅圈2015年的总结吗?原创技术分享是互联网的核心理念,如果你能够关注嵌入式企鹅圈后向嵌入式企鹅圈投稿([email protected])一篇有关嵌入式和物联网相关的原创技术总结,一经录用,嵌入式企鹅圈将会赠送你一块微信蓝牙开发板!


笔者前天受邀请到深圳参加CSDN优秀专家年底party,分享一下活动合影!


更多嵌入式Linux和物联网原创技术分享敬请关注微信公众号:嵌入式企鹅圈


文章评论

相关解决方案
  • 暂无相关解决方案
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
一个程序员的时间管理
一个程序员的时间管理
每天工作4小时的程序员
每天工作4小时的程序员
老程序员的下场
老程序员的下场
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
为什么程序员都是夜猫子
为什么程序员都是夜猫子
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员的鄙视链
程序员的鄙视链
我的丈夫是个程序员
我的丈夫是个程序员
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序员都该阅读的书
程序员都该阅读的书
如何成为一名黑客
如何成为一名黑客
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员和编码员之间的区别
程序员和编码员之间的区别
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
10个调试和排错的小建议
10个调试和排错的小建议
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
Java程序员必看电影
Java程序员必看电影
中美印日四国程序员比较
中美印日四国程序员比较
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
代码女神横空出世
代码女神横空出世
鲜为人知的编程真相
鲜为人知的编程真相
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
我是如何打败拖延症的
我是如何打败拖延症的
旅行,写作,编程
旅行,写作,编程
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员必看的十大电影
程序员必看的十大电影
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
编程语言是女人
编程语言是女人
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
 程序员的样子
程序员的样子
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
那些争议最大的编程观点
那些争议最大的编程观点
程序员应该关注的一些事儿
程序员应该关注的一些事儿
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有