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

센서 텔레메트리 2.0.1

Sensor Telemetry 2.0.1 Microsoft Azure IoT Hub로 온도 데이터를 구동하고 Windows Universal 애플리케이션에서 원격으로 데이터를 모니터링합니다. 디지털 방식으로 리마스터되었습니다!

스토리

업데이트됨:Sensor Telemetry 프로젝트가 디지털 방식으로 리마스터되었습니다. 2017년 5월 17일자로 업데이트되었으며 이름이 Sensor Telemetry 2.0.1로 변경되었습니다.

소개

개요

이 프로젝트에서는 온도 센서(MCP9808 ) 원격 측정 판독값을 Microsoft Azure IoT Hub로 보냅니다. 여기서 Stream Analytics 작업에서 메시지를 처리하고 Azure SQL에 씁니다. 데이터베이스 테이블. 모바일 앱을 사용합니다. 센서 판독 기록을 봅니다.

애플리케이션

프로젝트에는 두 개의 범용 Windows 애플리케이션이 포함되어 있습니다. (유니버설 Windows 플랫폼, UWP에서) 코드의 약 99%를 공유합니다. 하나는 Raspberry Pi(또는 ARM)를 대상으로 하고 다른 하나는 x86 또는 x64 플랫폼을 대상으로 합니다.

IoT 버전의 애플리케이션은 Raspberry Pi에서 실행되고 MCP9808에서 온도를 읽습니다. 애플리케이션은 원격 분석 이벤트를 Azure IoT Hub 및 SignalR에 보냅니다. 바퀴통. 이 버전은 Azure IoT Hub의 명령도 수신합니다.

컴퓨터에서 시작된 클라이언트 버전은 SignalR 허브에서 센서 업데이트를 수신 대기하고 화면에 표시합니다. 이 버전은 또한 Azure IoT Hub를 통해 IoT 버전에 명령을 보냅니다.

기술

이 프로젝트의 애플리케이션은 MVVM을 기반으로 합니다. (Model-View-ViewModel) 패턴이며 프리즘을 사용하여 구축되었습니다. 라이브러리 및 사용 Prism.Unity IoC용 (Inversion of Control) 컨테이너. 이러한 라이브러리 외에도 애플리케이션은 Event Aggregator를 사용합니다. Prism.Event에서 찾을 수 있습니다. 최대한 순전히 이벤트 중심 아키텍처를 만드는 라이브러리입니다. 애플리케이션은 이 라이브러리를 사용하여 내부 모듈이 느슨하게 결합된 상태로 통신할 수 있도록 합니다.

애플리케이션은 또한 Azure Mobile App에서 SignalR을 사용하여 애플리케이션의 여러 인스턴스가 서로 통신할 수 있도록 합니다. 온도 판독값은 원격으로 실행되는 모든 클라이언트에 "브로드캐스트"되어 기본 보기에 표시할 온도 센서 판독값을 수신할 수 있습니다.

아키텍처

애플리케이션의 핵심은 다른 애플리케이션에서 재사용할 수 있는 별도의 프로젝트로 구축된 MCP9808 라이브러리입니다. 이 프로젝트는 모든 Windows 10 애플리케이션에서 사용할 수 있는 UWP 라이브러리로 개발되었습니다. 라이브러리가 I2C가 없는 기기에서 사용되는 경우 버스 라이브러리는 장치 개체를 반환하지 않습니다. 이 접근 방식은 센서를 "감지"하고 센서를 찾을 수 없을 때 라이브러리를 정상적으로 무시하는 데 사용할 수 있습니다.

UWP 클라이언트 애플리케이션에는 전체 애플리케이션을 구성하는 여러 블록이 있습니다. 보기는 보이는 페이지이며 각 보기에는 보기의 상태를 담당하는 보기 모델이 있습니다. 3개의 저장소가 있습니다. 애플리케이션 설정(IApplicationSettingsRepository ), 디버깅 정보(IDebugConsoleRepository ) 및 MCP9808(ITemperatureRepository 읽기 및 쓰기) ). ITemperatureRepository를 중심으로 구축된 두 가지 구체적인 클래스가 있습니다. 하나는 MCP9808 라이브러리를 래핑하고 다른 하나는 애플리케이션이 Raspberry Pi에서 실행되지 않을 때 사용되는 null 장치입니다.

