2019年3月29日 星期五

ESP32 讀取 SHT20 溫濕度感測器

markdown


之前在使用ESP8266讀取SHT20時就遇到過,使用網路上的 Library時無法正確讀取溫溼度的問題,但是那時沒時間debug,就一個個的download下來,使用try and error的精神,總算用SHT21的可以使用,就一直沒再去看問題啦

這次使用ESP32讀取時,因沒有紀錄之前哪些程式庫可以使用,就只好重來一次啦,但這次就不打算亂槍打鳥,好好來看一下問題出在哪兒吧

這次使用[DFRobot SHT20](https://github.com/DFRobot/DFRobot_SHT20)的程式庫,照著example code做,得到的結果都是998的數值

Errors 998 if not sensor is detected. Error 999 if CRC is bad.

確認了好幾次,線路明明就有接好呀,怎麼會沒偵測到呢? 最後拿出了LA鈎訊號,一直覺得讀取間隔時間太快了,把間隔拉長後就竟然讀取到溫溼度的數值了

在DFRobot\_SHT20.c的 DFRobot\_SHT20::readValue(byte cmd)程式中,調整 DELAY\_INTERVAL的大小,即為調整間隔時間,我是直接將它延長兩倍時間就可以正確讀取到了
for(counter = 0, toRead = 0 ; counter < MAX_COUNTER && toRead != 3; counter++){
    delay(DELAY_INTERVAL);
    toRead = i2cPort->
    requestFrom(SLAVE_ADDRESS, 3);
}

DELAY\_INTERVAL的定義是在 DFRobot\_SHT20.h 中,所以就修改這個數值,就解決讀不到溫溼度的問題啦

沒有留言:

Free ERP on the Raspberry Pi (odoo)

  #更新系統軟體 sudo apt update && sudo apt upgrade -y #安裝資料庫 sudo apt install postgresql -y #安裝py程序 sudo apt install python3-pip -y #安裝od...