天天看點

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

@TOC

做了這麼多傳感器都是自己玩,這次家裡人看不下去了,非得讓我整一個紫外線傳感器,出門前看看紫外線強度(嚴正聲明:我不是個單身狗!!!(¬◡¬)✧)我看了一下網上還真有合适的子產品,于是就整了一個。這次我們就來做一個智能紫外線傳感器。

萬能不變,便宜好用的(其實最近發現好像也沒這麼好用,但是确實便宜)的安信可 [ESP32S]

紫外線傳感器選擇的是微雪的數字UV紫外線傳感器 [UV Sensor C],42塊錢有點小貴QWQ,但是可以直接擷取紫外線強度,不需要自己用模拟量算了,響應波長在280-430nm,官方資料也很完善齊全。

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

以及我們裝置的外置思考回路 - 翼輝 [Spirit 1] 邊緣計算機。

為了友善講解邏輯,我會打亂代碼的順序可能還會進行裁剪,要是想直接拿代碼跑的朋友可以直接去 靈感桌面的秘密寶庫 擷取代碼,或者直接 clone:

下載下傳或者 clone代碼後這次用到的是這個四個檔案夾:

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

cjson:我移植的 cjson 庫,就是标準的 cjson 庫,放到 arduino 安裝目錄下的 libraries 檔案夾裡,百度一下 cjson 的函數使用就行了。

libsddc:是我移植自官方的SDDC庫和自己寫的 SDK,也是放入 libraries 檔案夾裡就行。裡面是 SDDC 協定的處理函數,我們不用管。

Waveshare_UV_C: 是微雪官方提供的語音播報子產品的庫,不過這個庫有一點點不同,是給 AVR 架構的晶片做的,編譯的時候會彈出一個警告:

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

不過我看了一下庫裡面的内容,除了一個好像沒有用上的 INT_PIN 定義,其他的應該都能正常使用。

另外在加載庫的時候需要選擇 Waveshare:

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

demo 檔案夾裡面就是我們各種傳感器的 demo 代碼了:

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

紅圈的 LTR390UV_sddc_sdk_demo檔案夾裡面就是我們代碼,點進去就能看見 LTR390UV_sddc_sdk_demo.ino 檔案,輕按兩下檔案會自動啟動 arduino-IDE 打開代碼。在工具 -> 端口 選擇對應的 COM 口然後點選上傳就可以把代碼燒錄到闆子裡:

從零開始 DIY 智能家居 - 基于 ESP32 的智能紫外線傳感器子產品前言硬體選擇二、使用步驟總結

具體 arduino 使用教程可以看我之前的文章 [arduino開發指導] 和 [手把手帶你 arduino 開發:基于ESP32S 的第一個應用-紅外測溫槍(帶引腳圖)]

通過 Spirit 1 的應用程式或者[嗅探器] 向傳感器裝置發送的指令:

擷取紫外線強度資料

基于官方 demo 寫的不需要做什麼修改,主要是裝置初始化,管腳配置,和協定初始化部分。

這部分代碼可以配置 WiFi 名字和 WiFi 密碼,要使用的引腳,并且配置裝置在 Spirit 1 上顯示的資訊:

這是收到指令後回調函數注冊的位置,在這裡注冊的函數才能被 SDK 正确的調用,執行正确的動作。

具體 SDK 的解析可以參考 [同人逼死官方系列!基于sddc 協定的SDK架構 sddc_sdk_lib 解析]和 [同人逼死官方系列!從 DDC 嗅探器到 sddc_sdk_lib 的資料解析]

這裡是我們自己編寫的處理流程 ,可以根據你的需求自己更改,收到 set 或者 get 後根據前面的注冊的函數,進入對應的處理函數。

剛才拿去試了一下,外面紫外線強度居然有9!我查了一下:

當紫外線為最弱(0 ~ 2級)時對人體無太大影響,外出時戴上太陽帽即可;紫外線達3 ~ 4級時,外出時除戴上太陽帽外還需備太陽鏡,并在身上塗上防曬霜,以避免皮膚受到太陽輻射的危害;當紫外線強度達到5 ~ 6級時,外出時必須在陰涼處行走;紫外線達7 ~ 9級時,在上午10時至下午4時這段時間最好不要到沙灘場地上曬太陽;當紫外線指數大于等于10時,應盡量避免外出,因為此時的紫外線輻射極具有傷害性。

以前完全沒有注意過!沒到我們這紫外線強度這麼高!

繼續閱讀