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

MKR1000 온습도 센서

구성품 및 소모품

Arduino MKR1000
× 1
DHT22 온도 센서
× 1

앱 및 온라인 서비스

Microsoft Azure
Arduino IDE
Microsoft Visual Studio 2015

이 프로젝트 정보

Paul DeCarlo는 Particle Photon에서 Microsoft Azure로 날씨 데이터를 보내는 방법에 대한 훌륭한 기사를 가지고 있습니다. 나는 이것을 새로운 Arduino MKR1000으로 복제하고 싶었습니다.

Photon은 웹훅을 사용하여 파티클 클라우드에서 Azure로 데이터를 보냅니다. MKR1000은 HTTPS를 지원하므로 데이터를 Azure로 직접 보낼 수 있습니다. 이 가이드는 MKR1000을 Azure에 연결하고 Microsoft Connect the Dots 프로젝트의 많은 서버 측 코드를 재사용합니다.

하드웨어

DHT22 센서는 온도와 습도를 측정하는 데 사용됩니다. DHT11 센서를 지원하도록 코드를 수정할 수도 있습니다. 브레드보드에 DHT 센서를 배선합니다. MKR1000에서 첫 번째 핀으로 3.3볼트를 보냅니다. 3.3V에서 핀 2에 10,000Ω 풀업 저항을 배치합니다. 핀 3을 접지에 연결합니다. DHT22의 핀 2에서 MKR1000의 핀 6까지 와이어를 연결합니다.

<그림>

DHT22에 대한 자세한 내용은 Adafruit의 DHT 자습서를 참조하십시오.

아두이노 IDE

아두이노 IDE를 엽니다. 보드 관리자를 사용하여 MKR1000 보드를 설치합니다. 라이브러리 관리자를 사용하여 WiFi101 라이브러리를 설치합니다.

HTTPS

Arduino MKR1000은 HTTPS를 지원하지만 방문할 사이트에 대한 인증서를 수동으로 설치해야 합니다. 이것은 장치의 메모리가 제한되어 있기 때문에 필요합니다. 이것은 2단계 프로세스입니다. 먼저 보드에 스케치를 로드한 다음 컴퓨터에서 프로그램을 실행하여 인증서를 업로드합니다.

Arduino IDE를 사용하여 펌웨어 업데이터 스케치를 보드에 로드합니다.

WiFi101 펌웨어 업데이터를 다운로드합니다. 아카이브 압축을 풀고 winc1500-uploader-gui.exe를 실행합니다.

Azure Event Hubs용 HTTPS 인증서는 servicebus.windows.net에 발급되므로 모든 서비스 버스 URL이 작동해야 합니다. 텍스트 입력란에 ctd-ns.servicebus.windows.net을 입력합니다. COM 포트를 선택하고 인증서를 업로드하십시오.

<그림>

아두이노 스케치

https://github.com/don/MKR1000-Azure에서 Arudino 스케치를 복제하거나 다운로드하세요. ssid 탭을 편집하고 ssid[]를 변경합니다. 및 비밀번호[] 네트워크 설정과 일치하도록 합니다. 스케치를 MKR1000 보드에 업로드합니다.

오류가 발생하면 Arduino 라이브러리 관리자(스케치 -> 라이브러리 포함 -> 라이브러리 관리...)를 사용하여 "DHT 센서 라이브러리", ArduinoJson 또는 RTCZero 라이브러리를 설치해야 할 수 있습니다.

Arduino 직렬 모니터(도구 -> 직렬 모니터)를 열고 데이터가 Azure로 전송되기 시작하는지 확인합니다.

<그림>

스케치는 점 연결 프로젝트의 이벤트 허브를 재사용합니다. 즉, 기존 Azure 웹 앱을 사용하여 데이터를 볼 수 있습니다. 브라우저에서 http://connectthedotsdx.azurewebsites.net/을 엽니다. MKR1000의 데이터가 표시되어야 합니다. 이것은 "공개" 이벤트 허브이므로 센서 데이터가 다른 센서와 혼합됩니다. 여러 사람이 이 MKR1000 코드를 실행하는 경우 표시 이름을 변경할 수 있습니다. 또는 가이드 createJSON에서 기능.

<그림>

나만의 Event Hub 만들기

기존 이벤트 허브에 대해 실행하는 것은 괜찮지만 데이터에 대한 고유한 이벤트 허브를 만들 수도 있습니다. 이를 위해서는 Visual Studio와 Azure 구독이 필요합니다. 무료 Visual Studio 2015 커뮤니티 에디션은 잘 작동합니다. 무료 Azure 평가판 구독에 등록할 수도 있습니다.

Connect Dots 프로젝트의 코드를 사용할 것입니다. git으로 프로젝트를 복제하거나 Github 페이지에서 ZIP 다운로드 버튼을 사용하세요.

git clone https://github.com/Azure/connectthedots.git

