資料介紹
描述
在過(guò)去的幾年里,深度神經(jīng)網(wǎng)絡(luò)在模式識(shí)別、計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別和圖像分類等各種問(wèn)題上為我們提供了最好的結(jié)果。
將機(jī)器學(xué)習(xí)應(yīng)用于傳感器和信號(hào)數(shù)據(jù)使設(shè)備比以往任何時(shí)候都更智能,并將成為物聯(lián)網(wǎng)領(lǐng)域的突破。無(wú)論您使用的是聲音、振動(dòng)、圖像、電信號(hào)還是加速度計(jì)或其他類型的傳感器數(shù)據(jù),您都可以通過(guò)教導(dǎo)機(jī)器使用廉價(jià)的微控制器在邊緣實(shí)時(shí)檢測(cè)和分類事件來(lái)構(gòu)建更豐富的分析用于處理 - 即使是嘈雜的、高變化的數(shù)據(jù)。在這篇研究論文中可以看到更多關(guān)于機(jī)器學(xué)習(xí)和數(shù)據(jù)分析的信息。
在其他黑客博客中,我們介紹了無(wú)線傳感器在許多工業(yè)應(yīng)用中的使用。在不同的用例中,我們看到我們正在獲取大量數(shù)據(jù)。有些是相關(guān)數(shù)據(jù),有些是不相關(guān)的。收集這些數(shù)據(jù)并建立機(jī)器學(xué)習(xí)模型可以幫助我們從傳感器收集相關(guān)信息。
在這個(gè)教學(xué)中,我們將學(xué)習(xí):
- 設(shè)置 ESP32 開(kāi)發(fā)板
- 物聯(lián)網(wǎng)遠(yuǎn)程無(wú)線溫濕度傳感器
- 在無(wú)線溫度傳感器和 ESP32 之間建立連接
- 閃爍 ESP 32 并從無(wú)線溫度和濕度傳感器收集傳感器數(shù)據(jù)
- 使用 Power BI 分析和可視化圖表和圖形中的傳感器數(shù)據(jù)
- 從 Power BI 以 CSV 格式導(dǎo)出傳感器數(shù)據(jù)
- 使用此數(shù)據(jù)創(chuàng)建數(shù)據(jù)集。
- 使用 tensorflow 創(chuàng)建 CNN(卷積神經(jīng)網(wǎng)絡(luò)模型)
硬件和軟件規(guī)格
軟件規(guī)范
硬件規(guī)格
- ThingHz 無(wú)線溫濕度傳感器
- FTDI 串行編程器
獲取溫度和濕度值

