산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

가정에 무선 센서 네트워크 구축

이 튜토리얼은 비용 효율적인 무선 센서 모듈 네트워크를 만드는 방법을 알려줍니다. 이미 만들어진 많은 무선 모듈은 여러 센서 장치에 사용하기에는 너무 비쌀 수 있습니다. Wi-Fi 및 Zigbee 모듈은 대중적이고 사용하기 쉽지만 비용으로 인해 센서 어레이에서 사용할 수 없습니다. 그러나 이러한 목적에 적합하게 작동하는 값비싼 기능이 모두 없는 저렴한 RF 모듈이 있습니다. Arduino 플랫폼은 저가형 무선 모듈을 사용하여 쉽고 안정적으로 통신할 수 있습니다.

하드웨어가 조립되면 Raspberry Pi 플랫폼을 활용하여 시간 경과에 따른 값을 추적하고 임계값 조건에서 트리거할 수 있는 Xively의 사물 인터넷 서비스에 데이터를 게시합니다.

이 프로젝트에는 3개의 부분, 2개의 송신기 장치 및 1개의 수신기 장치가 포함됩니다. 송신기는 Arduino 보드, 센서 및 RF 송신기로 구성됩니다. 수신기 유닛은 Arduino 보드, RF 수신기, 로직 레벨 변환기 및 Raspberry Pi로 구성됩니다.

이 프로젝트에 사용할 수 있는 다양한 Arduino 호환 보드가 있습니다. 이 프로젝트의 보드에 대한 최소 요구 사항은 2개의 디지털 GPIO 핀과 1개의 아날로그 핀입니다. 이 프로젝트의 비용 및 단순성 요구 사항에 맞는 Arduino 호환 보드를 선택하십시오.

이 튜토리얼에서는 브레드보드에 잘 맞고 프로그래밍하기 쉬운 Arduino Nano 보드 세트를 사용했습니다. 그러나 Arduino pro mini 또는 Trinket의 5V 버전도 훨씬 더 저렴한 가격대로 잘 작동합니다. 그러나 이들은 프로그래밍하고 사용하는 데 조금 더 많은 경험이 필요합니다. 현명하게 선택하십시오.

