更新於 2024/12/09閱讀時間約 7 分鐘

《第三部》搭建物聯網應用| IOT Application

前言

關於前一堂法規課程,對於何謂無人機、無人機如何運作、如何起飛、是否需要再注意其他事項、發生緊急狀況要如何應對有了一定基礎,後續要做的事情就是再三研讀,能順利考過學科測驗


何謂物聯網

  • 通過互聯網將各種物理設備(如感測器、執行器、嵌入式系統)與互聯網相連,使它們能夠互相通信和交換數據的一種技術和概念。簡而言之,物聯網建立了一個將現實世界的物體與互聯網連接在一起的網絡,主要有以下特點:
    1. 連接性: 物聯網的核心是建立連接,使物理設備能夠通過互聯網相互通信。這樣的連接可以是有線的(例如Ethernet、Wi-Fi)或無線的(例如藍牙、Zigbee、LoRa、NB-IoT等)
    2. 感測和數據: 物聯網設備通常配備各種感測器,可以收集現實世界數據,例如溫度、濕度、位置、光照等。這些數據可以用於監測、分析和做出相應的反應
    3. 數據通信和交換: 物聯網允許設備之間進行數據通信和交換,這使得不同設備能夠協同工作,實現更智能化的功能。這也包括將數據發送到雲端服務進行進一步的處理和分析
    4. 遠程監控和控制: 通過物聯網,用戶可以實現對設備的遠程監控和控制,不論身處何地
    5. 應用範疇: 物聯網應用於各種領域,包括智能城市、智能家居、工業自動化、農業、醫療保健等。它可以改善生活品質、提高生產效率、降低能源浪費,並帶來更多創新和價值
    6. 安全和隱私: 由於物聯網涉及大量數據的傳輸和存儲,安全和隱私問題變得更為重要。保障物聯網系統安全性和用戶數據隱私是發展物聯網的關鍵課題之一

無線通訊協議

  • Zigbee : 為一種低功耗、短距離、低數據傳輸速率的通信協議,主要應用於智能居家、工業自動化等
  • Z-Wave : 為一種低功耗、中短距離的通信技術,主要應用於智能家居等
  • Wi-Fi : 為一種高速、長距離的通信技術,常用於數據密集應用
  • Bluetooth : 為一種短距離、低功耗的通信技術,主要應用於連接低功耗設備
    以上四種為較早發展之項目,已有大量基礎資源與技術,後續是較新興技術
  • LoRa : 為一種遠程通信技術,提供長距離通信範圍,數據傳輸效率較慢,常用於工業自動化、智慧農業等
  • NB-IOT : 為一種窄帶物聯網技術,具低功耗、長距離、大連接數據,主要應用於物聯網
raw-image

有線通訊協議

  • Modbus (RS485) : 為一種串行通信協議,通常在RS485物理層上運行,用於工業控制系統中的數據通信
  • PLC : 可編程邏輯控制器,用於自動化控制系統。它可以執行程序邏輯控制、定時控制、計數控制等功能
  • KNX : 為一種開放的家庭和建築自動化標準,通常使用在住宅和商業建築中,用於控制照明、加熱、通風等系統
  • Power Line : 使用電力線作為數據通信的媒介,允許在建築內通信而無需額外的通信線路

HomeAssistant

系統建置

  • 由於課程內容牽扯到智慧化,不同裝置連接形成不同功能,若要實現自動開啟開關,搭建設備、網路連接、自動化設定;若要實現感應偵測,亦是相同模式,因此在這樣前提下,介紹Home Assistant這套開源平台,是一個集成、可擴展、自定義的智能家居解決方案
  • 在開始安裝此開源平台前,先介紹了硬體設備-樹莓派(Raspberry Pi),是一種單板計算機,因為價格低廉、體積小而輕巧、多功能性和開源性而受到廣泛關注
    1. 在選擇設備型號,以Raspberry Pi4作為建置
    2. 考量效能以及相關應用後,以Ubuntu當作作業系統
    3. 設置主機名稱與帳號密碼,後續SSH操作時使用
    4. 最後清理記憶卡內檔案,開始安裝
  • 系統安裝完畢後,將記憶卡插入樹莓派主機啟動,發生小插曲,當時電源線一頭是以筆電作為輸入端、另一輸出端插入主機,導致在啟用時燈源不斷閃爍,無法順利啟動,經過確認後,不能以筆電作為輸出來源,電壓太小,要以充電插座才行
  • 開始進行HomeAssistant安裝,進入主機環境(安裝參考此文件)
ssh 主機名稱@主機IP
  • 環境更新
sudo apt-get update
sudo apt-get upgrade -y​
  • 安裝依賴包與相關套件
sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-
  • 建立帳戶
sudo useradd -rm homeassistant
  • 建立虛擬環境
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
  • 安裝Python套件
python3 -m pip install wheel
  • 安裝HomeAssistant核心程式
pip3 install homeassistant==2023.12.1
  • 啟動HomeAssistant
hass
  • http://X.X.X.X:8123,輸出這串網址即可顯示HomeAssistant主畫面(XX為主機IP位址)

操作運用

  • 這套開源平台就像一張空白的紙張,要如何繪製呈現,完全取決於使用者的運用,例如 : 建置多個使用者帳戶,並分配不同權限、設定定位,實現人員位置資訊、抓取API以獲得最新天氣資訊、設定資料來源達到圖表連動,這些基本運用完全不是問題
  • 安裝對應軟體,驅動硬體、自動化設定,減少繁複動作、透過LINE服務,即時告知,甚至撰寫程式腳本,獲取所需資料,以上進階應用也能順利執行
  • 也有介紹Modbus(rs485)這項工具,一端與感測器連接、另一端與Router連接,因此在使用感測器進行量測時,取得後的數據(例如:濕度、溫度等物理性質)透過router即時呈現在HomeAssistant畫面上,目前實際應用於農田中,以達到實時監測作用

設定外網連接

  • 當初在設置網路連接時,由於路由器只能內網連接,若要使用自己手機網路或其他WIFI,會無法順利連上網,為了解決這問題,參考frp這份文件進行修改文件,大致上流程為新增檔案,裡面撰寫語法內容、在設置檔案內,修改對應文件路徑,最後進行HomeAssistant服務重新啟動,等於說在內網環境打開一個孔,就能讓其他使用者連線進入

指令操作

  • 由於是以本機端透過SSH連線至樹莓派主機,因此在操作上,完全是以指令來執行,並非介面操作,又因為系統是Ubuntu環境,不是平常習慣的Windows介面,指令都沒有執行過,需要重新學習,幸好現在網路上資源很多,基本上只要搜尋關鍵字,就能找到需要的內容,以下網站是在這堂課程中,學習到的知識

查詢指令意義


心得

  • 這門課程主要介紹HomeAssistant應用,老師也分享實際案例,如何透過彼此間的串接,達到智慧化,在現今時代,數據的掌握與取得已成為重要課題,進行量化、分析,即可取得正確的答案;尤其在農業上更是如此,老農民的知識只存放在他自己的腦海中,完全是依照經驗進行耕作,但對於新進人員該如何是好? 沒有經驗,又沒有相關專業知識,因此能藉由數據的呈現與展示,以輔助不足之處,再加上網路與設備之間的串連,能大幅度降低人力資源缺乏
    事前建置也是一個問題所在,網路如何搭建、設備如何連接、軟體如何安裝.使用、天氣因素是否影響、如何展示讓農民相信等狀況,也是需要考量的部分,雖然充滿問題與難關,但還是得繼續向前努力.學習,才有可能改變現況
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.