資料介紹
描述
介紹:
邊緣計(jì)算是一種將計(jì)算帶入終端設(shè)備的技術(shù)。在 EDGE-C 中,在網(wǎng)絡(luò)中心(即云)執(zhí)行的計(jì)算被移動到終端設(shè)備。這降低了在云中處理大型計(jì)算的復(fù)雜性和開銷。這也減少了網(wǎng)絡(luò)使用并實(shí)現(xiàn)了快速響應(yīng),從而提高了傳輸速率。
邊緣計(jì)算主要解決以下挑戰(zhàn):
- 隱私和安全
- 可擴(kuò)展性
- 可靠性
- 速度
- 效率
在本文中,我們將深入研究實(shí)現(xiàn) EDGE-C 的簡單實(shí)驗(yàn)。首先,我們將討論一個問題。假設(shè)我們有一個設(shè)備可以收集特定位置的溫度和濕度并將其傳輸?shù)皆贫恕?/font>似乎是一件很簡單的事情。假設(shè)我們想要連續(xù)記錄數(shù)據(jù)以進(jìn)行某種分析。所以,問題來了,如果傳感器出現(xiàn)某種問題怎么辦?在傳感器啟動之前,我們將丟失數(shù)據(jù)。為了解決這類問題,我們依靠在云中部署 ML 模型的古老技術(shù)來在傳感器出現(xiàn)故障時生成缺失值。這適用于一兩個設(shè)備。但隨著規(guī)模的擴(kuò)大,我們需要更多的計(jì)算能力來解決許多設(shè)備故障。這就是邊緣計(jì)算發(fā)揮作用的地方。它將訓(xùn)練有素的復(fù)雜模型部署在設(shè)備本身上。因此,當(dāng)傳感器關(guān)閉時,設(shè)備仍然可以輕松地將數(shù)據(jù)發(fā)送到云端。
工作流程:

我們將從 TensorFlow Keras Sequential 模型開始該過程,之后我們會將其轉(zhuǎn)換為專為微控制器構(gòu)建的 TensorFlow Lite。然后我們將從 TensorFlow Lite 轉(zhuǎn)換器生成一個 C 數(shù)組。這個 C 數(shù)組包含將部署到邊緣設(shè)備的訓(xùn)練模型。
程序
在這個項(xiàng)目中,如果傳感器無法生成數(shù)據(jù),我們將同時預(yù)測溫度和濕度。首先,我們將使用濕度。
1. 構(gòu)建 TensorFlow 模型
讓我們導(dǎo)入必要的模塊
import tensorflow as tf
from tensorflow.keras import layers
import pandas as pd
現(xiàn)在讓我們從數(shù)據(jù)集中分離自變量和因變量,并將它們分別存儲在“x”和“y”中。
dataset = pd.read_csv("dataset_humidity.csv")
x = dataset.iloc[:,:-1].values
y = dataset.iloc[:,-1:].values
現(xiàn)在從 Keras 序列中,我們將創(chuàng)建一個具有 2 層 16 個神經(jīng)元的神經(jīng)網(wǎng)絡(luò)模型,該模型具有“relu”激活功能。并通過“fit”函數(shù)訓(xùn)練模型,繞過模型的“x”和“y”值。訓(xùn)練后,我們將模型存儲到具有“保存”功能的文件中,如下所示。
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'來避免錯誤。
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)儲”。
在上一步中生成的“.tflite”文件將作為“ xxd ”命令的輸入,對于輸出,我們將指定帶有擴(kuò)展名的文件名。在這里,我將指定“.h”作為文件擴(kuò)展名。您可以使用其他格式,例如“ .cc ”。
xxd -i humidity_predictor.tflite > humidity_predictor.h
由于 DHT11 傳感器同時讀取濕度和溫度。我們將預(yù)測這兩個值。到目前為止,您只為濕度準(zhǔn)備了文件。對于溫度,重復(fù)從開始到這里的所有步驟,以獲得您的溫度 C 陣列。
如果您收到任何錯誤,請?jiān)L問此 GitHub 存儲庫以查找確切代碼。https://github.com/MohithGowdaHR/Edge_Computing.git
您將在“ Edge_Computing ”存儲庫的“ Models ”目錄中找到代碼。
4. 部署到邊緣設(shè)備
電路連接

ESP32 DHT11
5V - VCC
GND - GND
DIO4 - DATA
現(xiàn)在我們將導(dǎo)入所需的庫。
#include "EloquentTinyML.h"
#include
#include "temperature_predictor.h"
#include "humidity_predictor.h"
#include "DHT.h"
這里前面步驟中生成的temperature_predictor.h和濕度_predictor.h應(yīng)該存儲在創(chuàng)建'.ino'文件的同一目錄中,如下圖所示。