<울>
  • Raspberry Pi - 전원 공급 장치, 케이스 및 SD 카드가 있는 모델 B - 선택한 케이스에서 GPIO 핀에 액세스할 수 있는지 확인합니다.
  • Pi 호환 Wi-Fi 어댑터
  • 아두이노
  • 브레드보드 점퍼 와이어
  • 남성 대 여성 점퍼 와이어
  • 논리 레벨 변환기
  • 434MHz RF 수신기
  • 하프 브레드보드
  • <울>
  • 2 x Arduino
  • 2 x 온도/습도 센서
  • 2 x 434MHz RF 송신기
  • 2 x 하프 브레드보드
  • 2 x 브레드보드 친화적인 2.1mm DC 배럴 잭
  • 2.1mm x 5가 있는 9V 전원 어댑터 2개
  • 브레드보드 점퍼 와이어
  • <울>
  • Arduino 프로그래밍 IDE가 설치된 PC/Mac
  • Arduino 보드 프로그래밍용 USB 케이블
  • USB 키보드 및 마우스. 하나의 USB 포트로 둘 다 사용할 수 있도록 결합하거나 허브와 함께 사용할 수 있습니다.
  • 프로그래밍 워크스테이션의 이 튜토리얼과 연결된 소스 패키지
  • 송신기 자체는 비교적 간단한 회로입니다. 하나의 핀만 온도 및 습도 센서에서 정보를 검색하는 데 사용되며 하나의 핀은 해당 데이터를 RF 송신기로 보내는 데 사용됩니다. 브레드보드 다이어그램은 아래와 같습니다.

    9V 전원 공급 장치는 배럴 커넥터에 연결되어 하단 레일을 9V로 만듭니다. Arduino의 전원 조정기는 다이어그램의 상단 전원 레일인 라디오 및 센서에 사용하기에 안전한 5V를 생성합니다.

    센서에는 데이터 핀을 풀업 저항으로 전원에 연결하는 10k 옴 저항이 포함되어 있고 다른 와이어는 이를 GPIO D3에 연결합니다.

    아래 설정을 주의 깊게 따르고 센서 및 RF 모듈에 대한 데이터시트를 다시 확인하여 구성 요소가 브레드보드에 올바르게 배치되어 있고 전원, 접지 및 신호 핀이 올바른 핀에 연결되어 있는지 확인하십시오. 더 자세한 정보를 위해 프리칭 다이어그램이 소스 패키지에 포함되어 있습니다.

    RF 모듈에는 안테나가 내장되어 있지 않기 때문에 안테나는 보드의 중요한 부분입니다. 나는 브레드보드에 연결된 6인치 암-수 점퍼 와이어를 사용했고 집의 모든 부분과 약간의 외부에서 수신할 수 있을 만큼 충분히 잘 작동했습니다. 다이어그램에서 알 수 있듯이 추가 범위가 필요한 경우 6.5인치가 이 안테나에 가장 적합합니다.

    RF 사용에 대한 참고 사항입니다. 주파수 사용에 관한 법률과 규칙은 국가마다 다릅니다. 방송하기 전에 이러한 규칙을 준수하는지 확인하십시오. 즉, 이러한 모듈의 신호는 집 외부를 통과할 만큼 충분히 강력하지 않습니다. 그러나 완벽한 조건에서 이러한 모듈은 최대 500피트까지 방송할 수 있습니다.

    송신기는 Arduino IDE에 번들로 제공되지 않는 두 개의 라이브러리를 사용합니다. 아래 설명된 대로 라이브러리를 다운로드하고 라이브러리라는 하위 디렉토리의 스케치 디렉토리에 압축을 풉니다.

    <울>
  • 이 튜토리얼을 위한 VirtualWire 소스 패키지를 다운로드하고 무선 송신기 스케치 폴더를 Arduino 스케치 폴더에 압축을 풉니다.
  • wirelesstransmitter 폴더에서 Libraries라는 폴더를 만듭니다.
  • 프로젝트 페이지에서 VirtualWire 코드의 최신 버전인 1.23을 이 글을 쓰는 시점에서 다운로드하십시오.
  • VirtualWire 폴더를 Wirelesstransmitter/Libraries/ 폴더로 추출하여 VirtualWire라는 다른 하위 폴더를 만듭니다.
  • 프로젝트 github 페이지에서 DHT 센서 라이브러리 다운로드
  • DHT 폴더도 Libraries 폴더에 압축을 풉니다. 이제 무선송신기/라이브러리 폴더에 두 개의 필수 라이브러리 폴더 DHT 및 VirtualWire가 있어야 합니다.
  • 이 튜토리얼에서는 Arduino에 대한 약간의 경험이 있고 Arduino IDE를 사용하여 프로그래밍하는 방법이 있다고 가정합니다. 그렇지 않다면 공식 Arduino 사이트에 아주 좋은 지침이 있습니다.

    <울>
  • Arduino IDE의 소스 아카이브에서 무선 송신기 스케치를 열고 복사본을 로컬에 저장
  • Arduino가 배럴 커넥터를 통해 전원에 연결되어 있지 않은지 확인
  • 적절한 USB 케이블을 사용하여 보드를 프로그래밍 작업 스테이션에 연결합니다.
  • 도구> 보드 메뉴에서 선택한 Arduino 보드로 보드 유형을 설정합니다.
  • 도구> 포트 메뉴에서 아두이노 보드를 연결할 때 감지된 포트로 직렬 포트를 설정합니다.
  • MYID 정의가 1로 설정되어 있고 TRANSPIN 및 DHTPIN이 RF 송신기 모듈 및 DHT 센서에 각각 연결된 핀으로 올바르게 설정되어 있는지 확인하십시오. 위의 다이어그램에 따라 보드를 구축했다면 이 모든 것이 이미 설정되어 있어야 합니다. 아래 코드 예시를 참조하세요.
  • UNIT가 화씨 또는 섭씨 기본 설정에 맞게 올바르게 설정되어 있는지 확인하십시오.
  • 12345 #define MYID 1 //이 보드의 ID 번호입니다. 깜박이는 각 보드에 대해 이것을 변경하십시오. //어떤 장치가 전송 중인지 알 수 있도록 데이터와 함께 ID가 전송됩니다. #define TRANSPIN 3 //전송할 핀 #define DHTPIN 4 // DHT가 연결된 핀 #define UNIT 0 // 화씨 0, 섭씨 1

    MYID 정의는 송신기가 자신을 고유하게 식별하는 데 사용하는 숫자 ID입니다. 서로 다른 위치에 여러 개의 송신기가 있기 때문에 각각에 대해 고유한 ID를 갖는 것이 중요합니다. 이 번호는 수신자 스크립트를 설정할 때 다시 사용됩니다.

    <울>
  • Control-R을 눌러 라이브러리가 제대로 포함되고 컴파일되었는지 확인하여 코드를 확인합니다.
  • 도구 모음에서 업로드 버튼을 클릭하여 코드를 보드에 푸시합니다.
  • Control-Shift-M을 눌러 직렬 모니터 창 열기
  • 직렬 모니터 창은 Arduino를 재설정하므로 화면에 다음과 같은 코드 줄이 표시되어야 합니다.

    12 습도:44.00% 온도:60.80 *F 메시지 보내기:ID:1:TS:23143:TF:60.79:RH:44.00

    메시지는 수신자가 처리할 이름:값 쌍으로 구성됩니다. 송신기는 긴 무작위 간격으로 신호를 읽고 브로드캐스트합니다. 센서는 많이 또는 자주 변경되지 않으므로 1분에 한 번 이상 방송하는 것은 가치가 없습니다. 임의의 대기 시간은 여러 센서가 공존할 수 있도록 하는 것입니다.

    배가되고 두 ​​송신기의 신호가 손실되더라도 무작위 간격은 다음 방송이 겹치지 않도록 합니다. 이 간격에 대한 임의의 시드는 두 송신기가 동일한 패턴에 있지 않도록 임의 값을 반환하는 사용되지 않은 아날로그 포트의 analogRead에서 설정됩니다.

    위의 출력을 생성하는 예제 코드는 화씨를 사용하도록 설정되어 있습니다. 내 실험실이 실제로 61도 미만의 머리카락임을 나타내는 메시지 문자열에서 TF:60.79 식별자를 볼 수 있습니다. 그러나 상대 습도 RH:44.00은 편안한 44%입니다. 시원하고 습한 환경에서 내 연구실이 내 지하실에 있다고 추론할 수 있습니다. 하나가 맞을 수도 있습니다.

    송신기는 기본적으로 방송 사이에 2~5분을 기다리도록 설정되어 있습니다. 디버깅을 위해 이 속도를 높이려면 스케치 끝에서 delay() 값을 5000(ms) 이상으로 수정하십시오. 풀타임으로 사용할 준비가 되면 이것을 다시 변경하고 코드를 송신기에 다시 업로드하는 것이 좋습니다.

    <울>
  • 두 번째 송신기 보드 제작
  • MYID 정의가 2로 설정되도록 송신기 스케치 수정
  • 두 번째 보드에 코드 업로드
  • Control-Shift-M을 눌러 직렬 모니터 창을 열고 전송된 메시지가 ID:2로 시작한다는 점을 제외하고 출력이 첫 번째 송신기 보드처럼 보이는지 확인합니다.
  • 수신기 보드는 RF 수신기 구성 요소에서 브로드캐스트 메시지를 수신하고 해당 메시지를 직렬 와이어를 통해 Raspberry Pi로 보내는 역할을 합니다. Arduino 보드는 몇 가지 매우 중요한 이유로 신호를 수신하는 데 사용됩니다. VirtualWire 코드는 Arduino의 실시간 특성을 사용하여 신호 변조 및 복조를 관리합니다.

    이것은 수신 장치가 동일한 주파수에서 작동해야 함을 의미합니다. 또한 Raspberry Pi는 선점형 비실시간 운영 체제로 인해 수신 프로세서에서 지터가 발생할 여지가 거의 없습니다. Arduino Pro Mini와 RF 수신기 모듈의 비용을 Raspberry Pi와 직접 통신할 수 있는 Zigbee 모듈의 비용과 비교하면 외부 Arduino를 사용하는 것이 여전히 상당히 경제적인 것으로 나타났습니다.

    이 시점에서 Pi의 5V 및 접지 리드를 브레드보드에 연결하지 마십시오. 점퍼 와이어를 편리하게 유지하되 USB 포트와 Raspberry Pi 모두에서 Arduino에 전원을 공급하고 싶지는 않습니다.

    위의 재료 목록에 있는 논리 레벨 변환기는 Fritzing 라이브러리에 있는 것과 정확히 동일하지 않지만 핀 출력은 다른 위치에 레이블이 잘 지정되어 있습니다. 실제 로직 레벨 변환기의 올바른 핀에 올바른 와이어가 연결되어 있는지 확인하십시오.

    이 구성 요소는 5V Arduino 직렬 신호를 3.3V Raspberry Pi 직렬 신호로 변환하고 Pi를 손상시키지 않기 위해 필요합니다. 추가 도움말은 아래 이미지를 참조하세요.

    자세한 내용:가정에 무선 센서 네트워크 구축


    제조공정

    1. 무선 센서 네트워크:기술 전환 시 기억해야 할 6가지
    2. 저전력 무선 센서 네트워크란 무엇입니까?
    3. 무선 진입로 센서에 대한 인터페이스
    4. 18세기 방앗간을 위한 센서 네트워크 구축
    5. 무선 센서 네트워크를 공급하고 관리하는 방법
    6. 무선 자기 데이터 전송
    7. K30 센서로 CO2 모니터링
    8. 키는 얼마입니까?
    9. Arduino 또는 ESP8266이 있는 정전 용량 지문 센서
    10. 장거리 무선 센서 네트워크