資料介紹
描述
在過去的幾年里,深度神經網絡在模式識別、計算機視覺、語音識別和圖像分類等各種問題上為我們提供了最好的結果。
將機器學習應用于傳感器和信號數據使設備比以往任何時候都更智能,并將成為物聯網領域的突破。無論您使用的是聲音、振動、圖像、電信號還是加速度計或其他類型的傳感器數據,您都可以通過教導機器使用廉價的微控制器在邊緣實時檢測和分類事件來構建更豐富的分析用于處理 - 即使是嘈雜的、高變化的數據。在這篇研究論文中可以看到更多關于機器學習和數據分析的信息。
在其他黑客博客中,我們介紹了無線傳感器在許多工業應用中的使用。在不同的用例中,我們看到我們正在獲取大量數據。有些是相關數據,有些是不相關的。收集這些數據并建立機器學習模型可以幫助我們從傳感器收集相關信息。
在這個教學中,我們將學習:
- 設置 ESP32 開發板
- 物聯網遠程無線溫濕度傳感器
- 在無線溫度傳感器和 ESP32 之間建立連接
- 閃爍 ESP 32 并從無線溫度和濕度傳感器收集傳感器數據
- 使用 Power BI 分析和可視化圖表和圖形中的傳感器數據
- 從 Power BI 以 CSV 格式導出傳感器數據
- 使用此數據創建數據集。
- 使用 tensorflow 創建 CNN(卷積神經網絡模型)
硬件和軟件規格
軟件規范
硬件規格
- ThingHz 無線溫濕度傳感器
- FTDI 串行編程器
獲取溫度和濕度值
我們從無線溫度和濕度傳感器獲得以下值:
- 攝氏溫度
- 華氏溫度
- 相對濕度
- 電池使用情況
然后在 Azure IoT 中心對這些數據進行可視化和分析。若要開始設置 Azure IoT 中心,請閱讀本教程。為了發送值 Azure IoT 中心,應遵循以下過程。
Azure IoT 中心遵循 MQTT 協議以發布和訂閱數據。
- Azure 函數是 azure 門戶提供的另一個重要功能。使用 Azure 函數,我們可以在云中編寫一段代碼或函數。在這個項目中,我們正在解析包含原始傳感器數據的 JSON,并使用 Azure 函數從中獲取真實的溫度和濕度值。要設置 Azure 功能,請遵循本教程。
- 我們將使用解析后的 JSON 原始數據獲取真實的溫度和濕度數據
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 中分析數據
我們正在使用 Power BI 來可視化數據。它提供了分析數據的交互式方法。此數據可以以折線圖、條形圖、餅圖等形式進行解釋。首先在 Power Bi 中創建一個帳戶并登錄到您的帳戶。在上一篇文章中,我們設置了 Power Bi 并使用流分析作業將數據發送到 Power Bi。在這篇文章中,我們使用 Azure 功能將傳感器數據發送給 Bi。要設置 Power Bi,請閱讀此博客。
有四種方法可以將數據發送到 Power Bi:
- 將數據從 IoT 中心直接流式傳輸到 Power Bi。
- 使用 API 向 Power Bi 發送數據。
- 使用 web-hook 函數使用 PubNub。
在我們的例子中,我們使用 Power BI API 并從 azure 函數向 Power BI 發送 HTTP 響應。可視化面板中列出了不同的圖形、折線圖、Pi 圖等。我們可以通過從可視化面板中選擇任何圖表來創建圖表。
我們還可以將數據導出為 Excel 表格或 CSV 格式。在后期可用于數據分析。
PowerBI 的 Azure 函數代碼
從 JSON 中解析所有 JSON 對象,并獲取溫度、濕度等的真實值。這里的產品是一個產品類對象,我們在其中存儲解析的值。
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;}}
- 現在創建一個變量來存儲 Power Bi 的連接字符串
- 創建 HTTP 客戶端實例
string connString = "https://api.powerbi.com/beta/***************";
?
HttpClient client = new HttpClient();
- 我們需要發送 JSON 給 Bi 供電。因此,使用模型類對象序列化 Json。
- 將轉換后的 JSON 作為 HTTP 請求發送到 power bi。
string output = JsonConvert.SerializeObject(product);
HttpContent httpContent = new StringContent("[" + output + "]");
HttpResponseMessage response = await client.PostAsync(connString, httpContent);
response.EnsureSuccessStatusCode();
創建數據集
該數據集由 CSV 格式的 Power BI 中的溫度、濕度值組成。使用這些信息,我們將預測機器的狀況。機器狀況按以下方式分類
- 良好的條件
- 良好的條件
- 粗糙的條件
- 非常粗糙的條件
- 危險等級
- 病情嚴重
溫度和濕度值稱為Features ,與這些值相關的條件稱為Labels 。我們將對該數據集進行特征提取并訓練該數據集以映射真實標簽。將訓練數據集與測試集進行比較以找到真實結果。這種機器學習方法稱為線性回歸。
訓練數據集
我們將數據集分為兩部分:
- 訓練集- 訓練集包含 800 個特征。
- 測試集- 測試集包含大約 500 個特征。
我們正在使用遵循線性回歸的LDA(線性判別分析)來訓練數據。使用 LDA 提取特征后。這些特征被提供給卷積層。在這一層,權重與輸入進行卷積,并將偏差添加到其中。這個過程針對不同的卷積層進行。然后我們添加一個最大池化層并添加一個激活函數(在我們的案例中我們使用Relu ,更多關于這可以在這項研究工作中找到),其中再次對特征進行下采樣以使用正確的標簽映射數據。然后在最后我們有一個完全連接的層,其中特征再次被向下采樣到標簽大小。最后一層的大小等于標簽的大小。
優化準確性和損失
我們優化了2000次迭代的數據集,發現如下結果:
培訓結果
- 訓練準確率(1500 epochs)- 100%
- 訓練損失(10 個時期)- 3.4%
試驗結果
- 測試準確率(1500 epochs)- 98.7%
- 測試損失(10 個時期)- 12.5%
整體代碼
此設置的固件可在此GitHub 存儲庫中找到
- 使用Azure存儲的運動傳感器監控攝像頭
- 數據分析工具下載 5次下載
- 基于大數據分析LTE下行速率影響因素研究案例 15次下載
- 工程大數據分析——汽車傳感器數據應用 10次下載
- 基于流形學習的T分布式多傳感器體域網 5次下載
- 基于LabVIEW的電機振動數據分析平臺 60次下載
- 焊接機器人實時跟蹤系統傳感器的設計技術研究說明 10次下載
- 使用多傳感器組合導航方法實現SLAM的設計與應用 12次下載
- 數據分析有哪些思維詳細說明 0次下載
- 工作環境準備及數據分析建模理論基礎的學習課件免費下載 0次下載
- 數據分析修煉手冊教程免費下載 1次下載
- MPU6050傳感器進行數據分析與濾波的詳細資料說明 24次下載
- 如何使用PIC單片機進行傾角傳感器的設計 8次下載
- 數據分析、數據挖掘和數據統計的概念與主要區別及其舉例分析 18次下載
- 數據分析 高級分析入門 19次下載
- 機器學習在數據分析中的應用 282次閱讀
- 數據分析有哪些工具 8195次閱讀
- 如何分析來自定制PCB傳感器子系統的數據 1205次閱讀
- 機器學習進行靜態分析的步驟 1805次閱讀
- 機器學習三劍客之Numpy怎么學 1395次閱讀
- 什么是大數據分析?大數據分析的含義與目前形式 1.6w次閱讀
- 分析壓力傳感器原理結構 7087次閱讀
- 工業維護中使用機器學習 3169次閱讀
- 12種用于數據分析的Pandas技巧可用來學習Python詳細概述 5226次閱讀
- 機器學習開發課程,使用Pandas探索數據分析 4735次閱讀
- 色彩傳感器工作原理及應用方案分析 3.2w次閱讀
- 機器學習與數據挖掘的關系 4186次閱讀
- 大數據分析到底需要多少種工具_大數據分析總結 1.1w次閱讀
- 常用的數據分析方法有哪些 1.8w次閱讀
- 機器人傳感器的類別及應用原理 1.1w次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多