博客專欄

        EEPW首頁 > 博客 > 如何快速設計一款門磁傳感器產品?App即可確認門窗關閉

        如何快速設計一款門磁傳感器產品?App即可確認門窗關閉

        發布人:智能物聯研習社 時間:2020-05-21 來源:工程師 發布文章

        概況

        智能門磁傳感器在智能安防領域扮演著重要的角色,應用的場合也越來越多。離家后不確定家中門窗是否關閉?不妨打開手機確認一下。文介紹如何使用涂鴉三明治開發板快速完成一個智能門磁傳感器產品原型。


        登錄/注冊 涂鴉IoT平臺

        鏈接:https://auth.tuya.com/?from=https%3A%2F%2Fiot.tuya.com%2F&_source=5da300e50745947aec50c44f209c5367

        步驟

        第 1 步:方案介紹

        MCU 方案與 SoC 方案不同,傳感器和聯網模組的驅動代碼寫在 MCU 中,開發者可以自己開發 MCU 代碼,擁有更多的可玩性。因此在開發前,我們需要對方案有個整體了解,方便后續開發。

        涂鴉三明治開發板門磁傳感套件中,傳感器板干簧管根據開合狀態輸出高低電平給MCU 控制板,MCU 通過串口 與 Wi-Fi 通信板連接,使用涂鴉智能 App 配網,可以將門磁狀態展現在手機端,并與其他智能設備聯動。MCU 型號為 STM32G071RB,Demo 教程采用 Arduino IDE 進行編程,可方便的移植于各 Arduino 系列開發板。


        第 2 步:硬件連接


        本次使用的涂鴉三明治開發板門磁傳感套件主要包含:

        門磁傳感器功能板,板載兩路干簧管一路觸發輸出為低,一路觸發輸出為高,開發者可根據實際情況選用。
        Wi-Fi MCU 通信板,板載涂鴉 TYWE3S 模組,負責智能化連接。模組已燒錄通用固件,MCU 對接涂鴉串口協議,即可使用模組+App+云涂鴉一站式智能化服務。

        MCU控制板,采用ST官方 NUCLEO-G071RB 開發板,負責傳感數據接收和模組通訊控制。NUCLEO-G071RB 開發板支持 Arduino 接口,本片教程demo我們也將基于 Arduino 開發演示。

        將三明治開發板套件控制板、通訊板、功能板拼接組裝,實物效果如下圖。





        第 3 步:軟件開發-模組調試

        軟件開發過程主要基于 Arduino 實現 MCU 與傳感器和模組協議對接。首先調通 MCU 和模組的通訊,可以實現App配網,MCU 數據傳輸到App。

        步驟 3.1:環境搭建

        環境搭建教程:搜索“三明治開發板環境搭建”

        環境搭建的教程主要講如何在 Arduino IDE 中添加ST開發板,集成 STM32CubeProgrammer 實現編譯下載功能,初學開發者需仔細閱讀。





        步驟 3.2:下載開發資料包


        創建工程,下載移植涂鴉 MCU SDK 開發包詳細教程:MCU快速上手

        具體步驟教程已比較詳細,這里不做贅述,不過在創建產品過程中要注意我們要創建的產品是門磁傳感器,MCU 對接時選擇自定義方案,才能下載到 MCU 開發資料包。



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



        固件選擇時要注意,Wi-Fi 模組默認的固件是通用固件,非低功耗固件,我們需要將功耗類型改為標準功耗,固件選擇標準通用固件,我們才能下載到相關 MCU 開發包。






        步驟 3.3:移植調試

        移植調試詳細教程:MCU SDK開發包移植調試

        移植成功配網會看到選擇的產品面板,接下來我們需要編寫獲取干簧管狀態的邏輯代碼。





        第 4 步:軟件開發-傳感器調試


        干簧管受磁力影響,輸出的狀態為高或低電平,因此 MCU 只需讀取 IO 狀態,判斷門磁狀態即可,代碼比較簡單。官網讀取 IO 狀態代碼示例:

        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 需要將數據傳輸給App展示,上報函數如下:

        mcu_dp_bool_update(DPID_DOORCONTACT_STATE,當前門磁); //BOOL型數據上報;

        第 5 步:場景聯動(擴展功能)


        所有功能調試通過后,App 端已經可以接收到門磁感器的數據。智能傳感器最大的應用場景是用來收集傳感數據來和其它產品進行聯動,如果開發者手中有涂鴉生態設備或開發板,可以在App端實現場景聯動功能的配置。

        場景聯動設置教程:場景聯動設置



        小結

        基于涂鴉平臺,使用涂鴉三明治開發板,Arduino IDE編程,快速實現一款智能門磁傳感器產品原型搭建

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞:

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安吉县| 抚宁县| 滨海县| 肃南| 新龙县| 胶南市| 中西区| 吴川市| 云林县| 伊春市| 淅川县| 大理市| 巫山县| 怀来县| 仙桃市| 麻江县| 延安市| 额尔古纳市| 阜城县| 鄂托克前旗| 深州市| 天长市| 金坛市| 芜湖县| 呼伦贝尔市| 花莲市| 公安县| 大连市| 岚皋县| 宜丰县| 台南市| 湖南省| 通辽市| 博罗县| 寿阳县| 赣州市| 富顺县| 甘泉县| 申扎县| 康马县| 肃北|