2013-07-30 2 views
3

현재 온도 센서, 기압계 및 습도 센서가있는 소형 ATtiny85 프로브가있는 센서 네트워크를 설계 중입니다. 나는 그들이 저렴한 비용으로 많은 범위를 필요로하지 않기 때문에이 (http://goo.gl/TqaDjl)을 사용하여 통신 할 것이라고 생각합니다. Im는 송신기가 디지털 방식으로 전송할 때 프로브를 주 제어 장치와 통신하는 방법을 알려주지 만 모든 신호가 겹치거나 매분마다 엉망이없이 데이터를 전송해야하는 +20 프로브를 갖게됩니다. 가장 쉬운 방법은 프로브가 전송에서 겹치지 않도록 프로브를 측정하는 것이지만 확실하지는 않습니다. Questions :Arduino RF 센서 네트워크

- RF를 사용하는 시스템에 대해 가장 저렴하고 저렴한 옵션은 무엇입니까?

- 통신 겹침을 방지하려면 어떻게합니까?

- arduino (또는 ATtiny85)에서 디지털로 데이터를 보내는 가장 쉬운 방법은 무엇입니까?

+0

나는 가격에 대해 생각할 수 없다 : 두 개의 회로 기판에 대해 1.29?!? 나는 그것들이 단지 작은 수의 부품 일 뿐이라고 생각하지 않는다. 가격은 믿어지지 않는다. 아무도 그 가격에 당신에게 빈 봉투를 나눠 줄 수있는 사람이 없습니다. 나는 네라고 말합니다. 이것은 가장 저렴합니다. 무료 배송 서비스가 제공되므로 1.33 $ 한 쌍의 ER99로 업그레이드해야합니까?! 중국에서 ?! – jdr5ca

+0

나는 우스꽝스러운 가격이 내 관심사라는 것을 안다. 보통 통신은 가장 비싼 부품 (예 : Xbee) 중 하나이다. – Dragongeek

답변

1

이것은 지금까지 가장 저렴한 방법입니다. 가장 좋은 방법은 다양한 선택이 있지만 훨씬 더 비쌉니다. Xbee 모듈 네트워크가 떠오르지 만 가격이 1.25 달러에 훨씬 못 미친다.

그러나 RF 모듈을 사용하는 것은 매우 효과적입니다. 통신이 중복되지 않도록 각 센서 노드와 메인 허브에 RF 송신기와 수신기를 배치하십시오. 메인 허브는 모든 센서에 브로드 캐스트되는 "hey sensor1 your data your"을 보낼 수 있습니다. 그러나 sensor1만이 "허브 1이 센서 1입니다. 여기 내 데이터가 있습니다"라는 사실을 깨닫게됩니다. 그런 다음 허브가 계속해서 "이봐 센서 2가 내게 데이터를 보내"라고 말합니다.

+0

대단히 감사합니다! – Dragongeek

1

나는 귀하의 원래 접근 방식이 가장 좋을 것이라고 생각합니다. Tx와 Rx를 모든 장치에 적용하는 방법은 경제적 일 수 있지만 작동하는지 질문합니다. 20 개의 기기가 동일한 주파수로 전송되는 경우, 어느 기기가 수신기에 "들립니다". 가장 중요한 점은 자체 송신기가 매우 가까이있을 때 장치가 원격 송신기의 신호를 수신하는 방법은 무엇입니까? 주의 사항 : 이들은 AM 라디오이며 데이터를 전송하지 않더라도 이동 통신사를 "전송"합니다. 전체 크기로 이동하기 전에 소수의 송신기를 확보하십시오.

비활성 송신기에서 하나의 활성 송신기를받는 문제를 피하려면 1 송신기에 1 송신기 만 필요합니다. Vcc를 하나의 송신기로 제어하고, 켜고, 데이터 버스트를 보낸 다음 전원을 끕니다.

- 통신 겹침을 방지하려면 어떻게합니까?

가끔씩 겹칠 수도 있음을 인정해야합니다. 수신자가 가비지를 감지 할 수 있도록 전송 된 데이터에 CRC를 추가합니다.

여러 송신기의 타이밍은 분명 자체 프로젝트입니다. 같은 전송 기간에 모두 실행하고 싶지는 않습니다. 그들은 처음에는 충돌하지 않을 수 있지만 두 장치가 함께 표류하고 충돌을 시작하면 시계가 떨어져 나올 때까지 함께 머물러서 오랜 시간 충돌합니다.

나는 간단한 것으로 시작할 것입니다. 예를 들어 세 개의 장치를 사용하는 경우 2000ms, 2200ms, 2400ms주기 (EEPROM을 사용하여 구성)에서 전송을 실행하십시오. 그런 식으로 한 쌍의 데이터가 하나의 데이터 포인트에서 충돌하면 그 다음 전송은 200ms 떨어져 있습니다.

+0

대단히 고마워요! – Dragongeek

3

나는 파티에 늦은 것 같지만, 하나의 링크에 거대한 수다쟁이 송신기가있는 aaa 802.11을 사용하여 충돌 제어에 대한 통찰력을 제공 할 것입니다. 이것은 다소 패킷 화되어 있습니다.

두 개의 송신기가 동시에 송신을 시도하면 수신자에게 썩은 베이컨이 엉망이 될 수 있습니다.

WiFi 스타일 충돌의 단순화 된 버전이 좋을 것입니다. 기본적으로, 그것은 탐지 될 수있는 프리앰블을 사용하며, 충돌 가능성이 더 높은 전송 시간이 길어질수록 패킷을 보내기 위해 더 짧은 요청/해제를 사용할 수 있습니다.

이것은 과도 할 것 같지만 필자는 프리앰블로 이동합니다. 기본적으로 1과 0이 번갈아 가며 (0101, 0011, 00001111 등) 16 진수와 같이 인식 할 수있는 안정된 스트림을 전송하는 것으로 시작합니다. 누설 된 방사능 또는 소음에 의해 차단됩니다.

이 패턴은 시프트 될 수 있으므로 원본과 비교하여 비트별로 이동해야하는 유한의 다른 프리앰블 집합이 있습니다.

송신기가이 프리앰블을 감지하면 중지하고 기다려야합니다. 모든 패킷을 특정 시간 길이로 제한하면 패킷 사이에 충분한 시간을 대기하면 충돌이 발생하지 않아야합니다. 한 패킷의 시간 동안 프리앰블이 들리면 스테이션은 전송의 전체 길이 (길이 및 기타 헤더 필드를 수신하여 대기 시간을 알 수 있음)를 기다려야합니다. 패킷이 완료되면 스테이션이 해당 프리앰블을 전송할 수 있습니다.

이것은 WiFi 유사성이 멈추고 더 간단한 프로토콜이 이어지는 곳입니다.

두 스테이션이 패킷을 대기하는 경우 거의 동시에 해당 프리앰블을 시작할 수 있습니다. 이를 해결하기 위해 각 스테이션은 해당 프리앰블에서 다른 0 비트를 플립해야합니다. 해당 비트가 1을 발견하면 다른 스테이션이 도박을하고있는 것을 확인하고 다시 해제해야합니다.

각 스테이션은 다른 스테이션이 전송을 시작할 수 있도록 각 패킷 이후에 특정 지연 (사용자까지)을 기다려야합니다.

통신 패턴의 일부 스케치는 이것이 사용자의 요구에 충분 함을 보여줍니다.

이제는 하나의 네트워크 만있는 한 마스터 - 슬레이브 스타일 시스템 인 경우 슬레이브 전송과 관련하여 하나의 미해결 요청이 있어야하기 때문에 쉬워야합니다.

+0

대단히 감사합니다! – Dragongeek

+0

@Dragongeek 문제가 없습니다. 언제든지 질문에 대해 의견을 말하십시오. – hexafraction

관련 문제