一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>用藥溫度監(jiān)測系統(tǒng)

用藥溫度監(jiān)測系統(tǒng)

2023-07-03 | zip | 0.18 MB | 次下載 | 免費(fèi)

資料介紹

描述

介紹

該項目監(jiān)控平板電腦存儲冷卻室的溫度。它檢查溫度是否在指定的范圍內(nèi),并在溫度有任何偏差時通知用戶。

它基本上分3個階段實施-

  • 第 1 階段 - 記錄室中的溫度值幾個小時。實施多項式回歸的機(jī)器學(xué)習(xí)算法,用于預(yù)測未來值并確定室內(nèi)溫度的邊界。
  • 第 2 階段 - 每 10 秒獲取溫度值,如果溫度超過溫度閾值(我們在第 1 階段設(shè)置),則向用戶發(fā)送通知(通過電子郵件)。
  • 第 3 階段 - 使系統(tǒng)“自力更生” - 使用 z 分?jǐn)?shù)分析,檢測任何異常并通知用戶。

保護(hù)藥物和藥片免受設(shè)備故障或故障的影響對于維持合規(guī)性和質(zhì)量標(biāo)準(zhǔn)至關(guān)重要。

階段1

在這個階段,我們將記錄溫度傳感器的值約 2 小時。我們還將實施多項式回歸模型,以預(yù)測未來一些點(diǎn)的溫度讀數(shù)。根據(jù)結(jié)果??,我們將找到溫度的閾值邊界值。

1.1 構(gòu)建電路

LM35傳感器是一種常用的溫度讀數(shù)傳感器。隨著溫度升高,傳感器兩端的電壓升高,反之亦然。

T = r / 10.24,r-> LM35 傳感器讀數(shù),T-> 溫度(攝氏度)

下面給出了LM35-溫度傳感器與螺栓模塊的電路連接。

poYBAGOYQUOARDx9AAzVEaWpJQs170.jpg
LDR 連接到 Bolt IoT Wifi 模塊
?

將 LM35 連接到螺栓模塊-

1)拿著LM35,這樣你就可以看到上面寫的LM35。

2)從這個位置最左邊的引腳連接到Vcc(螺栓模塊上的+5v)。

3)中間引腳連接到輸出(即螺栓模塊上的A0)

4)最右邊的引腳接地(螺栓模塊上的GND)

通過 Micro USB 電纜將 Bolt Wifi 模塊連接到電源

1.2 創(chuàng)建產(chǎn)品并將其鏈接到我們的設(shè)備

轉(zhuǎn)到https://cloud.boltiot.com/ ,然后按照以下步驟操作:

?

1.3 實現(xiàn)多項式回歸算法

  • 多項式回歸是一種機(jī)器學(xué)習(xí)算法,我們在其中找到一個最能模擬數(shù)據(jù)集的多項式方程。

多項式方程的形式是-

y = f(x),其中 f(x) 是 x 的不同冪次之和的函數(shù)。
pYYBAGOYQUeAKoAkAAAP5RI8tks381.png
我們試圖找到最適合給定數(shù)據(jù)集的多項式方程。
?

在這里,我們使用“時間”作為 x 坐標(biāo)。然后我們可以使用獲得的多項式方程來預(yù)測未來的溫度值。

  • 步驟- 1. 單擊配置此產(chǎn)品。
poYBAGOYQUyAKKbHAAEg3brA1w0176.jpg
?

2. 點(diǎn)擊 A0 引腳并給它一個名字——“temp”。(因為該引腳將溫度作為輸入)

根據(jù)您的要求選擇數(shù)據(jù)收集率。(我選擇了 5 分鐘)

pYYBAGOYQVCATS1pAAF8drVVZJA948.png
?

3. 單擊代碼。選擇.js作為擴(kuò)展文件,編寫如下代碼。

setChartLibrary('google-chart')
setChartTitle('Polynomial Regression')
setChartType('predictionGraph')
setAxisName('time_stamp','temp')
mul(0.0977)
plotChart('time_stamp','temp')

注意-a)我使用谷歌圖表庫來實現(xiàn)多項式回歸。

