簡體   English   中英

如何解決 Raspberry Pi 3B 和 Bme280 遠程 I/O 錯誤

[英]How to solve Raspberry Pi 3B & Bme280 Remote I/O error

讓我從使用的組件開始:

  • 用於將樹莓派連接到組件的 GPIO 擴展板
  • BM280
  • 圓周率 3B

問題描述:

這個問題一開始是間歇性的。 我們正在接收讀數並且錯誤突然發生,對傳感器進行了調整(取出並重新放入)解決了它但是當我們觸摸傳感器時錯誤再次出現。

我們決定更換傳感器,問題從間歇性變為持久性。 現在我們將此作為永久性問題。

我們刪除了 BME280 和 SmBus2 的 package 並決定重新安裝。

RPI Bme280: https://pypi.org/project/RPi.bme280/

我遵循了這個 BME280 安裝指南,但是當提示輸入“i2cdetect -y 1”時,出現了幾行但沒有顯示數字。

目前已確認的內容:

  • 修補電路很好,用我的講師 pi 測試過
    工作正常。

  • 代碼很好,我們甚至使用 RPi.bme280 提供的示例代碼

  • 每次都啟用 I2c

請幫助我,因為我真的迷路了。 我需要在下周之前提交此文件,因此不勝感激。

問題圖片 --> 問題圖片

我試圖做出回應,但 SMBus 和 i2c 中存在一些陷阱,因此為了將問題分解成更小的部分,我已在縮進的情況下引用了您的原始消息。 下面提供了響應。

這個問題一開始是間歇性的。 我們正在接收讀數並且錯誤突然發生,對傳感器進行了調整(取出並放回)解決了它,但是當我們觸摸傳感器時,錯誤再次出現。

我鎖定了聲明,“觸摸傳感器”。 BME280 是否有可能發生 ESD 放電? 因此現在是部分或完全壞了?

您在使用 ESD 安全室嗎? 或至少 ESD 手鐲。 您不會注意到小的 ESD 放電,對於小型電子產品,即使低於 1000V 的放電也會立即或隨着時間的推移造成損壞。 ( 靜電放電的基本原理 - incompliancemag.com )

我遵循了這個 BME280 安裝指南,但是當提示輸入“i2cdetect -y 1”時,出現了幾行但沒有顯示數字。

I2Cdetect -y 1 將向每個可能的從機 0-127 發送一條 ReadBit 消息。 然后監聽從地址上的 ACK。 該消息非常簡單,但可以檢測工作的 i2c 從站。 正如您所說,沒有“線路”,如果 BME280 提供了正確的 3v3+GND,我建議從機要么有響應問題。

作為另一種可能性,您能否重做此步驟 dtparam=i2c_arm=on,i2c_baudrate=400000

(將波特率設置為 10000 /10k。如果這可以解決問題並且您需要更高的帶寬,請嘗試“50000 /50k”或“100000 /100k”)這只是為了消除從機無法在此高頻率上運行的可能性頻率。 對於原型/測試場景,SMBus 的 400k 波特率很高。 非常少量的干擾可能會破壞 SDA 上的數據。

另一種可能性是我在 i2c 和 i2c 上的 SMBus 上學到的很難的灌電流。 你的上拉電阻適合有限的灌電流嗎?

SMBus 規定最小吸收電流為 100µA,最大吸收電流為350µA ,而 I²C 總線為3mA (安培=電壓/電阻歐姆)。

現在到軟件問題。

從您在 imgur 上提供的圖片。 文件“newcodes_''''''''''''''.py”第2行,在

您的編譯器在您嘗試導入 bme280 的位置找不到“bme”。 參考/路徑問題? 這可能是代碼調用中其他問題的原因。

我不知道你在用什么軟件編寫代碼,但如果有一個選項可以插入斷點並運行調試構建。 我建議從那里開始:)

好的,我已經解決了這個問題,我把線從跳線換成了硬線。 謝謝你們的回復。 我很感激他們所有人:D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM