智能門磁傳感器在智能安防領(lǐng)域扮演著重要的角色,應(yīng)用的場(chǎng)合也越來越多。離家后不確定家中門窗是否關(guān)閉?不妨打開手機(jī)確認(rèn)一下。文介紹如何使用涂鴉三明治開發(fā)板快速完成一個(gè)智能門磁傳感器產(chǎn)品原型。
第 1 步:方案介紹
MCU 方案與 SoC 方案不同,傳感器和聯(lián)網(wǎng)模組的驅(qū)動(dòng)代碼寫在 MCU 中,開發(fā)者可以自己開發(fā) MCU 代碼,擁有更多的可玩性。因此在開發(fā)前,我們需要對(duì)方案有個(gè)整體了解,方便后續(xù)開發(fā)。
涂鴉三明治開發(fā)板門磁傳感套件中,傳感器板干簧管根據(jù)開合狀態(tài)輸出高低電平給MCU 控制板,MCU 通過串口 與 Wi-Fi 通信板連接,使用涂鴉智能 App 配網(wǎng),可以將門磁狀態(tài)展現(xiàn)在手機(jī)端,并與其他智能設(shè)備聯(lián)動(dòng)。MCU 型號(hào)為 STM32G071RB,Demo 教程采用 Arduino IDE 進(jìn)行編程,可方便的移植于各 Arduino 系列開發(fā)板。
第 2 步:硬件連接
本次使用的涂鴉三明治開發(fā)板門磁傳感套件主要包含:門磁傳感器功能板,板載兩路干簧管一路觸發(fā)輸出為低,一路觸發(fā)輸出為高,開發(fā)者可根據(jù)實(shí)際情況選用。Wi-Fi MCU 通信板,板載涂鴉 TYWE3S 模組,負(fù)責(zé)智能化連接。模組已燒錄通用固件,MCU 對(duì)接涂鴉串口協(xié)議,即可使用模組+App+云涂鴉一站式智能化服務(wù)。
MCU控制板,采用ST官方 NUCLEO-G071RB 開發(fā)板,負(fù)責(zé)傳感數(shù)據(jù)接收和模組通訊控制。NUCLEO-G071RB 開發(fā)板支持 Arduino 接口,本片教程demo我們也將基于 Arduino 開發(fā)演示。將三明治開發(fā)板套件控制板、通訊板、功能板拼接組裝。
第 3 步:軟件開發(fā)-模組調(diào)試,軟件開發(fā)過程主要基于 Arduino 實(shí)現(xiàn) MCU 與傳感器和模組協(xié)議對(duì)接。首先調(diào)通 MCU 和模組的通訊,可以實(shí)現(xiàn)App配網(wǎng),MCU 數(shù)據(jù)傳輸?shù)紸pp。
步驟 3.1:環(huán)境搭建,環(huán)境搭建教程:搜索“三明治開發(fā)板環(huán)境搭建”,環(huán)境搭建的教程主要講如何在 Arduino IDE 中添加ST開發(fā)板,集成 STM32CubeProgrammer 實(shí)現(xiàn)編譯下載功能,初學(xué)開發(fā)者需仔細(xì)閱讀。
步驟 3.2:下載開發(fā)資料包
創(chuàng)建工程,下載移植涂鴉 MCU SDK 開發(fā)包詳細(xì)教程:MCU快速上手。具體步驟教程已比較詳細(xì),這里不做贅述,不過在創(chuàng)建產(chǎn)品過程中要注意我們要?jiǎng)?chuàng)建的產(chǎn)品是門磁傳感器,MCU 對(duì)接時(shí)選擇自定義方案,才能下載到 MCU 開發(fā)資料包。

功能根據(jù)自身需求選擇,這里基本功能DP建議選擇門磁、告警、電量。

固件選擇時(shí)要注意,Wi-Fi 模組默認(rèn)的固件是通用固件,非低功耗固件,我們需要將功耗類型改為標(biāo)準(zhǔn)功耗,固件選擇標(biāo)準(zhǔn)通用固件,我們才能下載到相關(guān) MCU 開發(fā)包。


步驟 3.3:移植調(diào)試,移植調(diào)試詳細(xì)教程:MCU SDK開發(fā)包移植調(diào)試,移植成功配網(wǎng)會(huì)看到選擇的產(chǎn)品面板,接下來我們需要編寫獲取干簧管狀態(tài)的邏輯代碼。
第 4 步:軟件開發(fā)-傳感器調(diào)試,干簧管受磁力影響,輸出的狀態(tài)為高或低電平,因此 MCU 只需讀取 IO 狀態(tài),判斷門磁狀態(tài)即可,代碼比較簡(jiǎn)單。官網(wǎng)讀取 IO 狀態(tài)代碼示例:
int ledPin = 13; // LED connected to digital pin 13
int inPin = 7; // pushbutton connected to digital pin 7
int val = 0; // variable to store the read value
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output
pinMode(inPin, INPUT); // sets the digital pin 7 as input
}
void loop()
{
val = digitalRead(inPin); // read the input pin
digitalWrite(ledPin, val); // sets the LED to the button‘s value
}
MCU 需要將數(shù)據(jù)傳輸給App展示,上報(bào)函數(shù)如下:mcu_dp_bool_update(DPID_DOORCONTACT_STATE,當(dāng)前門磁); //BOOL型數(shù)據(jù)上報(bào);
第 5 步:場(chǎng)景聯(lián)動(dòng)(擴(kuò)展功能)
所有功能調(diào)試通過后,App 端已經(jīng)可以接收到門磁感器的數(shù)據(jù)。智能傳感器最大的應(yīng)用場(chǎng)景是用來收集傳感數(shù)據(jù)來和其它產(chǎn)品進(jìn)行聯(lián)動(dòng),如果開發(fā)者手中有涂鴉生態(tài)設(shè)備或開發(fā)板,可以在App端實(shí)現(xiàn)場(chǎng)景聯(lián)動(dòng)功能的配置。
小結(jié),基于涂鴉平臺(tái),使用涂鴉三明治開發(fā)板,Arduino IDE編程,快速實(shí)現(xiàn)一款智能門磁傳感器產(chǎn)品原型搭建
fqj
電子發(fā)燒友App














































































評(píng)論