b) setChartLibrary() - 選擇 google 圖表庫 setChartTitle() - 設(shè)置圖表的標(biāo)題 setChartType() - 將圖表類型設(shè)置為預(yù)測圖(即它選擇多項式回歸) setAxisName() - 將名稱設(shè)置為 x 和 y軸(分別是時間和溫度值) mul(0.0977)- 將溫度值乘以 0.0977,將溫度傳感器讀數(shù)轉(zhuǎn)換為以攝氏度為單位的溫度。 plotChart() - 最后繪制圖表。

4. 保存配置。

poYBAGOYQVWAduOEAAFFU7uRYlg239.png
保存配置。
?

5. 部署硬件配置并單擊“查看此設(shè)備”。

pYYBAGOYQWCAUzwoAAEfzOb3me4678.jpg
?

6. 現(xiàn)在將傳感器在冷卻室中放置約 2 小時(蓋上蓋子)并記錄數(shù)值。(PS - 我使用了一個封閉的托盤,里面有一些冰塊作為房間,但你可以把設(shè)置放在冰箱里)。

pYYBAGOYQYeAXy5PAAc7OrTFsBk001.jpg
冷卻室托盤,里面有一些冰塊。
?
  • 了解預(yù)測模型-
poYBAGOYQZuASkfYAAQR61F66II411.jpg
當(dāng)您單擊預(yù)測按鈕時,除了顯示的數(shù)據(jù)圖之外,還有 2 個圖。這些圖表是預(yù)測歷史和預(yù)測數(shù)據(jù)。
?

預(yù)測點(diǎn):這個數(shù)字告訴 Visualizer 需要預(yù)測多少未來數(shù)據(jù)點(diǎn)。因此,如果您將產(chǎn)品設(shè)置為每 5 分鐘收集一次數(shù)據(jù),并選擇 4 個預(yù)測點(diǎn),Visualizer 將預(yù)測趨勢并在未來 30 分鐘內(nèi)顯示 4 個點(diǎn)。

No. 多項式系數(shù):Polynomial Visualizer 處理給定的輸入時間相關(guān)數(shù)據(jù),并輸出以下形式的函數(shù)的系數(shù):

pYYBAGOYQZ6ATt_sAAA8w2hRdKQ274.png
?

最接近輸入數(shù)據(jù)的趨勢。這個數(shù)字告訴 Visualizer 函數(shù)中應(yīng)該存在多少元素,即 n 的值。

幀大?。?/font>這些是 Visualizer 將用于預(yù)測數(shù)據(jù)趨勢的先前數(shù)據(jù)點(diǎn)的數(shù)量。例如,如果將此值設(shè)置為 3,Visualizer 將使用前 3 個點(diǎn)來預(yù)測趨勢。

預(yù)測歷史圖表可幫助您調(diào)整機(jī)器學(xué)習(xí)模型。您必須更改以下參數(shù),以使該圖表最接近實際數(shù)據(jù)。當(dāng)這種情況發(fā)生時,預(yù)測數(shù)據(jù)或預(yù)測的未來溫度將是最準(zhǔn)確的。

這在有特定要求時很有用,例如 - 片劑的溫度不得一次保持在 -33 到 -30 度之間超過 20 分鐘。使用預(yù)測數(shù)據(jù),只要圖表預(yù)測溫度將保持在 -33 和 -30 攝氏度范圍內(nèi)超過 20 分鐘,我們就可以及早采取行動。

1.4設(shè)置室內(nèi)溫度邊界

poYBAGOYQbyAVTyIAALEB0it2k0310.png
從云端下載數(shù)據(jù)
?

通過查看數(shù)據(jù),我們可以將閾值設(shè)置為26*C 傳感器值 - 277)和34*C (傳感器值 - 351)

第二階段

我們將編寫一個 python 代碼來獲取溫度數(shù)據(jù),每 10 秒,如果溫度超過我們在 1.4 部分中確定的溫度閾值,則發(fā)送電子郵件警報(通過 Mailgun)。

因此,如果腔室中出現(xiàn)任何問題(由于溫度變化),可以很容易地檢測到并進(jìn)行修復(fù)。

2.1 設(shè)置 Mailgun