Azure 리소스 생성에 대한 Microsoft의 지침을 따를 수 있습니다. 이 지침은 시간이 걸리지만 조각이 어떻게 조합되는지에 대한 깊은 이해를 제공합니다. 복제된 리포지토리의 AzurePrep 프로젝트를 사용하여 이러한 리소스를 자동으로 생성하는 것이 좋습니다.

Visual Studio를 사용하고 connectthedots\Azure\AzurePrep에서 AzurePrep 솔루션을 엽니다. 릴리스 모드에서 AzurePrep 프로젝트 실행 .

애플리케이션은 Azure에 로그인하고 리소스에 대한 권한을 부여하라는 메시지를 표시하는 일부 창을 엽니다. 그런 다음 터미널에서 여러 질문에 답하여 리소스를 생성하세요.

리소스의 이름을 선택해야 합니다. 점 연결 문서에서는 이름 ctd(점 연결) + 이니셜을 권장합니다. 예를 들어 "ctddc"를 선택했습니다.

Visual Studio로 돌아가 AzurePrep에서 CreateWebConfig 대상을 실행하여 웹 사이트에 대한 구성 파일을 만듭니다. 로그인하고 프롬프트를 따릅니다. web.config 파일이 데스크탑에 작성됩니다.

바탕 화면에서 web.config를 connectthedots 웹 사이트 프로젝트인 connectthedots\Azure\WebSite\ConnectTheDotsWebSite로 복사합니다.

Visual Studio의 connectthedots\Azure\WebSite에서 ConnectTheDotsWebsite 솔루션을 엽니다.

새 web.config 파일을 프로젝트에 추가해야 합니다. 솔루션 탐색기에서 솔루션을 마우스 오른쪽 버튼으로 클릭합니다. 메뉴에서 "추가 -> 기존 항목..."을 선택합니다. ConnectTheDotsWebSite로 이동하여 web.config를 추가합니다.

<그림>

Microsoft Edge에서 프로젝트를 실행합니다. MKR1000에서 스케치를 업데이트할 때까지 데이터가 표시되지 않습니다.

Arduino 스케치에 Azure 리소스에 액세스하려면 SAS 키가 필요합니다. Sandrino Di Mattia의 Event Hubs 서명 생성기 도구를 사용하여 올바른 형식으로 키를 생성하십시오. https://github.com/sandrinodimattia/RedDog/releases에서 다운로드하십시오. 도구의 압축을 풀고 RedDog.ServiceBus.EventHubs.SignatureGenerator를 실행합니다.

이전에 생성한 네임스페이스를 사용하여 UI를 채웁니다. Azure 리소스를 만들 때 ctddc를 사용했기 때문에 내 네임스페이스는 ctddc-ns입니다. 허브 이름은 ehdevices입니다. 게시자 및 보낸 사람 키 이름은 모두 D1이어야 합니다. 토큰 TTL을 1년(525,600분)으로 설정했습니다. 서명은 장치의 수명 동안 유효해야 합니다.

<그림>

보낸 사람 키를 얻으려면 Azure Portal에 로그인해야 합니다. 왼쪽 메뉴에서 찾아보기를 선택하고 필터를 사용하여 이벤트 허브를 찾습니다.

<그림>

이벤트 허브는 이전 Azure Portal에서 새 창을 엽니다.

