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