电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>通过分析温度的升高来帮助检测冰箱门是否被打开

通过分析温度的升高来帮助检测冰箱门是否被打开

2022-11-23 | zip | 0.06 MB | 次下载 | 免费

资料介绍

描述

一、简介

该项目通过分析温度的突然升高来帮助检测冰箱门是否被打开。该项目采用 LM35 温度传感器,根据周围的温度给出模拟值。使用 Z 分数分析检测到突然变化,并使用 Twilio-SMS 消息传递 API 设置了警报系统以通知操作员

它还专注于在 Bolt Cloud 上记录温度数据。

2. 示范

 

3.工作

在本节中,我们将了解该项目的功能。

  • 3.1 LM35 温度传感器的电路连接
poYBAGN68ECAcbqWAAAs2RSxXhw888.png
LM35 引脚布局
 
 
 
 
poYBAGN68EOAZ0OPAACZvTDU8TY971.png
 
1 / 2硬件连接
 

传感器的“电源”引脚连接到 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 以黄色突出显示。

pYYBAGN68EeAGTNzAADRIcBhmv0449.jpg
 

>>转到API部分以了解API Key。

poYBAGN68EqAR6MNAABnhIUDkwg304.jpg
 
  • 3.3 操作LM35输出值

LM35 温度传感器的模拟输出不是标准温度单位。为了获得正确的温度值,我们将传感器的输出除以 10.24 倍。

温度 = sensor_val/10.24

  • 3.4 光强突变检测(Z-评分分析)

Z分数分析用于异常检测。此处的异常是指变量的值(周围环境的光强度)超出某个值范围。值的范围称为界限(上限和下限)。这些界限是使用输入值、帧大小和乘法因子计算的。帧大小是 Z 分数分析所需的最小输入值数量,乘法因子确定边界与输入值曲线的接近程度。

pYYBAGN68EyACXoxAAAyS_kcEM8931.png
 

上面给出的是计算边界的公式。这里输入表示为“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)
poYBAGN68E-AYEfUAAD9VyuhY8Y451.jpg
正在执行的代码截图
 
poYBAGN68FKAOd23AACgOxLiOzQ085.jpg
收到消息截图
 

4. 数据记录

从传感器收集的温度数据可以发送到 Bolt Cloud 并以图表的形式表示以供分析。

第 1 步:访问 cloud.boltiot.com 并创建一个新产品。创建产品时,选择产品类型为输出设备,接口类型为GPIO。创建产品后,选择最近创建的产品,然后单击配置图标。

pYYBAGN68FWAKRp7AACRMal5ak0376.png
 

第 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 步:您可以通过单击“查看此设备”查看记录的数据。

pYYBAGN68FiAJlloAAEXGe1Pj0I384.png
温度与时间图
 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费