使用STM32、WIFI模組,親手打造一款智能寵物喂食器
1 前言
我從小就喜歡小動物,工作了之后養(yǎng)了一只可愛的小泰迪,取名叫COCO。白天,我上班把COCO獨自鎖在家中;晚上回家,COCO熱情相迎,這種感覺很治愈。
有時候出短差,就把COCO自己鎖在家中,也正是這個原因,很想自己做一個寵物喂食器,可以實現(xiàn)遠(yuǎn)程喂食和定時喂食的功能,無奈,不懂Android/IOS編程無法實現(xiàn)云端和客戶端的功能,一直在擱淺。
幸好,最近我參與了一個調(diào)查問卷,以開發(fā)者的身份參與了涂鴉智能的開源項目,獲得的了涂鴉智能所提供的開發(fā)套件,今天就和大家分享一下這個開源項目,并介紹一下參與開發(fā)的流程,有興趣或者有時間想玩的朋友們可以掃描以下二維碼報名參與,本次活動免費為你準(zhǔn)備了模組以及元器件,還有直播培訓(xùn)教程,手把手教你開發(fā)一款寵物喂食器,還是相當(dāng)不錯的。
依托涂鴉的智能模組,可以“輕代碼”編程,輕松實現(xiàn)客戶端的配置,打通了云端、MCU端的“輕代碼”甚至“零代碼”開發(fā)。所用到的硬件資源和平臺如下:
-
STM32F103C8T6最小系統(tǒng)板;
-
涂鴉wifi語音模組VWXR2;
-
涂鴉H-Bridge電機(jī)驅(qū)動板;
-
5V直流減速電機(jī);
-
涂鴉IOT平臺;
-
keil5編程環(huán)境;
所采用的模組為涂鴉VWXR2,可以輕松實現(xiàn)配網(wǎng),還具有語音功能。該wifi語音模組的鏈接如下:
https://developer.tuya.com/cn/docs/iot/device-development/module/wifi-module/vwxr-series-module/vwxr2?id=K9eipxhzap92z
2 模組配網(wǎng)
對于WiFi模組而言,最重要的就是配網(wǎng),所謂配網(wǎng),就是讓模組接入路由器,實現(xiàn)云端和模組的數(shù)據(jù)交互。通過USB/TTL將電腦和wifi模組連接。模組上用到的串口為TXD1和RXD1,需要和USB/TTL的串口交叉連接。
在配網(wǎng)的時候接上喇叭,可以發(fā)出相應(yīng)的語音提示,非常的方便。
云串口助手的配網(wǎng)流程如鏈接所示:
https://developer.tuya.com/cn/docs/iot/device-development/embedded-software-development/mcu-development-access/access-mode-simmulator/module-debugging-assistant-instruction?id=K9hs0cj3lf0au
涂鴉提供了云串口調(diào)試助手,技能實現(xiàn)云端的模擬,又能實現(xiàn)MCU的模擬。配網(wǎng)時,選擇MCU模擬,聯(lián)網(wǎng)協(xié)議選擇Wi-Fi通用協(xié)議。
功能點調(diào)試文件,需要選擇IOT平臺所生產(chǎn)的json文件,這一點在后面的IOT平臺會說到。json文件加載成功后,會顯示16為的PID字符串,點擊“開始調(diào)試”后會交互數(shù)據(jù)流,數(shù)據(jù)流都在左側(cè),這些數(shù)據(jù)流可以幫助開發(fā)者很快的了解“串口通訊協(xié)議”。在界面下方的操作-基礎(chǔ)功能中,點擊重置,會開始配網(wǎng)流程。這時候,打開手機(jī)“涂鴉智能”APP。
注意,目前只支持2.4G的路由器,如果路由器是5G的,需要根據(jù)提示設(shè)置一下。
3 IOT平臺搭建
涂鴉智能可以做到“輕代碼”設(shè)置“零代碼”開發(fā),因為在涂鴉的IOT平臺上都給開發(fā)者配置好了,平臺可以根據(jù)所用的IOT模組生成代碼,開發(fā)者只需要移植代碼就可以了。下面介紹詳細(xì)的開發(fā)步驟。
首先注冊IOT平臺,之后選擇右上角的“IOT平臺”,如下圖所示。
選擇“創(chuàng)建產(chǎn)品”:
選擇“小家電”,拉到底部選擇“寵物喂食器”:
填寫產(chǎn)品名稱、產(chǎn)品型號等信息,通訊協(xié)議選擇WI-Fi
之后,可以根據(jù)平臺提供的功能裁剪自己所需要的功能,如喂食計劃、開關(guān)、小夜燈等。
之后配置APP的界面,IOT平臺提供了很多公版面板可供用戶選擇
之后,可以打開“涂鴉智能”APP掃面二維碼,就可以在手機(jī)端生成界面。
手機(jī)端生成的界面如下圖所示。
4 硬件配置&下載固件
在“硬件開發(fā)”界面,選擇硬件,這里的硬件指的就是所使用的IOT模組,我所選用的模組是VWXR2模組,帶語音功能。
硬件選擇好之后,平臺會自動生成基于該硬件的資料文檔和SDK代碼,需要開發(fā)者下載
下載開發(fā)資料,里面包含需要移植的mcu_sdk代碼、json配置文件、串口通訊協(xié)議文件、云串口調(diào)試助手等文件。
其中json文件,就是《2-模組配網(wǎng)》中云串口助手索要加載的“功能點調(diào)試文件”。
5 mcu_sdk移植
在移植之前,我們需要一套代碼,該代碼能跑通串口程序。我上手有STM8和STM32的最小系統(tǒng)板,剛開始用STM8移植的,移植完后代碼的大小為9K,而我的STM8只有8K的空間。所以,最后換成了STM32,開發(fā)環(huán)境為Keil5。
首先,把mcu_sdk文件復(fù)制到keil的工程目錄下;
在左側(cè)新建MCU_SDK工作組,并把mcu_sdk中的mcu_api.c、protocol.c以及system.c加載進(jìn)去;
在keil中,右鍵屬性或者點擊菜單欄的魔法棒,在C/C++下添加mcu_sdk的路徑。
之后按照開發(fā)者文檔中MCU_SDK移植的操作流程進(jìn)行移植,鏈接如下:
https://developer.tuya.com/cn/docs/iot/device-development/embedded-software-development/mcu-development-access/wifi-mcu-sdk-solution/overview-of-migrating-tuyas-mcu-sdk?id=K9hhi0xr5vll9
通過研究protocol.c中的代碼可以知道,IOT平臺把功能都做成了單獨的函數(shù),函數(shù)的命名方式為:
dp_download_xxx_handle(),xxx是不同的功能,如小夜燈為light,開關(guān)為switch。只需要在相應(yīng)的函數(shù)下面添加操作就可以了,比如我的STM32最小系統(tǒng)板上有一個LED指示燈。我寫的LED點亮函數(shù)為LED_Turn_ON(),LED熄滅函數(shù)為LED_Turn_OFF(),只需要把語句填上即可。
這時候,通過涂鴉智能APP就可以控制板子上燈的亮滅狀態(tài)。
要實現(xiàn)寵物喂食器,還需要一個減速電機(jī),減速電機(jī)還在購買中,沒有到貨。到貨后繼續(xù)。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!





