산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 사물 인터넷 기술

Microchip의 RN487x Bluetooth 모듈을 사용하여 디지털 입력 및 디지털 제어를 구축하는 방법

마이크로칩 모듈을 사용하여 디지털 입력 및 디지털 제어 주변기기의 프로토타입을 만드는 방법을 알아보세요.

Microchip의 RN487x Bluetooth 모듈에 대한 3부작 시리즈의 두 번째 기사인 이 기사에서는 디지털 입력(스위치)과 디지털 제어(LED)를 생성하는 방법을 보여 드리겠습니다.

RN487x 모듈을 구성하는 방법에 대한 배경 및 지침은 제 첫 번째 기사를 다시 참조하십시오.

프로젝트 1:RN478x 디지털 입력 스위치

우리의 디자인 패턴에는 제공해야 하는 세 가지 구성 요소가 있습니다.

<올>
  • 하드웨어: 디지털 신호를 생성하는 작업별 하드웨어
  • 구성: RN487x 모듈 명령은 데이터베이스에 변수를 할당하고 신호를 변수에 매핑합니다.
  • 응용 프로그램: 데이터베이스 값을 수용하기 위한 워크스테이션의 스크립트
  • 다음은 구성 요소 분석입니다.

    디지털 입력 하드웨어

    '디지털 입력'의 역할은 단순히 스위치에 의해 제공됩니다. SW1.

    RN487x 모듈에는 핀에 내부 풀업이 있으므로 닫힐 때 접지에 연결된 상시 개방 스위치는 필요한 2-상태 제어를 제공합니다.

    우리는 하나의 신호만 관리하고 PWM을 사용하지 않기 때문에 RN4871을 선택했습니다. 회로는 한 쌍의 AAA 배터리 또는 코인 셀로 전원을 공급할 수 있습니다.

    나머지 회로 요소는 다음과 같습니다.

    <울>
  • C1: 전력 안정화를 위한 바이패스 커패시터
  • R1,C2: 전원을 켤 때 프로세서 재설정 지연
  • J1: 구성을 위한 직렬 포트
  • 디지털 입력 구성

    이 예에 대한 구성을 생성하기 전에 모듈이 알려진 상태인지 확인하십시오. 이것은 공통 초기화에 대한 부록 섹션에 설명되어 있습니다. 이 단계를 건너뛰지 마세요!

    센서 상태를 나타내기 위해 데이터베이스에서 하나의 특성만 필요합니다. 그래서 우리는 하나의 서비스와 그 서비스에서 하나의 특성을 만듭니다. 해당하는 두 명령은 다음과 같습니다.

    PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,10,01 

    첫 번째 명령인 PS는 서비스를 만듭니다. 두 번째 명령인 PC는 특성을 생성합니다. 두 명령 모두에서 첫 번째 매개변수는 주변 장치가 다른 Bluetooth 주변 장치에 존재하고 여전히 고유하게 액세스할 수 있도록 하는 식별자입니다. 이 매개변수는 UUID 표준을 준수해야 합니다. 표시된 예제 값을 사용할 수 있습니다. 또한 표준 UUID를 원하는 만큼 쉽게 생성할 수 있습니다.

    PC 명령에서 두 번째 매개변수는 Bluetooth 계층에 값 변경이 클라이언트에 전달되는 방법을 알려줍니다. 이 경우 매개변수(10)는 값을 변경하면 클라이언트에 즉시 알림을 보낼 수 있음을 나타냅니다. 이것은 이 예에 대한 우리의 의도에서 중요한 부분입니다. 마지막으로 PC 명령에서 세 번째 매개변수는 값의 크기를 바이트 단위로 정의합니다. 이 경우에는 하나만(01).

    구성의 스크립트 부분은 다음과 같습니다.

    <사전><코드>@PW_ON SW,0A,09 @PIO1H SHW,0072,01 @PIO1L SHW,0072,00

    이 스크립트에는 '@' 접두사가 붙은 세 가지 메서드가 있습니다. 각 메서드는 특정 시스템 이벤트에서 실행됩니다.

    <울>
  • PW_ON: 전원을 켤 때 실행됩니다. 이 방법은 관심 핀(P1_2)을 '트리거된' 디지털 입력 신호로 구성합니다.
  • PIO1H: 트리거 신호가 높음으로 전환될 때마다 실행됩니다. 이 메서드는 데이터베이스에 '1'을 씁니다.
  • PIO1L: 트리거 신호가 로우로 전환될 때마다 실행됩니다. 이 메소드는 데이터베이스에 '0'을 씁니다.
  • 디지털 입력 애플리케이션

    Python 스크립트는 switch.py이며 여기에서 찾을 수 있습니다. 스크립트를 편집하고 샘플 MAC 주소를 장치의 MAC 주소로 바꿉니다. 그런 다음 예제를 실행하기 위해 주변 장치에 전원을 공급한 다음 적절한 Bluetooth 기능이 있는 시스템에서 스크립트를 실행합니다. Linux에서 이 설정에 대한 도움말은 부록을 참조하십시오. 스크립트는 주변 장치에 연결하는 동안 진행 상황을 나타내는 메시지를 발행합니다. 주변 장치를 연결한 후 스위치를 몇 번 눌렀다 놓습니다. 스위치의 모든 열기/닫기 이벤트는 실행 중인 스크립트의 메시지와 함께 기록됩니다.

    스크립트는 짧고 모든 기능 블록 및 GATT API 호출에 대한 설명을 포함합니다.

    이 예에서 고유하게 사용하는 BLE 기능은 알림입니다.

    <울>
  • 우리는 주변기기에서 신호 변경이 발생했을 때 이를 처리하기 위해 콜백 메서드를 사용합니다. 신호 상태를 배우기 위해 주변 장치를 폴링할 필요가 없습니다.
  • 시스템 특성에 작성하여 이러한 알림을 원한다고 주변 장치에 알려야 합니다.
  • 프로젝트 2:RN487x 디지털 제어

    우리의 디자인 패턴에는 제공해야 할 세 가지 구성 요소가 있습니다.

    <울>
  • 하드웨어: 디지털 출력을 표현하는 작업별 하드웨어
  • 구성: RN487x 모듈 명령은 데이터베이스에 변수를 할당하고 변수를 신호에 매핑합니다.
  • 응용 프로그램: 데이터베이스 값을 쓰기 위한 워크스테이션의 스크립트
  • 다음은 구성 요소 분석입니다.

    디지털 제어 하드웨어

    '디지털 출력'의 역할은 단순히 LED에 의해 제공됩니다. D1.

    RN487x 모듈 기준 회로는 오픈 컬렉터 GPIO를 제안하므로 싱킹 전류를 통해 그에 따라 LED를 밝힙니다.

    우리는 하나의 신호만 관리하고 PWM을 사용하지 않기 때문에 RN4871을 선택했습니다. 회로는 한 쌍의 AAA 배터리 또는 코인 셀로 전원을 공급할 수 있습니다.

    나머지 회로 요소는 다음과 같습니다.

    <울>
  • C1: 전력 안정화를 위한 바이패스 커패시터
  • R1,C2: 전원을 켤 때 프로세서 재설정 지연
  • J1: 구성을 위한 직렬 포트
  • 디지털 제어 구성

    이 예에 대한 구성을 생성하기 전에 모듈이 알려진 상태인지 확인하십시오. 이것은 공통 초기화에 대한 부록 섹션에 설명되어 있습니다.

    이 단계를 건너뛰지 마세요!

    센서 상태를 나타내기 위해 데이터베이스에서 하나의 특성만 필요합니다. 그래서 우리는 하나의 서비스와 그 서비스에서 하나의 특성을 만듭니다.

    해당하는 두 명령은 다음과 같습니다.

    PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,08,01 

    첫 번째 명령인 PS는 서비스를 만듭니다. 두 번째 명령인 PC는 특성을 생성합니다. 두 명령 모두에서 첫 번째 매개변수는 주변 장치가 다른 Bluetooth 주변 장치에 존재하고 여전히 고유하게 액세스할 수 있도록 하는 식별자입니다. 이 매개변수는 UUID 표준을 준수해야 합니다. 표시된 예제 값을 사용할 수 있습니다. 또한 표준 UUID를 원하는 만큼 쉽게 생성할 수 있습니다.

    PC 명령에서 두 번째 매개변수는 값의 변경이 주변 장치에 도달해야 하는 방법을 Bluetooth 계층에 알려줍니다. 이 경우 매개변수(08)는 값이 변경될 때 주변기기가 클라이언트에 확인을 보내야 함을 나타냅니다. 마지막으로 PC 명령에서 세 번째 매개변수는 값의 크기를 바이트 단위로 정의합니다. 이 경우에는 하나만(01).

    구성의 스크립트 부분은 다음과 같습니다.

    <사전><코드>@CONN |O,08,72

    이 스크립트에는 '@CONN' 메서드가 하나만 있습니다. 클라이언트가 주변 장치에 연결할 때마다 실행됩니다.

    단일 스크립트 줄은 '연결 처리' 명령으로 매우 강력한 결과를 제공합니다. 데이터베이스 변수를 디지털 핀 출력 명령과 연결합니다. '08' 매개변수는 LED가 연결된 핀을 지정하는 비트마스크입니다. '72' 매개변수는 데이터베이스에서 생성한 특성에 대한 고유하고 영구적인 핸들입니다. 따라서 클라이언트가 연결된 후 클라이언트가 데이터베이스 변수에 새 값을 쓸 때마다 LED가 그에 따라 켜지거나 꺼집니다.

    디지털 제어 애플리케이션

    Python 스크립트는 light.py이며 여기에서 찾을 수 있습니다. 스크립트를 편집하고 샘플 MAC 주소를 장치의 MAC 주소로 바꿉니다. 그런 다음 예제를 실행하기 위해 주변 장치에 전원을 공급한 다음 적절한 Bluetooth 기능이 있는 시스템에서 스크립트를 실행합니다. Linux에서 이 설정에 대한 도움말은 부록을 참조하십시오. 스크립트는 주변 장치에 연결하는 동안 진행 상황을 나타내는 메시지를 발행합니다. 주변 장치가 연결된 후 스크립트는 매초 주변 장치에 새 명령을 보냅니다. 이 명령은 LED를 켜고 끕니다.

    스크립트는 짧고 모든 기능 블록 및 GATT API 호출에 대한 주석을 포함합니다. 이 예에 고유한 사용하는 BLE 기능은 핸들 연결입니다.

    함께 제공되는 프로젝트 비디오에서 이 전체 예를 실제로 볼 수 있습니다.

    다음 단계

    이것으로 RN487x 모듈에 대한 3부작 시리즈의 2부를 마칩니다.

    3부에서는 동일한 디자인 패턴을 따라 아날로그 센서와 아날로그 컨트롤을 생성합니다. 또한 모든 예제 프로젝트에 적용되는 추가 연구를 위한 몇 가지 주제도 포함됩니다.


    사물 인터넷 기술

    1. 자유 또는 무료 맥주에서와 같이 무료입니까? ... 방법:무료로 사용, 구축 및 연구하십시오!
    2. C# 기본 입력 및 출력
    3. 요약:Bluetooth LE 및 XLE가 자산 추적 및 모니터링의 미래인 방법
    4. Bluetooth + 초음파 =RTLS 정확도 향상 및 비용 절감
    5. 예방 유지보수 일정을 수립하고 최적화하는 방법
    6. Microchip의 RN487x Bluetooth 모듈을 사용한 센서 및 컨트롤
    7. 고객이 원하고 비용을 지불할 의사가 있는 솔루션을 구축하는 방법
    8. 탱크 모니터링 IoT 기술을 사용하여 더 스마트한 작업을 구축하는 방법
    9. 빅 데이터를 이해하는 방법:RTU 및 프로세스 제어 애플리케이션
    10. 린 디지털이란 무엇이며 어떻게 통합합니까?