我們從無(wú)線溫度和濕度傳感器獲得以下值:
- 攝氏溫度
- 華氏溫度
- 相對(duì)濕度
- 電池使用情況
然后在 Azure IoT 中心對(duì)這些數(shù)據(jù)進(jìn)行可視化和分析。若要開(kāi)始設(shè)置 Azure IoT 中心,請(qǐng)閱讀本教程。為了發(fā)送值 Azure IoT 中心,應(yīng)遵循以下過(guò)程。
Azure IoT 中心遵循 MQTT 協(xié)議以發(fā)布和訂閱數(shù)據(jù)。
- Azure 函數(shù)是 azure 門(mén)戶提供的另一個(gè)重要功能。使用 Azure 函數(shù),我們可以在云中編寫(xiě)一段代碼或函數(shù)。在這個(gè)項(xiàng)目中,我們正在解析包含原始傳感器數(shù)據(jù)的 JSON,并使用 Azure 函數(shù)從中獲取真實(shí)的溫度和濕度值。要設(shè)置 Azure 功能,請(qǐng)遵循本教程。
- 我們將使用解析后的 JSON 原始數(shù)據(jù)獲取真實(shí)的溫度和濕度數(shù)據(jù)
public static async Task Run(HttpRequestMessage req, TraceWriter log)
{ double humidity;
int rawTemp;
double Ctemp;
double Ftemp;
double voltage;
string utcEnque;
string devFormat;
string utcProcess;
log.Info("C# HTTP trigger function processed a request: " + content);
JArray array = JArray.Parse($"{await req.Content.ReadAsStringAsync()}");
//parsing the JSON array
foreach(dynamic message in array){
utcProcess = message.EventProcessedUtcTime;
utcEnque = message.EventEnqueuedUtcTime;
humidity = ((message.Humid1)*256 + (message.Humid2))/100;
rawTemp = ((message.Temp1)*256 + (message.Temp2));
Ctemp = rawTemp /100.0;
Ftemp = Ctemp *1.8 + 32;
int bat = ((message.Bat1)*256 + (message.Bat2));
voltage = 0.00322 * bat;
string utcTime = utcProcess.ToString();
DateTime localDateTime = DateTime.Parse(utcTime);
DateTime utcDateTime = localDateTime.ToUniversalTime();
string usTimeZone = "US Eastern Standard Time";
TimeZoneInfo ust = TimeZoneInfo.FindSystemTimeZoneById(usTimeZone);
DateTime dateTime = TimeZoneInfo.ConvertTime(utcDateTime, ust);
log.Info(dateTime.ToString("dd/MM/yyyy HH:mm:ss")); \
}
return req.CreateResponse(HttpStatusCode.OK, "Executed");
}
public class Message{
[JsonProperty("temp1")]
public int temp1 { get; set; }
[JsonProperty("temp2")]
public int temp2 { get; set; }
[JsonProperty("humid1")]
public int humid1 { get; set; }
[JsonProperty("humid2")]
public int humid2 { get; set; }
[JsonProperty("bat1")]
public int bat1 { get; set; }
[JsonProperty("bat2")]
public int bat2 { get; set; }
}
在 PowerBi 中分析數(shù)據(jù)
我們正在使用 Power BI 來(lái)可視化數(shù)據(jù)。它提供了分析數(shù)據(jù)的交互式方法。此數(shù)據(jù)可以以折線圖、條形圖、餅圖等形式進(jìn)行解釋。首先在 Power Bi 中創(chuàng)建一個(gè)帳戶并登錄到您的帳戶。在上一篇文章中,我們?cè)O(shè)置了 Power Bi 并使用流分析作業(yè)將數(shù)據(jù)發(fā)送到 Power Bi。在這篇文章中,我們使用 Azure 功能將傳感器數(shù)據(jù)發(fā)送給 Bi。要設(shè)置 Power Bi,請(qǐng)閱讀此博客。
有四種方法可以將數(shù)據(jù)發(fā)送到 Power Bi:
- 將數(shù)據(jù)從 IoT 中心直接流式傳輸?shù)?Power Bi。
- 使用 API 向 Power Bi 發(fā)送數(shù)據(jù)。
- 使用 web-hook 函數(shù)使用 PubNub。
在我們的例子中,我們使用 Power BI API 并從 azure 函數(shù)向 Power BI 發(fā)送 HTTP 響應(yīng)。可視化面板中列出了不同的圖形、折線圖、Pi 圖等。我們可以通過(guò)從可視化面板中選擇任何圖表來(lái)創(chuàng)建圖表。
我們還可以將數(shù)據(jù)導(dǎo)出為 Excel 表格或 CSV 格式。在后期可用于數(shù)據(jù)分析。
PowerBI 的 Azure 函數(shù)代碼
從 JSON 中解析所有 JSON 對(duì)象,并獲取溫度、濕度等的真實(shí)值。這里的產(chǎn)品是一個(gè)產(chǎn)品類對(duì)象,我們?cè)谄渲写鎯?chǔ)解析的值。
Product product = new Product();
foreach(dynamic message in array){
humidity = ((message.humid1)*256 + (message.humid2))/100;
rawTemp = ((message.temp1)*256 + (message.temp2));
Ctemp = rawTemp /100.0;
Ftemp = Ctemp *1.8 + 32;
int bat = ((message.bat1)*256 + (message.bat2));
voltage = 0.00322 * bat;
utcProcess = message.EventProcessedUtcTime;
utcEnque = message.EventEnqueuedUtcTime;
product.Ctemperature = Ctemp;
product.Ftemperature = Ftemp;
product.humid = humidity;
product.battery = voltage;
//product.dateTime = ;
product.EventProcessedUtcTime=utcProcess;
product.EventEnqueuedUtcTime=utcEnque;
}
public class Product{
public double Ctemperature{get; set;}
public double humid{get; set;}
public double battery{get; set;}
//public double dateTime{get; set;}
public string EventProcessedUtcTime { get; set; }
public string EventEnqueuedUtcTime { get; set; }
public double Ftemperature{get; set;}}
- 現(xiàn)在創(chuàng)建一個(gè)變量來(lái)存儲(chǔ) Power Bi 的連接字符串
- 創(chuàng)建 HTTP 客戶端實(shí)例
string connString = "https://api.powerbi.com/beta/***************";
?
HttpClient client = new HttpClient();
- 我們需要發(fā)送 JSON 給 Bi 供電。因此,使用模型類對(duì)象序列化 Json。
- 將轉(zhuǎn)換后的 JSON 作為 HTTP 請(qǐng)求發(fā)送到 power bi。
string output = JsonConvert.SerializeObject(product);
HttpContent httpContent = new StringContent("[" + output + "]");
HttpResponseMessage response = await client.PostAsync(connString, httpContent);
response.EnsureSuccessStatusCode();
創(chuàng)建數(shù)據(jù)集

