利用 Arduiono 實作溫度感測的記錄。並將它整合到之前所做的 Temperture Dashboard。
後來看到了一些資料,如果不想自己土炮畫曲線圖的話。可以利用 Xively、Thingspeak、Yeelink 平台所提供的服務來實作。[[ 實作記錄 ]]
(一) 準備需要的相關硬體零組件與開發軟體
- Arduino Uno Rev3
- Arduino Ethernet shield 2 with Poe
- DHT22 (AM2302) or DHT11 Sensor
- Arduino IDE
- 杜邦線 (公母)
(二) 組合 Ethernet Shield 與 Arduino Uno
(三) 下載需要的 library
- 此專案採用 DHT22 Sensor,主要原因如下:
- 精準度
- 查過資料,有些人表示若連結的線不長,可以不需再串接 4.7Kohm 電阻。有些則建議加入。這點很疑惑。到時再看看狀況調整。不過若是不需串接電阻在施工上會更方便。
- DHT22 Sensor : 相關說明 & latest version on github
- DHT22 相關資料
- DHT22 指令稿參考
(四) 將下載的 DHT library 匯入到 Arduino IDE 內
- 方法如下
- 利用 IDE 的匯入程式庫的功能將下載的壓縮檔匯入即可
- 直接將壓縮檔解壓縮,將解壓縮的目錄直接複製到 IDE 軟體的 libraries 目錄內
- 在實做時,沒有看到可 github 有直接下載 zip 的功能。這也許與我沒有做註冊有關。我的做法是在 arduino 的 libraries 目錄內。直接新增 dht 目錄。再將 dht.cpp & dht.h 在github 的內容直接貼到所新增的 dht.cpp & dht.h 檔案內。
- 以上不管那種做法,只要有打開 Arduino IDE時。需要做將 Arduino IDE 關閉的動作,讓它再重新執行一次。
(五) 待確認問題
- 供電方式選擇
- 變壓器
- USB 供電
- 電池
- PoE(Power over Ethernet)
- 網路連接方式選擇
- WiFi
- Ethernet
(六) 利用 Arduino IDE 寫程式
- 程式語法參考
- WebServer Script + DHT Sensor
- 利用 IDE 內的範例直接修改 (UI 內的範例 => Ethernet =>WebServer),就會出現基本的範例。再加入 DHT 相關的指令稿。網路指令搞的相關細節可參考 Ethernet Libray。
- 補充:
- 同網域內要有多個 Arduino devices 需注意 MAC Address 的唯一性。拿範例的最後一段數值修改即可。例如:0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED。改成 ox E0 , oxE1 ,oxE2 .....oxEF
- Arduion 有內建了一個 20K Ω 的上拉(Pull-up)電阻,這不是很確定在程式內宣告 pinMode("所接的 pin 編號", INPUT_PULLUP); 就可以不用再額外接 pull-up resistor。不過後來找有內建電阻的 DHT Sensor 來使用。這部份也就沒做測試了。
- 程式部份處理完成後。利用 Arduino IDE 的驗證功能檢查過後,再做上傳(表示將編譯好後的程試寫入到微處理器的記憶體)的動作
(七) DHT22 的串接方式
(八) 實作成品
(九) 結合之前所做的前端介面
主機內設定工作排程,每一小時會自動的向 arduion device 抓取溫度資料。這樣就不需要在透過人工的方式更新該資訊。(十) 新加入的功能
- 主動通報模組:主動的偵測分散在各場所的 arduino devices 的狀態,有狀況可主動通知相關人員前往處理。
- 記錄歷程資料:採用 SQLite DB 來記錄
- Open Data:開放此記錄資訊。提供有興趣的使用者使用。
- QR Code:裝置上提供直接查詢該 arduino device 所偵測的即時溫度資訊。
相關資料:
- 麵包板的基本構造
- 打造自己的Arduino氣象站
- Arduino 入門套件[中文字幕]教學第一課 — 了解您的工具: RS Components (youtube)
- Arduino 基礎教學 控制LED、使用開關
- [Arduino]如何安裝第三方函式庫(Library)
- [開箱] Arduino UNO R3 義大利原廠開發板,入門使用教學
- Arduino 乙太網擴充卡測試
- Arduino Ethernet Shield W5100 乙太網路擴充版,使用 DHCP 取得 IP 位址
- A DHT11 Class for Arduino.
- Arduino範例19:利用DHT11抓取溫度和濕度
- Arduino + DHT11 自製溫度濕度監測器 (2)
- Setting an Arduino Ethernet MAC address manually
- Get a real MAC address for your Arduino Ethernet
- 「arduino」 DHT22 溫溼度
- 【小常識】從按鈕開關看上拉pull-up電阻下拉電阻是蝦密碗糕
- 什麼是上拉電阻
沒有留言:
張貼留言