智能门磁传感器在智能安防领域扮演着重要的角色,应用的场合也越来越多。离家后不确定家中门窗是否关闭?不妨打开手机确认一下。文介绍如何使用涂鸦三明治开发板快速完成一个智能门磁传感器产品原型。
MCU 方案与 SoC 方案不同,传感器和联网模组的驱动代码写在 MCU 中,开发者可以自己开发 MCU 代码,拥有更多的可玩性。因此在开发前,我们需要对方案有个整体了解,方便后续开发。
涂鸦三明治开发板门磁传感套件中,传感器板干簧管根据开合状态输出高低电平给MCU 控制板,MCU 通过串口 与 Wi-Fi 通信板连接,使用涂鸦智能 App 配网,可以将门磁状态展现在手机端,并与其他智能设备联动。MCU 型号为 STM32G071RB,Demo 教程采用 Arduino IDE 进行编程,可方便的移植于各 Arduino 系列开发板。
本次使用的涂鸦三明治开发板门磁传感套件主要包含:
将三明治开发板套件控制板、通讯板、功能板拼接组装,实物效果如下图。
软件开发过程主要基于 Arduino 实现 MCU 与传感器和模组协议对接。首先调通 MCU 和模组的通讯,可以实现App配网,MCU 数据传输到App。
环境搭建教程:三明治开发板环境搭建
环境搭建的教程主要讲如何在 Arduino IDE 中添加ST开发板,集成 STM32CubeProgrammer 实现编译下载功能,初学开发者需仔细阅读。
创建工程,下载移植涂鸦 MCU SDK 开发包详细教程:MCU快速上手
具体步骤教程已比较详细,这里不做赘述,不过在创建产品过程中要注意我们要创建的产品是门磁传感器,MCU 对接时选择自定义方案,才能下载到 MCU 开发资料包。
功能根据自身需求选择,这里基本功能DP建议选择门磁、告警、电量。
固件选择时要注意,Wi-Fi 模组默认的固件是通用固件,非低功耗固件,我们需要将功耗类型改为标准功耗,固件选择标准通用固件,我们才能下载到相关 MCU 开发包。
移植调试详细教程:MCU SDK开发包移植调试
移植成功配网会看到选择的产品面板,接下来我们需要编写获取干簧管状态的逻辑代码。
干簧管受磁力影响,输出的状态为高或低电平,因此 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型数据上报;
所有功能调试通过后,App 端已经可以接收到门磁感器的数据。智能传感器最大的应用场景是用来收集传感数据来和其它产品进行联动,如果开发者手中有涂鸦生态设备或开发板,可以在App端实现场景联动功能的配置。
场景联动设置教程:场景联动设置
基于涂鸦平台,使用涂鸦三明治开发板,Arduino IDE编程,快速实现一款智能门磁传感器产品原型搭建
该内容对您有帮助吗?
是我要提建议