該數(shù)據(jù)集由 CSV 格式的 Power BI 中的溫度、濕度值組成。使用這些信息,我們將預(yù)測(cè)機(jī)器的狀況。機(jī)器狀況按以下方式分類
- 良好的條件
- 良好的條件
- 粗糙的條件
- 非常粗糙的條件
- 危險(xiǎn)等級(jí)
- 病情嚴(yán)重
溫度和濕度值稱為Features ,與這些值相關(guān)的條件稱為Labels 。我們將對(duì)該數(shù)據(jù)集進(jìn)行特征提取并訓(xùn)練該數(shù)據(jù)集以映射真實(shí)標(biāo)簽。將訓(xùn)練數(shù)據(jù)集與測(cè)試集進(jìn)行比較以找到真實(shí)結(jié)果。這種機(jī)器學(xué)習(xí)方法稱為線性回歸。
訓(xùn)練數(shù)據(jù)集

我們將數(shù)據(jù)集分為兩部分:
- 訓(xùn)練集- 訓(xùn)練集包含 800 個(gè)特征。
- 測(cè)試集- 測(cè)試集包含大約 500 個(gè)特征。
我們正在使用遵循線性回歸的LDA(線性判別分析)來(lái)訓(xùn)練數(shù)據(jù)。使用 LDA 提取特征后。這些特征被提供給卷積層。在這一層,權(quán)重與輸入進(jìn)行卷積,并將偏差添加到其中。這個(gè)過(guò)程針對(duì)不同的卷積層進(jìn)行。然后我們添加一個(gè)最大池化層并添加一個(gè)激活函數(shù)(在我們的案例中我們使用Relu ,更多關(guān)于這可以在這項(xiàng)研究工作中找到),其中再次對(duì)特征進(jìn)行下采樣以使用正確的標(biāo)簽映射數(shù)據(jù)。然后在最后我們有一個(gè)完全連接的層,其中特征再次被向下采樣到標(biāo)簽大小。最后一層的大小等于標(biāo)簽的大小。

優(yōu)化準(zhǔn)確性和損失

