资料介绍
描述
一、简介
该项目通过分析温度的突然升高来帮助检测冰箱门是否被打开。该项目采用 LM35 温度传感器,根据周围的温度给出模拟值。使用 Z 分数分析检测到突然变化,并使用 Twilio-SMS 消息传递 API 设置了警报系统以通知操作员。
它还专注于在 Bolt Cloud 上记录温度数据。
2. 示范
3.工作
在本节中,我们将了解该项目的功能。
- 3.1 LM35 温度传感器的电路连接
将传感器的“电源”引脚连接到 Bolt 模块的 5V 输出,将传感器的“接地”引脚连接到 Bolt 模块上的“GND”端口,并将传感器的“输出”引脚连接到“A0”螺栓模块上的销钉。还将 Bolt 模块连接到 usb-A 到 mini usb 电缆以连接到电源。
- 3.2 配置文件
该项目的 python 编码已在 Ubuntu (Linux) 中完成。在我们开始在 python 中编写温度传感器之前,我们需要制作一个配置文件,其中包含每个用户/设备的特定键。我们将在我们的主代码中导入这个文件并使用各种属性。这样做的好处是每个用户只需更改配置文件的内容即可使用该产品。
以下是配置文件(命名为 conf.py):
SID = 'You can find SID in your Twilio Dashboard'
AUTH_TOKEN = 'You can find on your Twilio Dashboard'
FROM_NUMBER = 'This is the no. generated by Twilio. You can find this on your Twilio Dashboard'
TO_NUMBER = 'This is your number. Make sure you are adding +91 in beginning'
API_KEY = 'This is your Bolt Cloud accout API key'
DEVICE_ID = 'This is the ID of your Bolt device'
Bolt 模块的 API 密钥和设备 ID 可以如下确定:
>>按照 https://cloud.boltiot.com/ 上的说明将您的 Bolt 设备连接到 Bolt Cloud。
>>之后将出现以下屏幕。螺栓设备 ID 以黄色突出显示。
>>转到API部分以了解API Key。
- 3.3 操作LM35输出值
LM35 温度传感器的模拟输出不是标准温度单位。为了获得正确的温度值,我们将传感器的输出除以 10.24 倍。
温度 = sensor_val/10.24
- 3.4 光强突变检测(Z-评分分析)
Z分数分析用于异常检测。此处的异常是指变量的值(周围环境的光强度)超出某个值范围。值的范围称为界限(上限和下限)。这些界限是使用输入值、帧大小和乘法因子计算的。帧大小是 Z 分数分析所需的最小输入值数量,乘法因子确定边界与输入值曲线的接近程度。
上面给出的是计算边界的公式。这里输入表示为“Vi”,“r”表示帧大小,“C”是乘法因子。首先,我们计算输入值的平均值 (Mn)(对于每个新输入,再次计算平均值)。每个输入值的变化(来自平均值)给出为 (Vi - Mn)^2。Z 分数 (Zn) 的计算如上所示(每个输入值的变化平均值的平方根乘以乘法因子)。界限表示为“Tn”,上限计算为 (Vi + Zn),下限计算为 (Vi - Zn)。
帧大小和倍增因子是使用试错法确定的。
- 3.5 创建 Twilio 帐户
第 1 步:在浏览器中打开https://www.twilio.com/ 。
第2步:点击Get a Free API Key
按钮进行注册。
第 3 步:在注册表格中填写所有必要的详细信息。下面是填写好的注册表单的截图。
第 4 步:为了验证他们会询问您的电话号码。在下拉列表中选择印度作为选项,然后输入您的电话号码。
第 5 步:选择“可编程短信”选项。
第 6 步:您可以在此页面上查看 Account SID 和 Auth token。Auth 令牌默认不可见,您可以单击“查看”按钮使 Auth 令牌可见,如下图所示。复制两者并将它们安全地保存在某个地方。
第七步:点击Get a number
按钮。
第8步:然后会出现一个弹出窗口。点击Choose this number
按钮。
第9步:然后会出现一个弹出窗口,其中将包含最终数字。复制此编号并保存到记事本以供将来参考。
- 3.6 完整代码
import conf, json, time, math, statistics
from boltiot import Sms, Bolt
def compute_bounds(history_data,frame_size,factor):
if len(history_data)
return None
if len(history_data)>frame_size :
del history_data[0:len(history_data)-frame_size]
Mn=statistics.mean(history_data)
Variance=0
for data in history_data :
Variance += math.pow((data-Mn),2)
Zn = factor * math.sqrt(Variance / frame_size)
High_bound = history_data[frame_size-1]+Zn
Low_bound = history_data[frame_size-1]-Zn
return [High_bound,Low_bound]
mybolt = Bolt(conf.API_KEY, conf.DEVICE_ID)
sms = Sms(conf.SID, conf.AUTH_TOKEN, conf.TO_NUMBER, conf.FROM_NUMBER)
history_data=[]
frame=5
factor=2
while True:
response = mybolt.analogRead('A0')
data = json.loads(response)
if data['success'] != 1:
print("There was an error while retriving the data.")
print("This is the error:"+data['value'])
time.sleep(10)
continue
sensor_value=0
try:
sensor_value = int(data['value'])/10.24
except e:
print("There was an error while parsing the response: ",e)
continue
print ("This is the current temperature ", sensor_value)
bound = compute_bounds(history_data,frame,factor)
if not bound:
required_data_count=conf.FRAME_SIZE-len(history_data)
print("Not enough data to compute Z-score. Need ",required_data_count," more data points")
history_data.append(int(data['value'])/10.24)
time.sleep(10)
continue
try:
if sensor_value > bound[0] :
print ("The temperature has increased suddenly. Sending an SMS.")
response = sms.send_sms("Someone has opened the fridge door")
print("This is the response ",response)
history_data.append(sensor_value);
except Exception as e:
print ("Error",e)
time.sleep(10)
4. 数据记录
从传感器收集的温度数据可以发送到 Bolt Cloud 并以图表的形式表示以供分析。
第 1 步:访问 cloud.boltiot.com 并创建一个新产品。创建产品时,选择产品类型为输出设备,接口类型为GPIO。创建产品后,选择最近创建的产品,然后单击配置图标。
第 2 步:移动到代码选项卡。
第三步:选择文件类型为“.js”。
第 4 步:编写代码,然后保存产品。
- 代码
setChartLibrary('google-chart');
setChartType('predictionGraph');
setChartTitle('Temperature values');
setAxisName('Time','Temperature');
setCrosshair(true);
mul(0.097);
plotChart('time_stamp','temp');
第 5 步:将产品链接到所需的 Bolt 模块
第 6 步:您可以通过单击“查看此设备”查看记录的数据。
- 采用NXP Rapid IoT的冰箱门报警器
- 通过感知温度和用水量来帮助用户有效洗手
- 使用Adafruit ESP8266制作冰箱门报警
- 冰箱门报警器开源分享
- 冰箱门的简单报警器开源项目
- 串口打开失败!请检查指定串口是否存在或者已被打开
- 一种融合深度和浅层特征的多视觉癫痫检测算法 8次下载
- 电源设计中通过分压器来实现所需的输出电压
- 3D目标检测是否可以用层级图网络来完成
- 温度的检测方法及其特点及如何实现温度的测量 38次下载
- 电阻式温度检测器(RTD)基础知识及参考设计
- AN679温度检测技术 3次下载
- 电冰箱门开限时报警器
- 基于危险模式的异常检测模型
- 检测熔池背面温度的电涡流传感器设计
- 冰箱压缩机控制方案介绍 168次阅读
- 空调温度控制器怎么使用 空调温度控制器坏了会怎样 1515次阅读
- 3种常见冰箱电路图、控制电路、电源电路分析 1w次阅读
- 基于热敏电阻的温度检测系统设计挑战和电路配置 1148次阅读
- 通过案例分析轴瓦温度在汽轮机中的应用 2399次阅读
- LM35温度传感器功能换为摄氏温度值及设计思路 2.6w次阅读
- 电源设计中通过分压器来实现所需的输出电压 3963次阅读
- 基于STM32单片机通过使用宏assert_param来实现运行时间检测 1403次阅读
- 怎样检测电流传感器是否为良品? 2585次阅读
- 通过屏蔽栅极和电荷平衡高电压技术设计的效率90%+开关电源 890次阅读
- CIC2851E音乐型电冰箱关门提醒电路 1146次阅读
- 冰箱温控器坏了的症狀_怎样测量冰箱温控器开关好坏 8.3w次阅读
- 冰箱冷藏室结冰原因?怎么处理?冰箱冷藏室温度一直上升? 1.6w次阅读
- 冰箱十大排名_冰箱外壳发烫正常吗?冰箱有冰怎么办?冰箱怎样快速除臭? 1w次阅读
- 冰箱保鲜室出水怎么解决?冰箱不制冷怎么回事?冰箱制冷效果差怎么办?冰箱高温报警怎么处理? 1.4w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多