2013-07-30 63 views
3

我目前正在設計一個傳感器網絡,它將具有小型ATtiny85探頭,每個探頭都有一個溫度傳感器,一個氣壓計和一個溼度傳感器。我想我會用這些(http://goo.gl/TqaDjl)溝通,因爲它們成本低,不需要太多的範圍。我不知道如何讓探頭與主控制器進行通訊,因爲發射器是以數字方式發送的,而且我將有+20個探頭,這些探頭都需要發送數據,而信號沒有重疊或每分鐘都搞亂。我認爲最簡單的方法是定時探測器,以便它們在傳輸中不重疊,但我不確定。 問題:Arduino射頻傳感器網絡

- 是否使用RF這個系統的最便宜和最好的選擇?

- 如何防止通信重疊?

- 從arduino(或ATtiny85)發送數據的最簡單方法是什麼?

+0

我不能停止考慮價格:兩塊電路板1.29?!?我不在乎,他們只是一小部分組件,價格令人難以置信。沒有其他人可以以這個價格寄給你一個空信封 - 我說是的,這是_cheapest_。你應該升級到ER99 1.33 $一雙,因爲那些來免費送貨?!來自中國 ?! – jdr5ca

+0

我知道可笑的價格是我感興趣的東西,通常通信是最昂貴的部件之一(即Xbee) – Dragongeek

回答

1

那些將是迄今爲止最便宜的方法。至於最好的方法,有多種選擇更好,但更昂貴。想到Xbee模塊的網絡,但這些網絡的成本要比每雙1.25​​美元要貴。

但是,使用RF模塊是非常有用的。爲了防止通信重疊,在每個傳感器節點和主集線器上放置一個RF發射器和接收器。主集線器可以發送「hey sensor1給我你的數據」,並將其傳播給所有的傳感器。但是,只有傳感器1纔會意識到「嗨,我是傳感器1,這是我的數據」,中心將監聽。然後,集線器將繼續並說「嗨sensor2發送給我你的數據」等等等等。

+0

非常感謝! – Dragongeek

1

我認爲你的原始方法可能是最好的。在每臺設備上安裝Tx和Rx的方法可能都很實惠,但我質疑它是否可行。有20個設備以相同的頻率發送,接收器「聽到」哪一個。最重要的是,當自己的發射器非常近時,設備如何接收任何遠程發射器的信號?請記住:這些是AM收音機,即使不發送任何數據,也會「發送」運營商。在嘗試全面擴展之前獲取少量變送器。

爲了避免在非活動發射機的湯中接收到一個活動發射機的問題,您希望只有1個發射機在1次通電。您可以控制Vcc到一個發射器,打開它,發送數據突發,然後關閉它。

- 如何防止通信重疊?

你不能 - 你必須接受,偶爾會有重疊。爲傳輸的數據添加一個CRC,以便接收器可以檢測到垃圾。

多臺變送器的時間確實是一個項目本身。你當然不希望在相同的傳輸期間運行它們。它們可能不會在開始時發生碰撞,但是當兩個設備一起漂移並開始碰撞時,它們會停留在一起並長時間相撞,直到時鐘分開。

我會從簡單的事情開始。例如,對於三個設備,以2000 ms,2200 ms,2400 ms週期運行傳輸(使用EEPROM進行配置)。這樣,如果一對碰巧在一個數據點發生碰撞,那麼下一對傳輸將相距200毫秒。

+0

非常感謝! – Dragongeek

3

我想我遲到了派對,但是我會在一個鏈接上提供一些關於碰撞控制的一些見解,這些碰撞控制在一個鏈接上有很多顫振發射器,a la 802.11。這有點分包。

如果兩個發射器試圖同時發射,你肯定會在接收器處得到一個腐爛的燻肉。

WiFi風格的碰撞簡化版本會很好。基本上,它使用可檢測的前導碼,而對於較長衝突發生機率更高的傳輸,它可以使用較短的請求/清除來發送數據包。

雖然這可能是矯枉過正,但我​​會選擇前導。首先發送穩定的可識別的數據流,如十六進制555533330f0f00ff,它基本上是交替1s和0s,但頻率發生變化(0101,然後是0011,然後是00001111等),這是一種不太可能得到的容易識別的模式雜散輻射或噪音。

這種模式可能會發生移位,所以有一組其他前導碼應該相對於原始碼位移。

如果發射器檢測到這個序言,它應該停止並等待。如果將所有數據包限制在一定的時間長度內,如果在數據包之間等待足夠的時間,則不應發生衝突。如果在一個數據包的時間內,聽到一個前導碼,那麼你的站點應該等待傳輸的全部長度(監聽它的長度和其他標題字段,以便知道需要等待多長時間)。數據包完成後,您的電臺可以發送其前導碼。

這是WiFi相似性停止和簡單的協議接管的地方。

請注意,如果兩個站正在等待一個數據包,他們幾乎可以同時啓動它們的前導碼。爲了解決這個問題,每個臺站應該在其前導碼中翻轉不同的零位。如果它檢測到該位爲1,則會看到另一個站點正在預覽,並應退出。

每個電臺在每個數據包後都應該等待一定的延遲(直到你),以便其他電臺可以開始傳輸。

通信模式的一些草圖顯示,這足以滿足您的需求。

現在如果它是一個主從式系統,只要你只有一個網絡,它應該更容易,因爲應該只有一個未決請求會涉及一個從屬傳輸。

+0

非常感謝! – Dragongeek

+0

@Dragongeek沒問題。隨時評論任何問題。 – hexafraction