该项目是为有婴儿、幼儿或宠物的父母和宠物主人设计的,他们可能需要在车内无人看管一段时间。当放置在车内时,该设备会监控热量水平和运动,以确保安全,避免过热。当车内温度升高到安全温度以上时,该设备将发送越来越紧急的文本通知。
虽然这并不能提供一个解决方案来冷却孩子或宠物以防止他们过热,但这确实有助于在死亡发生之前通知父母。
自 1998 年以来,尤其是 2 岁以下的儿童,极易遭受中暑的危害。2018 年,据报道有 52 名儿童被困在过热的车辆内而死亡。即使车窗微开,车内温度也可以在 10 分钟内升高 20 度,在 30 分钟内升高 50 度。对于孩子的身体来说,它的升温速度要快三到五倍,这是一个严重的问题。在阅读了一篇阐述这个确切问题的文章后,我起初感到震惊和恐惧。对有多少人死亡感到震惊,并对还没有解决方案感到震惊。希望通过这个项目,它将成为创造新的安全可靠设备的垫脚石,以帮助确保他人的安全并帮助未来的孩子被困在过热的车辆内。
某物
使用 Boron 的快速入门指南将电路板注册到粒子云环境中。大约花了半天时间,才将 SIM 卡注册到本地蜂窝网络并能够从 Particle 控制台访问它。
粒子控制台如下图所示,列出了 Boron 设备以及通过 API 调用所需的信息。
为了通过 Visual Studio Code 使用 Particle IDE、WEB 或 IDE,您需要 Personal Access Token 字符串,您可以通过在控制台上选择 WEB IDE 并选择 IDE 底部的设置齿轮找到它,您将在顶部看到个人访问令牌。在下图中,它已被编辑掉,因为它是个人令牌。
获得 PAT 后,使用 Visual Studio Code 环境就像登录到您的 Particle 帐户一样简单。
为了安装和配置您的桌面 IDE,请遵循此处的简单指南。
最后,将以下库包含到您的项目中:Adafruit_ILI9341、Adafruit_DHT 和 Adafruit_mfGFX。确保使用这些名称,因为搜索非常挑剔。该程序显示 Twilio,但实际上并没有使用它,所以忽略添加该库。
编码需要与现实中的实际事件相匹配。在这种情况下,汽车的内部温度在夏季阳光明媚的日子里,温度高达 110 华氏度。
以下参考资料用于找到最佳温度范围,来自 NBC 新闻:“热车中的死亡:事实、数据和预防”、WhatToExpect:“保护您的孩子免受极端高温”和“为什么将孩子留在车内如此危险”。
首先,一组常量定义了温度阈值、要发送的消息数量和消息之间的时间间隔。
//Define constants for device status
#define STATUS_UNKNOWN 0
#define STATUS_OK 1
#define STATUS_WARNING 2
#define STATUS_DANGER 3
#define STATUS_PANIC 4
//Define constants for temperature strenght
#define RANGE_OK 81
#define RANGE_WARNING 89
#define RANGE_DANGER 99
#define WARNING_TIME 5 //mins
#define MSG_WARNING_MAX 4 //every 5 mins
#define WARNING_MAX_TIME 15
#define DANGER_TIME 3 //every 3 mins.
#define DANGER_MAX_TIME 15 //after that it becomes panic.
#define MSG_DANGER_MAX 5
#define PANIC_TIME 1 //every minute
unsigned long thresholdTime=5000;
unsigned long warningThreshold = 1000*60*WARNING_MAX_TIME;
unsigned long dangerThreshold = 1000*60*DANGER_MAX_TIME;
unsigned long warningTriggerThrs = 1000*60*WARNING_TIME;
unsigned long dangerTriggerThrs = 1000*60*DANGER_TIME;
unsigned long panicTriggerThrs = 1000*60*PANIC_TIME;
The
首先检查确保温度低于正常范围(82 华氏度);如果温度低于然后将环境变量重置为正常状态。
if (f < RANGE_OK)
{
if (eventStatus != STATUS_OK)
{
eventStatus = STATUS_OK;
msgCounterWarning = 0;
msgCounterDanger = 0;
eventStartTimer = 0;
eventTimer = 0;
}
}
如果温度达到警告范围 (82 - 89 华氏度),则会向直接触点发送警告消息,并启动 5 分钟的计时器。系统将每 5 分钟发送一条消息。
else if (f > RANGE_OK && f <= RANGE_WARNING)
{
if (eventStatus != STATUS_WARNING)
{
eventStatus = STATUS_WARNING;
msgCounterWarning = 0;
msgCounterDanger = 0;
eventStartTimer = millis();
eventTimer = 0;
sendWarning(f);
}
else
{
eventTimer = millis();
if ((eventTimer - eventStartTimer) < warningThreshold)
{
if ((eventTimer - eventLastTimer) > warningTriggerThrs)
{
sendWarning(f);
msgCounterWarning++;
eventLastTimer = eventTimer;
}
}
}
}
如果温度达到危险范围(90 到 99 华氏度),则每 3 分钟向直接联系人和 Twilio 中的第一个紧急号码寄存器发送一条危险消息。紧急号码将接收设备的位置(只要GPS锁定卫星),然后紧急号码可以联系直接联系人或开车到设备所在的位置,或联系紧急当局。系统将在 Danger 状态下尝试最多 15 分钟,然后升级为 Panic 状态,第三个人和第二个紧急联系人将收到一条短信,以及设备位置。
else if (f > RANGE_WARNING && f < RANGE_DANGER)
{
if (eventStatus == STATUS_PANIC)
{
eventTimer = millis();
if ((eventTimer - eventLastTimer) > panicTriggerThrs)
{
sendPanic(f);
msgCounterDanger++;
eventLastTimer = eventTimer;
}
}
else
{
if (eventStatus != STATUS_DANGER)
{
eventStatus = STATUS_DANGER;
msgCounterWarning = 0;
msgCounterDanger = 0;
eventStartTimer = millis();
eventTimer = 0;
sendDanger(f);
}
else
{
eventTimer = millis();
if ((eventTimer - eventStartTimer) < dangerThreshold)
{
if ((eventTimer - eventLastTimer) > dangerTriggerThrs)
{
sendDanger(f);
msgCounterDanger++;
eventLastTimer = eventTimer;
}
}
else
{
eventStatus = STATUS_PANIC;
sendPanic(f);
}
if (msgCounterDanger > MSG_DANGER_MAX)
{
eventStatus = STATUS_PANIC;
sendPanic(f);
}
}
}
}
如果温度升至紧急范围(99 华氏度及以上),则会向第三人发送紧急消息,并与设备位置的第二个紧急联系人联系。此消息将每分钟发送三条消息,直到温度降至安全范围。
else if (f > RANGE_DANGER)
{
if (eventStatus != STATUS_PANIC)
{
eventStatus = STATUS_PANIC;
msgCounterWarning = 0;
msgCounterDanger = 0;
eventStartTimer = millis();
eventTimer = 0;
}
else
{
eventTimer = millis();
if ((eventTimer - eventLastTimer) > panicTriggerThrs)
{
sendPanic(f);
msgCounterDanger++;
eventLastTimer = eventTimer;
}
}
}
位置链接的创建使用等于空格 ASCII 的 %20 字符代码,以便正确格式化字符串。
这是 Visual Studio Code 设置的快照。
Webhook 是一种 API,它允许您在数据可用时发送数据,而无需您发送数据请求。一旦温度传感器达到某个值,此功能适合我们通过 Twilio 发送 SMS 的需要。
Twilio 的 Webhook 允许我们向特定联系人发送短信。
粒子仪表板允许通过从菜单中选择集成来创建 Webhook。下图显示了用户界面。
选择 Webhook,然后选择新集成。下面,您可以看到触发温度事件时为每个联系人创建的三个 Webhook。
选择 New Integration 会显示 Webhook 模板,您可以从这里按照“使用 Particle Electron 发送 SMS 和 MMS 消息”的说明为 Webhook 添加适当的参数。
使用 Twilio,一个可通过云访问的 API 开发人员平台,我们购买了一个支持 SMS 的号码。当温度传感器返回指定范围内的某些值时,此号码会向预定联系人发送警告消息。
以下是注册和购买电话号码后的 Twilio 仪表板。请注意,在右上角您可以看到一个名为“已验证号码”的链接,您必须添加 Twilio 可以与之通信的号码才能发送短信。使用未经验证(注册)的数字将导致无效的 Webhook 执行。
由于隐私原因,已验证的号码已被删除,但在您输入短信发送的验证码验证号码后,您将看到以下列表显示这些号码。
现在让我们把它们放在一起。
某物
以下快照显示了在旧婴儿座椅上安装传感器以进行测试。
压力传感器安装在座椅底部和靠背上,这些传感器的校准是必要的,尽管不可能,因为我们只有毛茸茸的测试对象。
以下视频显示了使用吹风机提高温度的系统测试。
您可以看到注册号码随着状态从警告-->危险-->恐慌-->正常状态的变化及时收到短信。
这是一条关于紧急状态的 SMS 消息,其中设备的位置通过链接链接到谷歌地图。
除了用作确保车内婴儿、幼儿和宠物安全的系统外,该设备还可以用于长期独自在家的老人或宠物。该设备可以监测房屋内的温度,并确保热量水平不会达到危险水平。虽然与被困在过热汽车中的婴儿相比,家中的中暑并不致命,但保持谨慎和知识渊博仍然很重要。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !