電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>ESP32邊緣計(jì)算簡(jiǎn)介

ESP32邊緣計(jì)算簡(jiǎn)介

2022-12-14 | zip | 0.05 MB | 次下載 | 2積分

資料介紹

描述

介紹:

邊緣計(jì)算是一種將計(jì)算帶入終端設(shè)備的技術(shù)。在 EDGE-C 中,在網(wǎng)絡(luò)中心(即云)執(zhí)行的計(jì)算被移動(dòng)到終端設(shè)備。這降低了在云中處理大型計(jì)算的復(fù)雜性和開(kāi)銷。這也減少了網(wǎng)絡(luò)使用并實(shí)現(xiàn)了快速響應(yīng),從而提高了傳輸速率。

邊緣計(jì)算主要解決以下挑戰(zhàn):

  • 隱私和安全
  • 可擴(kuò)展性
  • 可靠性
  • 速度
  • 效率

在本文中,我們將深入研究實(shí)現(xiàn) EDGE-C 的簡(jiǎn)單實(shí)驗(yàn)。首先,我們將討論一個(gè)問(wèn)題。假設(shè)我們有一個(gè)設(shè)備可以收集特定位置的溫度和濕度并將其傳輸?shù)皆贫恕?/font>似乎是一件很簡(jiǎn)單的事情。假設(shè)我們想要連續(xù)記錄數(shù)據(jù)以進(jìn)行某種分析。所以,問(wèn)題來(lái)了,如果傳感器出現(xiàn)某種問(wèn)題怎么辦?在傳感器啟動(dòng)之前,我們將丟失數(shù)據(jù)。為了解決這類問(wèn)題,我們依靠在云中部署 ML 模型的古老技術(shù)來(lái)在傳感器出現(xiàn)故障時(shí)生成缺失值。這適用于一兩個(gè)設(shè)備。但隨著規(guī)模的擴(kuò)大,我們需要更多的計(jì)算能力來(lái)解決許多設(shè)備故障。這就是邊緣計(jì)算發(fā)揮作用的地方。它將訓(xùn)練有素的復(fù)雜模型部署在設(shè)備本身上。因此,當(dāng)傳感器關(guān)閉時(shí),設(shè)備仍然可以輕松地將數(shù)據(jù)發(fā)送到云端。

工作流程:

pYYBAGOYSYaAFRStAABNzJ0JIpc867.png
?

我們將從 TensorFlow Keras Sequential 模型開(kāi)始該過(guò)程,之后我們會(huì)將其轉(zhuǎn)換為專為微控制器構(gòu)建的 TensorFlow Lite。然后我們將從 TensorFlow Lite 轉(zhuǎn)換器生成一個(gè) C 數(shù)組。這個(gè) C 數(shù)組包含將部署到邊緣設(shè)備的訓(xùn)練模型。

程序

在這個(gè)項(xiàng)目中,如果傳感器無(wú)法生成數(shù)據(jù),我們將同時(shí)預(yù)測(cè)溫度和濕度。首先,我們將使用濕度。

1. 構(gòu)建 TensorFlow 模型

讓我們導(dǎo)入必要的模塊

import tensorflow as tf
from tensorflow.keras import layers
import pandas as pd

現(xiàn)在讓我們從數(shù)據(jù)集中分離自變量和因變量,并將它們分別存儲(chǔ)在“x”“y”中。

dataset = pd.read_csv("dataset_humidity.csv")
x = dataset.iloc[:,:-1].values
y = dataset.iloc[:,-1:].values

現(xiàn)在從 Keras 序列中,我們將創(chuàng)建一個(gè)具有 2 層 16 個(gè)神經(jīng)元的神經(jīng)網(wǎng)絡(luò)模型,該模型具有“relu”激活功能。并通過(guò)“fit”函數(shù)訓(xùn)練模型,繞過(guò)模型的“x”“y”值。訓(xùn)練后,我們將模型存儲(chǔ)到具有“保存”功能的文件中,如下所示。

model = tf.keras.Sequential()
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop', loss='mse', metrics=['mse'])
model.fit(x, y, epochs=1000, batch_size=16)
model.save('Humidity_predictor_model')

現(xiàn)在,我們終于使用 Tensorflow Keras 創(chuàng)建并訓(xùn)練了我們的神經(jīng)網(wǎng)絡(luò)模型。

2. 將 TF 模型轉(zhuǎn)換為 TF Lite 模型

