基於機智雲平臺的智慧花盆
目錄
一、前言
二、總體設計
三、硬體準備
四、接入機智雲
虛擬裝置除錯
韌體燒錄
虛擬MCU除錯
一鍵配置模式
熱點模式
五、程式碼解析
六、測試
百度雲盤連結: https://pan.baidu.com/s/1U3tctyEljSVLrVXiJ5ElzA
提取碼: pmw6
一、前言
有時候會聽到朋友難過的說“我養的多肉又掉葉子了...” 是不是太久沒澆水啦?
“假期有誰家在學校附件的幫我照顧下盆栽..” 真不好意思麻煩你了。
你是否也經歷過這樣的煩惱?反正我都經歷過...
作為理科生當然是選擇自己動手做一個啦~
二、總體設計
首先,我們期望的功能有:
1.實現溫度,土壤溼度等資料的線上監控
2.當土壤溼度低於一定值時自動澆水
3.線上控制澆水
總體設計如下:
我們面臨的第一個問題是平臺的選擇,我嘗試了幾個開發平臺後最終選擇的是機智雲,它提供除錯APP無須我們另外開發。
三、硬體準備
四、接入機智雲
首先我們要賊機智雲的開發者中心註冊一個賬號,登陸以後建立一個新產品
接著建立資料點,下面是我建立的資料點,光照強度後來沒加上
完成以後我們可以使用虛擬裝置除錯
下載機智雲除錯APP
下載以後我們在個人專案中點開虛擬裝置除錯
開啟APP,準備掃碼檢視我們的資料點
感覺沒有問題我們就進行下一步
韌體燒錄
機智雲官方韌體可在下載中心中找到
解壓後發現其含有以下檔案,這裡建議使用四合一的韌體,燒錄方便,至於燒錄工具我們選擇樂鑫原廠韌體燒寫工具
裝置連線(紅圈內的是需要注意的連線)
完成以後直接用USB轉TTL插入電腦燒錄韌體即可,開始燒錄的時候它會要求你給WIFI模組復位,這時我們只需要使RST接以下低電平觸發即可。
那麼如何驗證我們的WIFI模組燒錄以後是正常可用的呢?
機智雲提供了串列埠除錯助手可實現
虛擬MCU除錯
同樣WIFI模組接著USB轉TTL插入電腦
這裡需要注意的是你的RST引腳和使能韌體燒錄的引腳必須是無效的。
然後按下圖順序做好設定
1.AirLink為機智雲的一鍵配置模式
手機連線路由器(我用360隨身WIFI充當無線路由)
隨後開啟機智雲APP新增裝置,選擇一鍵配置,選擇模組。
隨後在串列埠除錯助手中點選初始化,AirLink使模組進入一鍵配置模式。接著靜待連線成功。
有時候連結超時不穩定可以再試一次。
2.Softap為熱點模式
熱點模式即讓WIFI模組生成熱點。
燒寫了GAgent韌體的WiFI模組配置為AP模式時,其WIFI名為”XPG-GAgent-xxxx”,
其中”xxxx”為Wi-Fi模組的實體地址後四位,初始密碼為”123456789。
手機連結熱點後使用熱點配置新增裝置,其餘操作同上。
五、程式碼解析
完成至此,我們僅僅需要完成MCU的開發即可,下面講講機智雲模板程式碼的修改
機智雲官方推薦的程式設計軟體是STM32Cube+Keil
STM32Cube可以輕鬆完成MCU的初始化的修改
keil則提供了編譯燒錄環境
首先我們在機智雲的個人專案中選擇MCU開發,等待模板程式碼生成
模板程式碼內含以下檔案,作為使用者我們無需全部關注
首先我們開啟STM32F103C8x.ioc
新增外設初始化,接著重新生成程式碼
main.c
按鍵函式包括初始化,重啟,啟動AirLink模式和啟動Softap模式
主函式內,先是完成了各種初始化。接著是我自己新增的一段模式配置,這樣就可以不用通過按鍵配置了
再往下就是再while迴圈內不斷完成資料採集和資料的上報
下面我們跟蹤以下資料採集的函式,只要資料賦值到currentDataPoint這個結構體變數中即可
由於我們定義的產品是定時上傳資料的,資料上報函式我們可以不用細緻瞭解
由此我們完成了裝置資料採集---->伺服器----->客戶端
那麼我們的手機如何控制裝置呢?
這要說起gizwits_product.c的另一個函式gizwitsEventProcess
我們在這裡新增接收到水泵開關事件的處理以及自動灌溉事件處理
至此基本完成
為了提高連線機智雲的成功率
建議在gizwits_protocol.h修改重連次數和超時時間
六、測試
為啥我把它焊接成這個樣子呢,因為我本來打算給他做一個外殼的...然後把它放到懶人花盆上
可是這東西列印需要12小時,也就一直沒行動...
後來我又想了一個方法,用3個以下形狀的盒子像積木一樣疊起來,底下的盒子放水,中間放裝置,最上面種植物
同樣也沒有3D列印
APP演示
最底下出現的是水位警報