創(chuàng)建一個 TensorFlowlite 庫實(shí)例,如下面的代碼所示。
Eloquent::TinyML::TfLite,> temprature(temperature_predictor_tflite);
Eloquent::TinyML::TfLite3,> * 1024> humudity(humidity_predictor_tflite);
如果傳感器無法讀取這些值,我們將對其進(jìn)行預(yù)測,直到傳感器返回。作為模型的輸入,我們將傳遞拼接的日期時間和之前記錄的溫度和濕度值。
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é)果:

最后,我們完成了!
現(xiàn)在我們將從邊緣設(shè)備記錄連續(xù)不間斷的值。
- 樂鑫ESP32-MINI-1參考設(shè)計(jì)
- 樂鑫ESP32-MINI-1U參考設(shè)計(jì)
- 樂鑫ESP32-SenseKit參考設(shè)計(jì)
- 樂鑫ESP32-WROOM-32UE參考設(shè)計(jì)
- 樂鑫ESP32-LyraTD-DSPG_用戶手冊
- 樂鑫ESP32-DevKitS-V1.1參考設(shè)計(jì)
- 樂鑫ESP32-PICO-MINI-02參考設(shè)計(jì)
- 樂鑫ESP32-LyraTD-SYNA_用戶手冊
- 樂鑫ESP32-PICO-MINI-02U參考設(shè)計(jì)
- 樂鑫ESP32-MeshKit-Light_使用指南
- esp32-s3_datasheet
- esp32 例程 藍(lán)牙_wifi&藍(lán)牙MCU 該不該選ESP32
- ESP32 之 ESP-IDF 教學(xué)(九)—— 串口通信(UART)
- esp32s下載電路原理圖下載 28次下載
- 使用ESP32-CAM板訪問網(wǎng)絡(luò) 43次下載
- ESP32能取代STM32嗎?哪個更好? 1.3w次閱讀
- 基于ESP32-S3的高性能開發(fā)板介紹 1w次閱讀
- ESP32-C3硬件定時器簡介及使用 4899次閱讀
- ESP32-C3 WIFI的工作模式 5207次閱讀
- 什么是ESP32-CAM攝像頭? 2.4w次閱讀
- 基于ESP32的簡易web服務(wù)器設(shè)計(jì) 3990次閱讀
- 使用ESP32連接騰訊云實(shí)現(xiàn)遠(yuǎn)程控制 3745次閱讀
- 使用ESP32實(shí)現(xiàn)UDP通信的方法 6519次閱讀
- ESP32使用MiroPython編程環(huán)境搭建 3046次閱讀
- 基于ESP32制造有趣的超級馬里奧主題時鐘 4783次閱讀
- ESP8266/ESP32自動下載原理 4741次閱讀
- 基于ESP-WROOM-32E專為IoT設(shè)計(jì)的FireBeetle ESP32-E主控板介紹 5025次閱讀
- ESP32的數(shù)字遙測實(shí)現(xiàn) 1779次閱讀
- 如何利用ESP32實(shí)現(xiàn)太陽能氣象站的設(shè)計(jì) 4646次閱讀
- dfrobotBeetle-ESP32控制器簡介 2974次閱讀
下載排行
本周
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 3錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 3次下載 | 1 積分
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 3次下載 | 2 積分
- 5基礎(chǔ)模擬電子電路
- 3.80 MB | 3次下載 | 1 積分
- 6RA-Eco-RA6M4-100PIN-V1.0開發(fā)板資料
- 34.89 MB | 1次下載 | 免費(fèi)
- 7STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 1次下載 | 免費(fèi)
- 8聯(lián)想A820t手機(jī)維修圖紙包括主板原理圖 尾板原理圖 點(diǎn)位圖
- 0.62 MB | 次下載 | 5 積分
本月
- 1AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 383次下載 | 免費(fèi)
- 2蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 296次下載 | 5 積分
- 3貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
- 0.50 MB | 94次下載 | 1 積分
- 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 91次下載 | 5 積分
- 5涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 76次下載 | 1 積分
- 6錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 29次下載 | 1 積分
- 7AO4803A雙P通道增強(qiáng)型場效應(yīng)晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 8長虹液晶彩電LS29機(jī)芯的技術(shù)資料說明
- 3.42 MB | 16次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191388次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論