<울>
  • 만든 네임스페이스를 클릭합니다.
  • Event Hub 선택
  • ehdevices 선택
  • 구성 선택
  • 하단으로 스크롤하여 D1의 기본 키 복사
  • <그림> <그림>

    서명 생성기 도구로 다시 전환하고 키를 보낸 사람 키 필드에 붙여넣습니다. 생성 버튼을 클릭하여 서명을 생성합니다.

    <그림>

    생성된 서명을 복사합니다.

    Arduino IDE에서 MKR1000-Azure 스케치를 다시 엽니다. hostname[]을(를) 바꿔야 합니다. 및 authSAS[] 새로운 이벤트 허브 설정으로 변수. 생성된 서명을 char authSAS[]에 붙여넣습니다. 들. 호스트 이름과 일치하도록 호스트 이름 필드를 편집합니다. 예를 들어 문자 호스트 이름[] ="ctddc-ns.servicebus.windows.net";

    스케치를 저장하고 MKR1000에 업로드하십시오. 선택적으로 직렬 모니터를 열고 데이터가 Azure로 전송되기 시작하는지 확인합니다.

    <그림>

    ALT+TAB을 눌러 Microsoft Edge에서 실행 중인 도트 웹사이트를 연결하면 장치에서 데이터가 표시되기 시작해야 합니다.

    <그림>

    IoT 허브

    Azure IoT Hub는 Event Hub보다 최신이며 프로젝트에 더 적합할 수 있습니다. IoT Hub는 기기 간 메시징(예:이 프로젝트) 및 클라우드 간 메시징을 지원합니다.

    Azure Portal을 사용하여 새 IoT Hub를 만듭니다.

    <그림>

    Device Explorer는 IoT Hub에 액세스하기 위한 서명을 생성하는 데 사용됩니다. https://github.com/Azure/azure-iot-sdks/releases에서 SetupDeviceExplorer.msi를 다운로드합니다.

    Azure Portal로 돌아가서 새 IoT 허브를 엽니다. 키 아이콘을 클릭하고 iothubowner 행을 선택하고 기본 키에 대한 연결 문자열을 복사합니다.

    <그림> <그림> <그림>

    Device Explorer를 열고 연결 문자열을 붙여넣고 업데이트를 클릭합니다.

    <그림>

    관리 탭을 클릭합니다. 작업에서 만들기 버튼을 클릭합니다. 장치 ID로 D1을 입력하고 만들기를 클릭합니다.

    <그림>

    D1 행을 강조 표시하고 SAS 토큰 버튼을 클릭하고 새 토큰을 생성합니다.

    <그림>

    Arduino IDE에서 MKR1000-Azure 스케치를 엽니다.

    호스트 이름[] 바꾸기 IoT Hub 이름 + ".azure-devices.net"으로. authSAS[] 업데이트 Device Explorer로 생성된 값으로. "SharedAcessSignature=" 뒤의 SAS 토큰 부분만 복사해야 합니다. IoT Hub를 가리키도록 URI를 조정합니다.

    char hostname[] ="hacksterdemo.azure-devices.net";char authSAS[] ="SharedAccessSignature sr=hacksterdemo.azure-devices.net%2fdevices%2fD1&sig=jnyTV8j2%2bY9BJ9fyEdb7zu3eAVph 1490944761";문자열 deviceName ="D1";문자열 URI ="/devices/" + deviceName + "/messages/events?api-version=2016-02-03"; 


    유효한 응답을 확인하는 sendEvent 함수의 코드를 편집하십시오. 이벤트 허브는 성공을 나타내기 위해 HTTP 201을 보냅니다. IoT Hub가 HTTP 204를 보냅니다.

    변경

    if (response.startsWith("HTTP/1.1 201")) {

    대상

    if (response.startsWith("HTTP/1.1 204")) {

    Arduino IDE를 사용하여 스케치를 Arduino MKR1000에 업로드하십시오.

    장치 탐색기에서 데이터 탭을 전환합니다. 모니터 버튼을 클릭하면 Event Hub로 전송되는 데이터를 볼 수 있습니다.

    <그림>

    이 프로젝트는 장치에서 클라우드로 데이터를 전송하기 때문에 HTTP POST를 사용하여 데이터를 전송하고 있습니다. Azure IoT Hub를 사용하여 데이터를 보내고 받기 위한 라이브러리도 있습니다. 불행히도 IMO는 아직 Arduino와 유사하거나 사용자 친화적이지 않습니다. 장치가 Azure에서 데이터를 수신하도록 하려면 라이브러리가 더 유용할 수 있습니다. 또는 IoT Hub에서 MKR1000으로 데이터를 보내는 방법에 대한 Mohan Palanisamy의 블로그 게시물을 확인하세요.

    이 게시물은 MRK1000에서 Azure 이벤트 허브 및 IoT 허브로 센서 데이터를 보내는 방법을 보여주었습니다. 기존 코드 보기를 사용하고 데이터를 그래프로 표시했습니다. Azure를 사용하여 데이터를 저장, 조작 및 보기 위한 코드를 작성하는 더 많은 방법은 점 연결 프로젝트를 확인하세요.

    이제 완료되었으므로 사용하지 않는 리소스를 종료하거나 삭제하여 청구되는 금액을 제한할 수 있습니다. AzurePrep 솔루션에는 Azure 서비스를 제거하는 데 도움이 되는 ClearResources 프로젝트가 있습니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    장치 탐색기
    IoT Hub용 도구. SetupDeviceExplorer.msihttps://github.com/Azure/azure-iot-sdks/releases 다운로드
    점 연결
    Azure 샘플 코드https://github.com/Azure/connectthedots
    MKR1000-Arduino
    Arduino 소스 코드https://github.com/don/MKR1000-Azure
    WiFi101 펌웨어 업데이터
    MKR1000https://github.com/arduino-libraries/WiFi101-FirmwareUpdater/releases/latest에 TLS 인증서를 추가하는 도구
    Event Hubs 서명 생성기
    MKR1000용 Azure 자격 증명을 생성하는 도구https://github.com/sandrinodimattia/RedDog/releases

    회로도

    MKR1000 프리징 부분이 없어서 사진 올립니다. 배선 세부 사항은 기사 텍스트를 참조하십시오.

    제조공정

    1. Arduino 센서 – 유형 및 애플리케이션
    2. 습도 센서 작동 및 응용
    3. DHT11 센서 및 작동
    4. Raspberry Pi 및 습도 센서를 사용한 수경재배
    5. 습도 센서를 확인하고 보정하는 방법
    6. DHT11 센서(LED 및 피에조 스피커 포함)
    7. 온도 및 습도 데이터 로거
    8. Arduino Temp. 3.2 디스플레이가 있는 모니터 및 실시간 시계
    9. Arduino 클라우드 센서 타워
    10. Nextion 디스플레이의 BME280 온도, 습도 및 압력