使用過 Mailgun——它是一個電子郵件自動化服務(wù)。它有一套非常強(qiáng)大的用于發(fā)送電子郵件的內(nèi)置功能。開發(fā)人員可以在 Mailgun API 的幫助下處理他們的電子郵件。

第 1 步 - 打開https://www.mailgun.com/并注冊免費(fèi)試用帳戶。

第 2 步 - 遵循以下步驟 -

?

2.2 服務(wù)器和SSH終端軟件

在這個項目中使用了數(shù)字海洋云服務(wù)。

DigitalOcean 是一家云計算供應(yīng)商,為軟件開發(fā)人員提供基礎(chǔ)設(shè)施即服務(wù) (IaaS) 平臺。

  • 單擊此鏈接- https://www.digitalocean.com/并創(chuàng)建一個帳戶并進(jìn)行驗證。創(chuàng)建一個 Droplet。(確保選擇離您最近的數(shù)據(jù)中心
  • 您將通過郵件獲得登錄憑據(jù)和服務(wù)器 IP。

我使用“putty”軟件通過 SSH 連接到服務(wù)器。SSH 是一種網(wǎng)絡(luò)協(xié)議,它允許我們通過 Internet 遠(yuǎn)程訪問計算機(jī)。

  • 單擊 - https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html并根據(jù)您的 Windows 體系結(jié)構(gòu)從包文件列表中選擇 Windows 安裝程序。
  • 安裝膩?zhàn)雍?,通過郵件接收到的droplet的憑據(jù)和IP地址登錄。更改新密碼并設(shè)置新密碼。

看看,在膩?zhàn)又械卿洝?/font>

?
?
?
pYYBAGOYQb-AMA67AACfYEl60_I240.jpg
?
1 / 4 ?寫出droplet的ip地址
?

2.3 配置文件

我們必須創(chuàng)建一個文件來存儲 Mailgun 和 Bolt IoT 的所有憑據(jù)。

Bolt 模塊的 API 密鑰和設(shè)備 ID 可以如下確定:

pYYBAGOYQcGAYKBLAAECSCHsTLM833.jpg
?
  • 轉(zhuǎn)到 API 部分以了解 API 密鑰。
poYBAGOYQcaAK8o9AAEIpbLaTag142.png
?

2.4 編寫最終的python代碼

代碼算法——

  • 從 Bolt 設(shè)備中獲取最新的傳感器值。
?

收到郵件截圖——

poYBAGOYQd6AZX30AAKEga0QCJs000.jpg
?

階段 - 3

在階段 -2 中,我手動設(shè)置了溫度傳感器的閾值范圍。但在這個階段,我將使用Z-score算法來動態(tài)更改發(fā)送警報的范圍。

這個階段的要點(diǎn)是——

當(dāng)腔室工作正常時,溫度變化會很慢,系統(tǒng)的界限會隨著這種變化而變化。但是當(dāng)出現(xiàn)任何系統(tǒng)故障或任何問題時,房間內(nèi)的溫度會突然發(fā)生變化。因此,系統(tǒng)將檢測到異常并迅速提醒用戶存在問題。

3.1 Z分?jǐn)?shù)分析

Z-score 分析是一種用于異常檢測的算法。在這里,溫度的突然變化超出(閾值)范圍值,是一種異常情況。值的范圍稱為界限(上限和下限)。這些界限是使用輸入值、幀大小和乘法因子計算的。幀大小是 Z 分?jǐn)?shù)分析所需的最小輸入值數(shù)量,乘法因子確定邊界與輸入值曲線的接近程度。

pYYBAGOYQeGAb4QUAAAiMnhydlM277.png
?

上面給出的是計算邊界的公式。這里輸入表示為“Vi”,“r”表示幀大小,“C”是乘法因子。首先,我們計算輸入值的平均值(Mn)(對于每個新輸入,再次計算平均值)。每個輸入值的變化(來自平均值)為 (Vi - Mn)^2。Z 分?jǐn)?shù) (Zn) 的計算如上所示(每個輸入值的變化平均值的平方根乘以乘法因子)。界限表示為“Tn”,上限計算為 (Vi + Zn),下限計算為 (Vi - Zn)。

