目錄
一、前言
二、總體設計
三、硬件准備
四、接入機智雲
虛擬設備調試
固件燒錄
虛擬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演示
最底下出現的是水位警報