物聯網(Internet of Things,IoT)的定義是上網設備之間互相共享數據而形成的網路,通常用來表示任何連接到網際網路的設備。只要將處理器和大量感測器嵌入到一個小型設備,物聯網設備就幾乎無所不能了。這種設備有唯一的標示符號(UUID),能透過網路傳輸數據而無需人工操作。
物聯網的概念存在已久,1980年代卡內基美隆大學的研究人員設計出一台能連上網路的可樂販賣機,並能查看販賣機內的可樂數量,這是最初物聯網的實作。之後隨著科技的演進,發展出更小、更強大的處理器,使得人們對物聯網設備的興趣激增,並有機會在各領域中整合各種 IoT 應用。
物聯網設備通常是由嵌入式系統組成,包括處理器、感測器、通訊硬體等。它能透過感測器收集環境中的數據,然後連上網際網路,將數據發送到雲端進行分析。物聯網還能結合人工智慧(AI)和機器學習,來分析收集到的數據。
有些 IoT 設備可以連接到網關或其他設備,來共享它們收集到的感測器數據,有些 IoT 設備甚至能與其他相關設備進行通訊,並根據它們彼此獲得的數據採取行動。儘管人們可以操作 IoT 設備,但 IoT 設備無需人工介入就能完成大部分的工作。
物聯網能幫助人們更聰明的生活和工作,除了智慧助理能幫助家庭自動化之外,物聯網對企業也非常重要。物聯網為企業提供即時了解系統實際運行情況的訊息。物聯網能讓公司自動化並降低人工成本,還能減少浪費並改善產品品質,從而降低製造和交付貨物的成本。
此外,物聯網經常被應用在製造和運輸業,這些企業利用感測器與其他物聯網設備,來幫助了解機器性能、供應鏈和物流運作等各方面資訊。物聯網能幫助農業和公用事業進行數位轉型,例如感測器可以收集光線、降雨、濕度、溫度、土壤濕度等相關數據,也能協助收集電力、自來水、天然氣等相關數據。在智慧城市中,智慧路燈、智慧電表等物聯網感測器的部署,可以幫助節約能源、監控和解決環境問題,並能幫助監控交通流量。
IoT 也廣泛應用於家庭生活中,例如能透過電腦和手機遠端操控的智能家電、燈具、嬰兒監視器、掃地機器人、智慧開關等。甚至能透過 Google Home 和 Amazon Echo 等智慧音箱,以聲控方式操控這些設備。
優點:
幫助工作自動化,減少人工干預,改善效率
設備成本和建置成本較低
幫助自動收集數據,節省時間和金錢
缺點:
物聯網設備不容易管理,也不易發現設備損壞
物聯網沒有統一的國際標準,因此不同製造商的設備很難互通。
物聯網具備多種協定及標準,安全性強化不易,導致駭客可能透過物聯網設備的漏洞進行攻擊
隨著連接設備數量的增加,以及設備間共享更多資訊,駭客竊取機密資訊的可能性也會增加
物聯網相關介紹:https://nordvpn.com/zh-tw/blog/wulianwang/
Blynk IOT 物聯網服務
Blynk 為IOT所設計的雲端服務,有免費也有付費服務。
可以簡單的方法控制位於世界各地的聯網裝置。申請 Blynk 免費帳號: https://blynk.io/
Blynk平台的元素有:
Blynk App
Blynk Server
Blynk Libraries
Blynk APP的版本眾多。
可以簡單的方法控制位於世界各地的聯網裝置。申請 Blynk 免費帳號: https://blynk.io/
Blynk平台的元素有:
Blynk App
Blynk Server
Blynk Libraries
EPS32透過wifi讀取PM2.5資料
#include <WiFi.h>
#include <HTTPClient.h>
char ssid[] = "ROBOT"; //請修改
char password[] = "0936836003"; //請修改
char url[] = "http://opendata2.epa.gov.tw/AQI.json"; //PM2.5的網址
void setup() {
Serial.begin(115200);
delay(1000);
Serial.print("開始連線到無線網路SSID:");
Serial.println(ssid);
//1.設定WiFi模式
WiFi.mode(WIFI_STA);
//2.啟動WiFi連線
WiFi.begin(ssid, password);
//3.檢查連線狀態
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.println("連線完成");
}
void loop() {
//4.啟動網頁連線
Serial.print("啟動網頁連線");
HTTPClient http;
http.begin(url);
int httpCode = http.GET();
Serial.print("httpCode=");
Serial.println(httpCode);
//5.檢查網頁連線是否正常
if (httpCode == HTTP_CODE_OK) {
//6.取得網頁內容
String payload = http.getString();
Serial.print("payload=");
//7.將資料顯示在螢幕上
Serial.println(payload);
}
http.end();
delay(10000);
}
網頁顯示溫溼度
https://blog.darkthread.net/blog/temp-humd-esp-web/