我們優(yōu)化了2000次迭代的數(shù)據(jù)集,發(fā)現(xiàn)如下結(jié)果:
培訓(xùn)結(jié)果
- 訓(xùn)練準(zhǔn)確率(1500 epochs)- 100%
- 訓(xùn)練損失(10 個(gè)時(shí)期)- 3.4%
試驗(yàn)結(jié)果
- 測(cè)試準(zhǔn)確率(1500 epochs)- 98.7%
- 測(cè)試損失(10 個(gè)時(shí)期)- 12.5%
整體代碼
此設(shè)置的固件可在此GitHub 存儲(chǔ)庫(kù)中找到
- 使用Azure存儲(chǔ)的運(yùn)動(dòng)傳感器監(jiān)控?cái)z像頭
- 數(shù)據(jù)分析工具下載 5次下載
- 基于大數(shù)據(jù)分析LTE下行速率影響因素研究案例 15次下載
- 工程大數(shù)據(jù)分析——汽車傳感器數(shù)據(jù)應(yīng)用 11次下載
- 基于流形學(xué)習(xí)的T分布式多傳感器體域網(wǎng) 5次下載
- 基于LabVIEW的電機(jī)振動(dòng)數(shù)據(jù)分析平臺(tái) 61次下載
- 焊接機(jī)器人實(shí)時(shí)跟蹤系統(tǒng)傳感器的設(shè)計(jì)技術(shù)研究說(shuō)明 10次下載
- 使用多傳感器組合導(dǎo)航方法實(shí)現(xiàn)SLAM的設(shè)計(jì)與應(yīng)用 12次下載
- 數(shù)據(jù)分析有哪些思維詳細(xì)說(shuō)明 0次下載
- 工作環(huán)境準(zhǔn)備及數(shù)據(jù)分析建模理論基礎(chǔ)的學(xué)習(xí)課件免費(fèi)下載 0次下載
- 數(shù)據(jù)分析修煉手冊(cè)教程免費(fèi)下載 1次下載
- MPU6050傳感器進(jìn)行數(shù)據(jù)分析與濾波的詳細(xì)資料說(shuō)明 24次下載
- 如何使用PIC單片機(jī)進(jìn)行傾角傳感器的設(shè)計(jì) 8次下載
- 數(shù)據(jù)分析、數(shù)據(jù)挖掘和數(shù)據(jù)統(tǒng)計(jì)的概念與主要區(qū)別及其舉例分析 18次下載
- 數(shù)據(jù)分析 高級(jí)分析入門(mén) 19次下載
- 機(jī)器學(xué)習(xí)在數(shù)據(jù)分析中的應(yīng)用 721次閱讀
- 數(shù)據(jù)分析有哪些工具 8793次閱讀
- 如何分析來(lái)自定制PCB傳感器子系統(tǒng)的數(shù)據(jù) 1337次閱讀
- 機(jī)器學(xué)習(xí)進(jìn)行靜態(tài)分析的步驟 1901次閱讀
- 機(jī)器學(xué)習(xí)三劍客之Numpy怎么學(xué) 1473次閱讀
- 什么是大數(shù)據(jù)分析?大數(shù)據(jù)分析的含義與目前形式 1.6w次閱讀
- 分析壓力傳感器原理結(jié)構(gòu) 7292次閱讀
- 工業(yè)維護(hù)中使用機(jī)器學(xué)習(xí) 3233次閱讀
- 12種用于數(shù)據(jù)分析的Pandas技巧可用來(lái)學(xué)習(xí)Python詳細(xì)概述 5360次閱讀
- 機(jī)器學(xué)習(xí)開(kāi)發(fā)課程,使用Pandas探索數(shù)據(jù)分析 4837次閱讀
- 色彩傳感器工作原理及應(yīng)用方案分析 3.3w次閱讀
- 機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘的關(guān)系 4353次閱讀
- 大數(shù)據(jù)分析到底需要多少種工具_(dá)大數(shù)據(jù)分析總結(jié) 1.1w次閱讀
- 常用的數(shù)據(jù)分析方法有哪些 1.8w次閱讀
- 機(jī)器人傳感器的類別及應(yīng)用原理 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論