奧推網

選單
科技

...DIY智慧家居 篇十一:非智慧蓋革計數器接入homeassistant(光學識別)上

作者:sonatasss

前言

本期以蓋革計數器為例演示如何將非智慧裝置接入到homeassistant中

涉及內容比較多

上篇主要講HA設定部分

硬體準備

攝像頭一個

因為不想對蓋革計數器進行硬體改造

而且手頭有個esp32-cam

所以打算用OCR方案(光學識別)

如果所拍攝物體比較遠

建議用好一點的ip cam

百元左右TP或者水星價效比都不錯

還可以用閒置手機當網路攝像頭

APP推薦IP Webcam

如果介意有水印的可以百度下 PJ版的 IP Webcam PRO

然後在HA裡新增整合就可以了

建立OCR伺服器

本來打算用自帶的Seven Segments OCR元件

不知為什麼我這個docker版HA沒有 ,元件安裝還比麻煩

乾脆搭建個飛槳ocr伺服器

不用設定文字座標

也不僅限於數字

呼叫起來也方便

程式碼如下

docker run  -d  -p 5001:5000 ——restart=always c403/paddleocr

呼叫例子

json 格式

curl IP:5001/ocr -F imgurl=https://res。smzdm。com/mobile/wap/dist/img/download_logo。png -F outtype=json

只顯示結果

curl IP:5001/ocr -F imgurl=https://res。smzdm。com/mobile/wap/dist/img/download_logo。png

上傳圖片檔案

curl ip:5001/ocr -F img=@/tmp/img。png

識別測試

示例圖片

第一行是即時輻射值

第二行是執行5分鐘之後的平均數值

識別結果

可以看到第二行就是要提取的資料

homeassistant設定

修改configuration。yaml檔案新增如下程式碼

homeassistant:

allowlist_external_dirs:

- /config/

- /tmp/

sensor:

- platform: command_line

name: radiation

command: “curl 172。17。0。1:5001/ocr -F img=@/config/radiation_ocr。jpg -s  |  sed -n ‘2p’”

unit_of_measurement: “uSv/h”

unique_id: “sensor。radiation”

這裡  sed -n ‘2p’“ 即獲取第二行資料

大家按需求自行修改

然後建立自動化就就可以了

我設定的是每天8點

攝像頭截圖儲存在 /config/radiation_ocr。jpg

然後更新命令列感測器

alias: 每天八點自動更新

description: ”“

trigger:

- platform: time

at: ”08:00:00“

condition: []

action:

- service: camera。snapshot

data:

filename: /config/radiation_ocr。jpg

target:

entity_id: camera。192_168_68_94

- delay:

hours: 0

minutes: 0

seconds: 3

milliseconds: 0

- service: homeassistant。update_entity

data: {}

target:

entity_id: binary_sensor。updater

mode: single

測試ok

幾行程式碼就搞定了

是不是很簡單

閒來無事我又測試了下文字識別

還是挺好用的

總結

本文主要學習了HA的命令列感測器和orc伺服器搭建

https://www。home-assistant。io/integrations/sensor。command_line/

該ocr方案相比HA自帶的seven segments省去了除錯的麻煩

而且也不用設定完座標擔心攝像頭位移問題

缺點就是docker體積有點大(2G),不相容ARM架構

最後附上操作影片