本篇文章為微信硬件物聯領域極具實踐價值的文章,它將能指引和幫助任何有興趣於物聯網開發的童鞋們快速掌握微信硬件開發流程,只需一個小時,而再不需要通過揣摩微信硬件浩瀚的文檔資料來完成艱難構建。
作者之前曾經撰寫過一篇文章《基於微信硬件公眾平台的智能控制開發流程》介紹微信硬件開發的流程,但該篇文章是理論性的描述。而本篇文章是完全可操作實踐的,請結合兩篇文章理解。
本篇文章的目的是快速搭建微信硬件開發的環境,完成微信硬件物聯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串口透傳,用戶可以直接在此基礎上進行應用控制開發。如果想要以上安裝程序和代碼敬請關注嵌入式企鵝圈,並發消息給嵌入式企鵝圈獲取資訊。
-
嵌入式企鵝圈原創團隊由阿里、魅族、nvidia、龍芯、炬力、拓爾思等資深工程師組成。百分百原創,每周兩篇,分享嵌入式、Linux、物聯網、GPU、Android、自動駕駛等技術。歡迎掃碼關注微信公眾號:嵌入式企鵝圈,實時推送原創文章!