您現在的位置是:首頁 > 垂釣

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

  • 由 什麼值得買 發表于 垂釣
  • 2022-11-05
簡介如果有多條i2c會用到id: bus_a之後在sensor:分支新增感測器即可之前已經有一個溫溼度感測器了新增之後程式碼是這樣的#型號  bh1750- platform: bh1750#提交給HA的名稱name: “BH1750 Illu

兩根線感應器怎麼接線

作者:sonatasss

本文用兩個模組來演示HA透過ESPHOME接入I2C,UART裝置

本文還是以WROOM為例,針腳定義如圖

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

知識基礎

本部分看下就行,不理解也不影響使用

I2C、SPI、UART都是常見的低速板級通訊協議,目前主流的SoC都內建了這些通訊協議的控制器,同樣,各種感測器、Touch控制器、指紋模組、藍芽模組、WIFI模組也都相容這三種通訊方式的一種或幾種。

分別說下:

1。 I2C是兩根線,SDA(資料)和SCL(時鐘),也是一種同步傳輸協議。主機在傳送開始訊號之後,先發送7個位元的地址位和1個位元的讀寫位,每個從機有自己的I2C地址,當發現該條指令是發給自己的時候,拉低SDA線(即回覆ACK訊號),然後主機發送或接收資料,完成傳輸。傳輸完成之後,主機發送停止位,完成該次傳輸。

2。 UART一般由TXD、RXD、GND三根線組成,是一種非同步傳輸協議。無論是主機還是從機,均可以自由傳送資料,但是由於UART匯流排並沒有時鐘線,所以需要提前約定對應的波特率,這是一種很簡單的傳輸協議。

3。 SPI是四根線,分別是CS(片選)、MOSI(主發從收)、MISO(從發主收)、CLK(時鐘),是一種同步傳輸協議。主機送出CLK訊號,主機到從機的資料在MOSI線上傳輸,從機到主機的資料在MISO線上傳輸。在啟動傳輸之前,需要先拉低(一般是這樣,也有各別晶片是CS高有效)對應從機的CS管腳,在傳輸完成之後,再拉高CS管腳,從機的SPI Slave模組進入休眠。

I2C感測器接

I2C用BH1750環境光感測器做示例

接線

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

接線示意圖

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

實際接線圖

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

之前接好的溫溼度就不撤下來了

可以看到SCL是綠線接在33 ,SDA是白線接在25

程式碼

i2c首先設定匯流排

感測器SCL——主機板SCL

感測器SDA——主機板SDA

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

i2c:

#指定scl引腳

scl: 33

#指定sda引腳

sda: 25

#id。如果有多條i2c會用到

id: bus_a

之後在sensor:分支新增感測器即可

之前已經有一個溫溼度感測器了

新增之後程式碼是這樣的

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

#型號  bh1750

- platform: bh1750

#提交給HA的名稱

name: “BH1750 Illuminance”

#id,裝置聯動會用到

id: illuminance

#地址,廠商設定好的

address: 0x23

#每60秒採集上報一次資料

update_interval: 60s

之後參考篇3,儲存安裝即可

uart感測器

uart用SenseAir S8 二氧化碳感測器做示例

接線

由於模組是反向排針

就只能用杜邦線連線

官方文件介紹說要用4-5v供電

這裡就要從5v針腳另取電了

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

針腳定義和接線示意圖如下

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

RX綠色接在GPIO27

TX橙色接在GPIO26

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

程式碼

uart和i2c類似也要先設定匯流排

不過這裡要注意收發關係對應

感測器RX(接收)——主機板TX(傳送)

感測器TX(接收)——主機板RX(傳送)

波特率官方文件介紹SenseAir S8只支援9600

整體程式碼如下

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

#新增uart匯流排

uart:

#主機板接收針腳

rx_pin: 26

#主機板傳送針腳

tx_pin: 27

#波特率官方文件介紹SenseAir S8只支援9600 。

baud_rate: 9600

#  #id。如果有多條uart會用到

id: uart_a

然後在sensor下面繼續新增程式碼即可

現在已經有3個感測器了

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

對應程式碼很簡單,就不註釋了

- platform: senseair

co2:

name: “SenseAir CO2 Value”

update_interval: 60s

OTA更新韌體後就可以正常採集資料了

【零基礎】一起DIY智慧家居 篇四:homeassistant接入光線感測器和二氧化碳感測器

最後附上配套影片

Top