筆者決定在嵌入式企鵝圈2016年的首篇文章中,發表微信硬件物聯領域極具實踐價值的文章,它將能指引和幫助任何有興趣于物聯網開發的童鞋們快速掌握微信硬件開發流程,只需一個小時,而再不需要通過揣摩微信硬件浩瀚的文檔資料來完成艱難構建。
筆者之前曾經撰寫過一篇文章《[基于微信硬件公眾平臺的智能控制開發流程](http://blog.csdn.net/yueqian_scut/article/details/47380109)》介紹微信硬件開發的流程,但該篇文章是理論性的描述。而本篇文章是完全可操作實踐的,請結合兩篇文章理解。
本篇文章的目的是快速搭建微信硬件開發的環境,完成微信硬件物聯Demo。直接上圖,傻瓜式教程!
**1.申請微信硬件測試公眾號**
鏈接:[http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login](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/](http://mp.weixin.qq.com/debug/)。
1)獲取access_tocken

2) 設備授權

授權字段定義請參考:[http://iot.weixin.qq.com/document-2_6.html](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年的總結嗎?原創技術分享是互聯網的核心理念,如果你能夠關注嵌入式企鵝圈后向嵌入式企鵝圈投稿(yqwucheng@163.com)一篇有關嵌入式和物聯網相關的原創技術總結,一經錄用,嵌入式企鵝圈將會贈送你一塊微信藍牙開發板!
筆者前天受邀請到深圳參加CSDN優秀專家年底party,分享一下活動合影!

**更多嵌入式Linux和物聯網原創技術分享敬請關注微信公眾號:嵌入式企鵝圈**

- 前言
- 物聯網架構演進和微信智能設備平臺開發
- 基于微信硬件公眾平臺的智能控制開發流程
- Protocol buffer序列化及其在微信藍牙協議中的應用
- 網絡架構、云平臺和微信公眾平臺開發接入
- 如何快速理解一個全新的嵌入式操作系統
- 如何快速理解一個全新的嵌入式操作系統(續)
- 一張圖讀懂基于微信硬件平臺的物聯網架構
- 揭開智能配置上網(微信Airkiss)的神秘面紗
- 物聯網核心協議—消息推送技術演進
- 藍牙防丟器原理、實現與Android BLE接口編程
- 以藍牙開發的視覺解讀微信Airsync協議
- 全球最低功耗藍牙單芯片(DA14580)系統架構和應用開發框架分析
- 從零開始搭建微信硬件開發環境全過程——1小時掌握微信硬件開發流程