OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5076|回复: 0

如何快速设计一款门磁传感器产品?App即可确认门窗关闭

[复制链接]

183

主题

187

帖子

0

精华

高级会员

Rank: 4

积分
813
金钱
813
注册时间
2020-5-19
在线时间
79 小时
发表于 2020-5-21 11:28:14 | 显示全部楼层 |阅读模式
本帖最后由 智能物联研习社 于 2020-6-30 17:36 编辑

概况

智能门磁传感器在智能安防领域扮演着重要的角色,应用的场合也越来越多。离家后不确定家中门窗是否关闭?不妨打开手机确认一下。文介绍如何使用涂鸦三明治开发板快速完成一个智能门磁传感器产品原型。

添加我个人VX:iotkaifazhe,可以免费获取三明治开发面板,以及产品智能化开发相关资料,有任何问题均可向我提问

登录/注册 涂鸦IoT平台

链接:https://auth.tuya.com/?from=https%3A%2F%2Fiot.tuya.com%2F&_source=db5b2e380bb88adaccc9fbc259587499


步骤

第 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端实现场景联动功能的配置。

场景联动设置教程:场景联动设置

[size=0.83em]424145d4c8b14d8683a30c61328901e1.png (47.94 KB, 下载次数: 0)
下载附件
[color=rgb(153, 153, 153) !important]7 分钟前 上传





小结

基于涂鸦平台,使用涂鸦三明治开发板,Arduino IDE编程,快速实现一款智能门磁传感器产品原型搭建

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表