幀大小和倍增因子是使用試錯法確定的。

3.2 修改配置文件

MAILGUN_API_KEY = 'This is the private API key which you can find on your Mailgun Dashboard' 
SANDBOX_URL= 'You can find this on your Mailgun Dashboard' 
SENDER_EMAIL = 'This would be test@your SANDBOX_URL'
RECIPIENT_EMAIL = 'Enter your Email ID Here'
API_KEY = 'This is your Bolt Cloud account API key'
DEVICE_ID = 'This is the ID of your Bolt device'
FRAME_SIZE = 10
MUL_FACTOR = 6

幀大小和倍增因子猜測為 10 和 6,然后根據(jù)要求進(jìn)行調(diào)整。

3.3異常檢測的Python代碼

import email_conf   #import the configuration file
from boltiot import Email, Bolt   #import the boltiot module from the Bolt python library
import json, time, math, statistics #import various python libraries

#//---------FUNCTION TO COMPUTE BOUNDS OR Z SCORE ANALYSIS------------//
def compute_bounds(history_data,frame_size,factor):
#//Function to compute bounds
    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]  # //Returns Low Bound and High Bound

mybolt = Bolt(email_conf.API_KEY, email_conf.DEVICE_ID) # //To identify your bolt device
mailer = Email(email_conf.MAILGUN_API_KEY, email_conf.SANDBOX_URL, email_conf.SENDER_EMAIL, email_conf.RECIPIENT_EMAIL)    # //To identify Mailgun account
history_data=[]    # //Array of input values from LM35
#//---------------------READ INPUT FROM LM35--------------------------//
while True:
    response = mybolt.analogRead('A0')  #//Read input from LM35 at A0 pin
    data = json.loads(response) # //Retrieve the input data in json format
    if data['success'] != 1:
        print("There was an error while retriving the data.")
        print("This is the error:"+data['value'])
        time.sleep(10)
        continue

    print ("This is the value "+data['value'])
    sensor_value=0
    try:
        sensor_value = int(data['value']) # //store current input value in variable
    except e:
        print("There was an error while parsing the response: ",e)
        continue
#//----------------PERFORMING Z SCORE ANALYSIS--------------------------//
    bound = compute_bounds(history_data,email_conf.FRAME_SIZE,email_conf.MUL_FACTOR)
    if not bound:
        required_data_count=email_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']))
        time.sleep(10)
        continue
#//-----------DETECTING ANOMALY AND SENDING ALERTS--------------//
    try:
        if sensor_value > bound[0] :  # //If input crosses upper bound
            print ("The temperature has increased suddenly. Sending an E-mail.")
            response = mailer.send_email("Alert", "The temperature has suddenly increased! ")
            print("This is the response ",response)
        elif sensor_value < bound[1]:   # //If input crosses lower bound
            print ("The light level decreased suddenly. Sending an Email.")
            response = mailer.send_email("Alert", "The temperature has suddenly decreased! ")
            print("This is the response ",response)
        history_data.append(sensor_value);   # //Append each new input to array history_data[]
    except Exception as e:
        print ("Error",e)
    time.sleep(10)     # //Wait for 10 seconds

3.4 演示

當(dāng)一杯熱水靠近傳感器時,溫度突然變化,檢測到溫度值異常。幀大小和倍增因子已經(jīng)以這種方式進(jìn)行了調(diào)整。

?

3.5 輸出說明

由于我已將幀大小設(shè)置為 10,因此在獲取 10 個傳感器值之前,它不會計算 z 分?jǐn)?shù)。

poYBAGOYQeOANuaeAAD-dfQ9T-o412.png
膩?zhàn)虞敵鼋貓D
?

100 秒后(10 幀延遲 10 秒),它會開始計算 z-score 并檢查是否有異常。帶上一杯熱水后,當(dāng)溫度突然變化時,異常是檢測到。

poYBAGOYQeeACIJCAADaCsfs9KE765.png
膩?zhàn)虞敵鼋貓D
?

收到郵件截圖——

pYYBAGOYQfaAMcVRAAHrqjFYkXY978.png
?

因此,這是一種異常檢測中的自力更生系統(tǒng)。

?

?

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級說明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分