ESP32結(jié)合防水溫度傳感器實現(xiàn)遠(yuǎn)程監(jiān)測溫度
每10秒讀取一次溫度讀數(shù),并將其上傳到Arduino云端。
該項目旨在解決軟質(zhì)水果農(nóng)場所面臨的挑戰(zhàn),冷藏儲藏室的溫度對于保持水果的質(zhì)量和新鮮度至關(guān)重要。停電或制冷系統(tǒng)故障可能導(dǎo)致溫度升高,從而可能導(dǎo)致腐敗。為了降低這種風(fēng)險,該項目利用基于物聯(lián)網(wǎng)的解決方案來遠(yuǎn)程監(jiān)測溫度并及早發(fā)現(xiàn)潛在故障。以下是項目組成部分的詳細(xì)細(xì)分:硬件:ESP32微控制器系統(tǒng)的核心是一個ESP32板,一個功能強(qiáng)大的多功能微控制器,內(nèi)置Wi-Fi功能。
ESP32通過連接在ESP32上的兼容溫度傳感器DHT22,負(fù)責(zé)監(jiān)控冷凍室的溫度。ESP32定期收集溫度數(shù)據(jù),然后將數(shù)據(jù)傳輸?shù)皆贫诉M(jìn)行進(jìn)一步分析和監(jiān)控。Wi-Fi連接性ESP32連接到本地Wi-Fi網(wǎng)絡(luò)*,允許它將收集到的溫度數(shù)據(jù)發(fā)送到云端。這確保了即使農(nóng)場位于偏遠(yuǎn)地區(qū),只要有互聯(lián)網(wǎng)接入,溫度數(shù)據(jù)也可以遠(yuǎn)程訪問和監(jiān)控。數(shù)據(jù)上傳到Arduino Cloud一旦ESP32采集到溫度數(shù)據(jù),就上傳到Arduino Cloud**。Arduino Cloud是一個允許用戶實時存儲和管理物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)的平臺。ESP32通過API或MQTT協(xié)議與Arduino云通信,定期發(fā)送溫度讀數(shù)。
Arduino Cloud dashboard是一個中央界面,顯示冰箱房間的溫度讀數(shù)。儀表板可以從任何具有互聯(lián)網(wǎng)連接的設(shè)備(如智能手機(jī)、平板電腦或計算機(jī))遠(yuǎn)程訪問。儀表板提供存儲室內(nèi)溫度的實時視圖,具有圖形,儀表或數(shù)字顯示等可視化表示,便于監(jiān)控。監(jiān)控和預(yù)警該系統(tǒng)的主要目的是及早發(fā)現(xiàn)任何溫度異常,如制冷系統(tǒng)故障或停電。在這種情況下,冰箱內(nèi)的溫度會超過安全閾值,這表明存在潛在問題。如果溫度超過預(yù)定義的閾值,系統(tǒng)可以配置為發(fā)送警報或通知(通過電子郵件,短信或其他方法),允許農(nóng)場經(jīng)理或運(yùn)營商迅速采取行動,防止水果變質(zhì)。故障早期發(fā)現(xiàn)通過對溫度的連續(xù)遠(yuǎn)程監(jiān)測,系統(tǒng)可以早期發(fā)現(xiàn)制冷系統(tǒng)的故障。
這意味著即使在半夜停電,農(nóng)場經(jīng)理也會立即得到通知,使他們能夠采取糾正措施,例如恢復(fù)電力或切換到備用發(fā)電機(jī),以免對水果造成重大損害。云存儲和歷史數(shù)據(jù)Arduino云不僅提供實時數(shù)據(jù),還存儲歷史溫度數(shù)據(jù),這對于跟蹤趨勢、識別模式和評估制冷系統(tǒng)的性能很有用。
這些數(shù)據(jù)可以用于報告、審計或分析,以改進(jìn)未來的存儲實踐??蓴U(kuò)展性該系統(tǒng)是可擴(kuò)展的,這意味著它可以擴(kuò)展到監(jiān)控多個冰箱室甚至農(nóng)場的不同區(qū)域。
可以根據(jù)需要添加額外的ESP32板和傳感器,并且可以定制Arduino Cloud儀表板以顯示來自所有監(jiān)控位置的數(shù)據(jù)。-實時監(jiān)測:連續(xù)跟蹤溫度,確保任何問題都可以立即發(fā)現(xiàn)。-遠(yuǎn)程訪問:農(nóng)場操作員可以遠(yuǎn)程監(jiān)控系統(tǒng),即使遠(yuǎn)離物理站點(diǎn)。-防止水果變質(zhì):通過及早發(fā)現(xiàn)溫度問題,將由于冷藏故障而導(dǎo)致水果變質(zhì)的風(fēng)險降至最低。-成本效益:使用價格合理的物聯(lián)網(wǎng)硬件(如ESP32)和免費(fèi)云平臺(如Arduino cloud)使該解決方案具有成本效益。-數(shù)據(jù)洞察:歷史溫度數(shù)據(jù)有助于在存儲條件和制冷維護(hù)方面做出明智的決策??偠灾擁椖繛槔洳貛斓臏囟缺O(jiān)測和早期故障檢測提供了一種創(chuàng)新的低成本解決方案,確保水果保持新鮮,防止變質(zhì)。
代碼
#include
#include
#include "thingProperties.h"
/*
Sketch generated by the Arduino IoT Cloud Thing "Untitled"
l
Arduino IoT Cloud Variables description
The following variables are automatically generated and updated when changes are made to the Thing
float tempSens2;
*/
const int oneWireBus = 4;
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
void setup() {
// Initialize serial and wait for port to open:
Serial.begin(115200);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
sensors.begin();
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
// Your code here
delay(100);
sensors.requestTemperatures();
tempSens2 = sensors.getTempCByIndex(0);
Serial.println(tempSens2);
ArduinoCloud.update();
delay(5000);
}
本文編譯自hackster.io