我整理了從2015年至今關於ESP8266的學習筆記,梳理出來了開發環境、基礎功能、進階學習三大部分,方便自己和他人。可點此查看,歡迎交流。
1 前言
本文偏軟,先做個聲明。
利益相關聲明:我是一個硬件公司的工程師,跟機智雲沒有任何的利益相關。
機智雲,是目前比較開放的第三方雲平臺。我是在今年光亞展上看到他們的,當時記了幾家國內的雲平臺公司,機智雲是其中之一。主要的瞭解還都是在網上,公司發展也不錯,在商務對接時支持也比較給力。他們開源了很多APP和SDK,相信有不少人都從中受益。這陣子經常看到他們有很多大動作,更讓我佩服這家公司,比如今天剛融了2億的B輪,比如前兩週受邀參加藍牙亞洲大會,比如上個月和樂視合作。
好了,軟文完畢,開始正文。
轉載請註明:http://blog.csdn.net/sadshen
2 成果炫耀
最近使用ESP8266對接機智雲,已經初步完成雛形,APP端和設備端已能雙向通信。
APP端截圖:
平臺端截圖:
3 機智雲的通訊模型
下圖爲機智雲的整個通訊模型。
可以看到,設備與雲端的通訊分爲了GService和M2M:GService採用http協議,負責設備註冊、註銷等;M2M採用MQTT協議,負責進行實時性較強的數據操作。
這種雙中心的劃分非常棒,充分發揮了兩種協議的優勢,http的特點是簡單,MQTT的訂閱通知特性又有非常棒的實時性。普通的雲平臺,就單獨使用http完成了註冊登錄、還做數據上報,下行控制等功能,顯然是很有侷限性的。
我一直以爲yeelink就單單使用http,後來看到也有mqtt的API,後面有時間再來試一試。
4 ESP8266的移植
機智雲在github上開源了GAgent代碼,ESP8266的移植主要參考了這份代碼。幾個功能模塊劃分非常好,值得借鑑。我移植下來,覺得不足的地方就是其中的很多數據類型還很混亂,有符號和無符號數據交錯變換,有些用到int的地方,其實定義uint16就夠了。我不是原作者,怕自己沒能理解透原作者的意思,由於也是github新手,就只修改了一個明顯的小錯誤,向官方發了一個Pull Request。這是我的github,歡迎關注。如果你也受益於開源的GAgent,不妨也來社區做下貢獻。
5 接入記錄
由於機智雲的對接簽署了商業協議,我不能把具體協議及接入心得發上來。這一段就不發了。