1. 程式人生 > >基於機智雲平臺的智慧花盆

基於機智雲平臺的智慧花盆

目錄

  一、前言

  二、總體設計

  三、硬體準備

  四、接入機智雲

    虛擬裝置除錯

    韌體燒錄

    虛擬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演示

最底下出現的是水位警報