現(xiàn)在我們將保存的 TF 模型轉(zhuǎn)換為 TF Lite 并將其保存為擴(kuò)展名為'.tflite'的文件為了優(yōu)化,讓我們使用'tf.lite.Optimize.DEFAULT'來(lái)避免錯(cuò)誤。

load_model = tf.keras.models.load_model('Humidity_predictor_model')
converter = tf.lite.TFLiteConverter.from_keras_model(load_model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
open("humidity_predictor.tflite", "wb").write(tflite_model)

3. 生成 TF Lite 模型到 C 數(shù)組

我們將使用 Linux 命令“ xxd ”將 TF Lite 模型轉(zhuǎn)換為 C 數(shù)組。此命令將文件或數(shù)據(jù)轉(zhuǎn)換為其等效的十六進(jìn)制格式。這被稱為“十六進(jìn)制轉(zhuǎn)儲(chǔ)”。

在上一步中生成的“.tflite”文件將作為“ xxd ”命令的輸入,對(duì)于輸出,我們將指定帶有擴(kuò)展名的文件名。在這里,我將指定“.h”作為文件擴(kuò)展名。您可以使用其他格式,例如“ .cc ”。

xxd -i humidity_predictor.tflite > humidity_predictor.h

由于 DHT11 傳感器同時(shí)讀取濕度和溫度。我們將預(yù)測(cè)這兩個(gè)值。到目前為止,您只為濕度準(zhǔn)備了文件。對(duì)于溫度,重復(fù)從開(kāi)始到這里的所有步驟,以獲得您的溫度 C 陣列。

如果您收到任何錯(cuò)誤,請(qǐng)?jiān)L問(wèn)此 GitHub 存儲(chǔ)庫(kù)以查找確切代碼。https://github.com/MohithGowdaHR/Edge_Computing.git

您將在“ Edge_Computing ”存儲(chǔ)庫(kù)的“ Models ”目錄中找到代碼。

4. 部署到邊緣設(shè)備

電路連接

poYBAGOY1M6AJ_ZFAAC5pg3A1WI892.png
?
ESP32              DHT11
5V         -       VCC
GND        -       GND
DIO4       -       DATA

現(xiàn)在我們將導(dǎo)入所需的庫(kù)。

#include "EloquentTinyML.h"
#include
#include "temperature_predictor.h"
#include "humidity_predictor.h"
#include "DHT.h"

這里前面步驟中生成的temperature_predictor.h濕度_predictor.h應(yīng)該存儲(chǔ)在創(chuàng)建'.ino'文件的同一目錄中,如下圖所示。

pYYBAGOY1NCAXRgeAAA3bpi4gEI768.jpg
?

創(chuàng)建一個(gè) TensorFlowlite 庫(kù)實(shí)例,如下面的代碼所示。

Eloquent::TinyML::TfLite,> temprature(temperature_predictor_tflite);
Eloquent::TinyML::TfLite3,> * 1024> humudity(humidity_predictor_tflite);

如果傳感器無(wú)法讀取這些值,我們將對(duì)其進(jìn)行預(yù)測(cè),直到傳感器返回。作為模型的輸入,我們將傳遞拼接的日期時(shí)間和之前記錄的溫度和濕度值。

float h = dht.readHumidity();
float t = dht.readTemperature(true);
delay(1000);
if (isnan(h) || isnan(t) ) {
Serial.println(F("Failed to read from DHT sensor!"));
float input_array[8] = {2020 , 5, 26, 11,  30, 0,  prevtemp,  prevhum}; //use RTC module or GPS module to get realtime date and time
float input_array2[8] = {2020 , 2, 4, 6,  40, 0,  prevhum,  prevtemp}; //year,month,day,hour,min,sec,temp,hum
float hum = humudity.predict( input_array2);
float temp = temprature.predict( input_array);
prevhum = hum;
prevtemp = temp;
Serial.print("\t predicted humidity: ");
Serial.println(hum);
Serial.print("\t predicted temp: ");
Serial.println(temp);
delay(1000);
return;
}
else
{
Serial.print("\t humidity: ");
Serial.println(h);
Serial.print("\t  temp: ");
Serial.println(t);
prevtemp = t;
prevhum = h;
}

結(jié)果:

poYBAGOY1NOAaoZDAAEXmg-njtE970.png
?

最后,我們完成了!

現(xiàn)在我們將從邊緣設(shè)備記錄連續(xù)不間斷的值。


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

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)