筆者決定在嵌入式企鵝圈2016年的首篇文章中,發表微信硬件物聯領域極具實踐價值的文章,它將能指引和幫助任何有興趣於物聯網開發的童鞋們快速掌握微信硬件開發流程,只需一個小時,而再不需要通過揣摩微信硬件浩瀚的文檔資料來完成艱難構建。
筆者之前曾經撰寫過一篇文章《基於微信硬件公衆平臺的智能控制開發流程》介紹微信硬件開發的流程,但該篇文章是理論性的描述。而本篇文章是完全可操作實踐的,請結合兩篇文章理解。技術諮詢請發郵件至[email protected]
本篇文章的目的是快速搭建微信硬件開發的環境,完成微信硬件物聯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.公衆號連上微信藍牙開發板後,即可以發開燈和關燈指令,對微信藍牙開發板進行控制。
如果想要以上安裝程序和代碼敬請關注嵌入式企鵝圈,併發消息給嵌入式企鵝圈獲取資訊。
筆者前天受邀請到深圳參加CSDN優秀專家年底party,分享一下活動合影!
更多嵌入式Linux和物聯網原創技術分享敬請關注微信公衆號:嵌入式企鵝圈