클래스 Mcp9808TemperatureRepository 타이머 서비스를 사용하여 MCP9808을 모니터링하고 온도 판독값 또는 경고 상태가 변경될 때마다 내부 이벤트 수집기를 통해 온도 정보를 게시합니다. 현재 판독값이 이전 판독값과 다른 경우에만 새 이벤트가 전송됩니다.

IBackgroundService로 정의된 일련의 서비스도 있습니다. 다양한 활동을 위해 백그라운드에서 실행됩니다.

아래 다이어그램은 아키텍처와 다양한 블록과 서비스 간의 연결성을 개략적으로 보여줍니다.

원격 측정 서비스

이 서비스는 구독을 통해 온도 변경 이벤트를 모니터링하고 온도가 변경될 때마다 Azure Service Bus 이벤트 허브에 메시지를 보냅니다.

타이머 서비스

이 간단한 서비스는 500밀리초마다 이벤트를 게시하고 보기 모델에서 보기에 현재 시간을 표시하는 데 사용하는 타이머입니다. Mcp9808TemperatureRepository 에서도 사용됩니다. 1초에 한 번씩 센서를 읽습니다. 타이머 이벤트 인수에는 타이머 간격을 원하는 길이로 쉽게 나누기 위해 mod 함수와 함께 사용할 수 있는 카운터가 포함됩니다. 수학을 수행하는 이벤트 인수에 IsMyInterval(TimeSpan 간격)이라는 메서드가 있습니다. 간격을 TimeSpan 으로 제공하기만 하면 됩니다. 개체.

경고 핀 모니터링 서비스

이 서비스는 MCP9808의 경고 핀에 연결된 GPIO 핀의 상태를 모니터링합니다. GPIO의 값이 변경되면 이 서비스는 이벤트를 게시합니다.

LED 서비스

이 서비스는 LED를 켜고 끄는 역할을 합니다. 이는 MCP9808의 경고 상태도 포함하는 온도 변화 이벤트를 모니터링(가입을 통해)하여 수행됩니다. 경고 상태가 변경되면 LED가 그에 따라 업데이트됩니다.

푸시 버튼 모니터링 서비스

이 서비스는 푸시 버튼에 연결된 GPIO 핀을 모니터링하고 버튼을 놓을 때 이벤트를 게시합니다. 이 이벤트는 Mcp9808TemperatureRepository 에서 선택합니다. 장치가 수동 경고 재설정 모드(MCP9808 인터럽트 모드)에 있을 때. 버튼의 상태를 디버그 콘솔에서 볼 수 있도록 디버그 이벤트도 게시됩니다.

알림 전달 서비스

서비스는 SignalR 허브와 내부 이벤트 수집기를 모니터링하고 사전 정의된 매핑(EventRelayMap 사용)을 기반으로 둘 사이의 메시지를 전달합니다. 등급). 이것은 본질적으로 애플리케이션이 내부 이벤트 시스템만 인식하고 애플리케이션의 다른 인스턴스와 메시지를 보내고 받을 수 있도록 합니다.

디버그 콘솔 서비스

이 서비스는 이벤트 디버깅을 위해 (구독을 통해) 애플리케이션을 모니터링하고 내부 컬렉션에 추가합니다. 또한 DebugConsoleRepository를 구현합니다. , 디버그 콘솔 보기에서 보기 모델을 통해 애플리케이션에서 이러한 이벤트를 표시할 수 있습니다.

애플리케이션 초기화

애플리케이션이 시작되면 StartPage 가 시작됩니다. StartPageViewModel을 자동으로 호출하는 먼저 보기 . 이 보기 모델은 기본 보기로 시작하기 전에 모든 것을 시작하고 실행합니다.

시작하기

회로 요구 사항

회로에는 무납땜 대형 브레드보드가 필요하며 선택적으로 T자형 코블러와 리본 케이블이 필요합니다(저는 Vilros에서 판매하는 버전을 사용합니다). 브레드보드는 여러 곳에서 구할 수 있습니다(저는 지역 상점과 아마존에서 구입했습니다). 이 회로는 또한 4개의 핀이 있는 순간 촉각 푸시 버튼 스위치를 사용합니다. 많은 유형이 있습니다. 무엇이든 할 것입니다. 마지막으로 온도 센서의 경우 Adafruit의 MCP9808 고정확도 I2C 온도 센서 브레이크아웃 보드를 사용하고 있습니다.

코블러 없이 회로를 만들 수 있습니다. 프로젝트가 끝날 때 대체 브레드보드 다이어그램을 따르기만 하면 됩니다.

회로 어셈블리

이 가이드를 사용하여 페이지 하단 근처에 있는 다이어그램을 가이드로 사용하여 회로를 조립하십시오(참고:전선의 색상은 선택 사항이며 회로를 쉽게 만들 수 있도록 선택되었습니다. 구성될 때 따라야 함).

아래는 구두 수선기를 사용하여 만든 회로의 일부 사진입니다.


Microsoft Azure 요구 사항

Azure 계정이 없는 경우 계정을 만들어야 합니다. 계정을 시작할 때 $200 크레딧을 받을 수 있습니다. azure.com으로 이동합니다. 무료 계정 링크를 클릭합니다. . 이미 계정이 있는 경우 portal.azure.com에서 포털에 로그인합니다. .

참고:이 가이드는 Azure 구성에 대한 전체 가이드가 아닙니다. 이전에 포털을 사용한 적이 없다면 포털에 익숙해져야 할 수도 있습니다. 최선을 다해 이 프로젝트에 필요한 단계를 진행하겠습니다.

전체 설정 프로세스 동안 Azure Portal에 로그인한 상태로 둡니다. 여러 번 다시 참조해야 합니다.

Azure IoT Event Hub 설정



기기 만들기

Azure IoT Hub에서는 보안을 위해 각 장치를 고유하게 식별하고 허브에 등록해야 합니다. 장치는 Azure SDK 및 코드를 사용하여 등록할 수 있지만 이 프로젝트에서는 Azure SDK에서 사용할 수 있는 장치 탐색기를 사용합니다.




Azure SQL 데이터베이스 설정

원격 분석 데이터는 Azure SQL Database에 저장됩니다. 포털을 사용하여 데이터베이스를 만드십시오.




데이터베이스 테이블 만들기

사용된 테이블은 수동으로 생성됩니다. Code First 배포는 모바일 앱에서 사용할 수 있지만 생성된 테이블은 Stream Analytics와 호환되지 않습니다.




앱 서비스 계획 수립

App Service를 생성하려면 App Service 계획이 필요합니다.

앱 서비스 만들기( 모바일 앱 )

웹 사이트 및 SignalR 허브는 App Service와 함께 실행됩니다.



Azure Stream Analytics 설정

Stream Analytics 작업은 IoT Hub의 데이터 이벤트를 모니터링하고 SQL Server 데이터베이스에 씁니다. 작업은 입력(IoT Hub), 출력(SQL 테이블) 및 사용할 필드를 선택하는 쿼리로 구성됩니다.





소프트웨어 구성

페이지 하단의 저장소 링크를 사용하여 코드를 zip 파일로 다운로드하거나 저장소를 컴퓨터에 복제하고 Visual Studio에서 프로젝트를 엽니다. .

모바일 앱 구성 및 게시

웹 폴더에 있는 웹 애플리케이션을 Azure App Service에 게시해야 합니다.



IoT Hub 자격 증명 입력

애플리케이션을 실행하기 전에 IoT Hub 기기 자격 증명을 코드에 입력해야 합니다.



Enter the Mobile App URL

The Mobile App URL also needs to be entered into the code.

Read More Detail :Sensor Telemetry 2.0.1


제조공정

  1. 센서 교정이란 무엇이며 정의 및 적용
  2. 심박동 센서 – 작동 및 적용
  3. O2 센서란 무엇입니까?
  4. Raspberry pi를 사용하는 TMP006 온도 센서 Python 라이브러리,
  5. Raspberry Pi를 사용한 모션 센서
  6. 라즈베리 파이 토양 수분 센서
  7. DS18B20 센서 테스트
  8. 라즈베리 파이 온도 센서
  9. 센서 텔레메트리 2.0.1
  10. 감정 센서 / EEG