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

Arduino NB 1500을 Azure IoT Hub에 안전하게 연결

구성품 및 소모품

Arduino MKR NB 1500
× 1
마이크로 USB-USB 케이블(일반)
× 1
3.7V Lipo 배터리
× 1
마이크로 SIM 카드
× 1

앱 및 온라인 서비스

Arduino IDE
Microsoft Azure

이 프로젝트 정보

참고:이 튜토리얼은 오래되었을 수 있습니다. 여기 최신 버전의 경우

소개

Azure IoT Hub를 사용하면 "사물 인터넷(IoT) 응용 프로그램을 개발하기 위해 수십억 개의 장치를 안전하게 연결, 모니터링 및 관리"할 수 있습니다.

장치는 HTTPS, AMPQ 및 MQTT 프로토콜을 사용하여 Azure IoT Hub에 연결할 수 있습니다. 또한 Azure는 이러한 프로토콜을 추상화하기 위해 많은 프로그래밍 언어용 SDK를 제공합니다. 또한 MQTT 클라이언트를 통해 IoT Hub에 연결할 수 있습니다. 이 페이지에는 IoT Hub의 MQTT 지원에 대한 자세한 정보가 있습니다.

이 자습서에서는 MQTT 클라이언트를 사용하여 Arduino MKR NB 1500 보드를 Azure IoT Hub에 안전하게 연결하는 방법을 안내합니다. MQTT(Message Queuing Telemetry Transport)는 메시징 구독 및 게시 전송을 제공하는 M2M(기계 간) 연결 프로토콜입니다.

장치는 Azure IoT Hub 인증에 SAS 토큰 또는 X.509 인증서를 사용할 수 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다. 이 자습서에서는 X.509 인증서를 사용하여 보드를 인증합니다.

MKR NB 1500을 포함하여 온보드 연결이 가능한 모든 Arduino MKR 보드에는 Microchip ATECC508A 또는 ATECC608A 암호화 요소가 장착되어 있습니다. 이 암호화 요소는 256비트 ECC(Elliptic Curve Cryptography) 키를 안전하게 생성하고 저장하는 데 사용할 수 있습니다.

소프트웨어 및 하드웨어 설정

컴퓨터에 Arduino IDE가 설치되어 있지 않다면 다운로드하여 설치하십시오.

설치가 완료되면 최신 "Arduino SAMD 보드" 패키지가 설치되어 있는지 확인하십시오. Arduino IDE를 열고 도구 -> 보드:"..." -> 보드 관리자...를 열어 확인할 수 있습니다. 메뉴 항목 및 "Arduno SAMD"를 검색합니다. 작성 당시 1.6.20이 최신 버전이었습니다.

다음으로 Arduino IDE의 라이브러리 관리자를 사용하여 사용할 Arduino 라이브러리를 설치해야 합니다. 스케치 -> 라이브러리 포함 -> 라이브러리 관리...를 엽니다. 메뉴에서 다음 라이브러리를 각각 검색하여 개별적으로 설치합니다.

<울>
  • MKRNB
  • <울>
  • ArduinoBearSSL
  • <울>
  • 아두이노ECCX08
  • <울>
  • ArduinoMqttClient
  • <울>
  • Arduino 클라우드 제공업체 예시
  • 이제 MKR NB 1500 보드 하단의 슬롯에 마이크로 SIM 카드를 삽입하고 3.7V Lipo 배터리를 JST 커넥터에 연결합니다. 그런 다음 마이크로 USB 케이블로 MKR NB 1500을 컴퓨터에 연결하고 도구 -> 포트 "..."를 사용하여 Arduino IDE에서 직렬 포트를 선택합니다. 메뉴를 선택하고 도구 -> 보드 "..."에서 Arduino MKR NB 1500도 선택합니다. 메뉴.

    Azure IoT Hub에 보드 구성 및 추가

    위에서 언급했듯이 Azure IoT Hub는 MQTT 프로토콜을 사용하여 연결하고 인증에 X.509 인증서를 사용하는 장치를 허용합니다. 스케치를 사용하여 보드에 자체 서명된 X.509 인증서를 생성한 다음 이 인증서의 SHA1을 Azure IoT Hub 포털에 추가합니다.

    자체 서명된 인증서는 ArduinoECCX08 라이브러리의 예제 스케치를 사용하여 생성할 수 있습니다. 파일 -> 예제 -> ArduinoECCX08 -> 도구 -> ECCX08SelfSignedCert를 사용하여 Arduino IDE에서 스케치를 엽니다. . "업로드" 버튼을 클릭하여 스케치를 빌드하고 보드에 업로드한 다음 직렬 모니터를 엽니다. 줄 끝 구성이 "Both NL &CR"로 설정되어 있는지 확인하십시오.

    이 스케치는 ATECC508A에서 ECC608A 암호화 요소가 구성 및 잠겨 있지 않은 경우 영구적으로 구성하라는 메시지를 표시합니다. 참고:이 잠금 프로세스는 영구적이고 되돌릴 수 없지만 암호화 요소를 사용하는 데 필요합니다. 스케치 세트가 허용하는 구성은 모든 클라우드 공급자(또는 서버)와 함께 5개의 개인 키 슬롯을 사용할 수 있으며 개인 키는 언제든지 다시 생성할 수 있습니다. 모든 5 비공개 키 슬롯(0 - 4) . 보드가 공장에서 배송될 때 암호화 요소는 구성되지 않고 잠금 해제된 상태입니다.

    그런 다음 인증서 발급 연도, 월, 일 및 시간과 만료 기간(년)을 포함하여 자체 서명된 인증서에 포함할 정보를 묻는 메시지가 표시됩니다. 이 자습서에서는 슬롯 0을 사용하여 자체 서명된 인증서에 서명하는 데 사용되는 개인 키를 생성하고 저장합니다(슬롯 1~4는 필요한 경우 추가 개인 키를 생성 및 저장하는 데 사용할 수 있음). 그런 다음 슬롯 8은 다음 작업에 사용됩니다. 서명과 함께 인증서의 발행 및 만료 날짜를 저장합니다. 참고: 개인 키는 암호화 요소 내부에서 생성되기 때문에 기기를 떠나지 않고 안전하게 저장되어 읽을 수 없습니다.

    생성된 SHA1 값을 복사합니다(이 스크린샷에서 "99d6d96fa55bdf08b4040a142a8d0d934bc9d12b "). 이후 단계에서 Azure IoT Hub의 장치에 대한 자체 서명된 인증서의 지문으로 사용할 것입니다.

    보드를 식별하기 위한 자체 서명된 인증서와 SHA1 지문이 있으므로 이제 Azure IoT Hub 포털에 로그인하여 새 장치를 만들어야 합니다.

    1) 웹 브라우저를 열고 portal.azure.com으로 이동합니다.

    2) Azure 계정이 아직 없는 경우 "Create one!"을 클릭합니다. 페이지의 링크를 클릭하여 계정을 만드십시오. 그렇지 않으면 이메일 주소를 입력하고 "다음"을 클릭하고 로그인 절차를 따르십시오.

    3) 왼쪽 탐색 패널에서 "리소스 만들기"를 클릭합니다.

    4) 그런 다음 "사물 인터넷" 및 "IoT Hub"를 클릭합니다.

    5) 구독, 리소스 그룹, 지역 및 IoT Hub 이름을 선택하라는 메시지가 표시됩니다. 아래 스크린샷에서 "무료 평가판", "MKR", "East US" 및 "ArduinoProjectHubTutorial"이 입력으로 사용되었습니다. 계속하려면 "검토 + 만들기"를 클릭하세요.

    6) "만들기"를 클릭하면 확인 화면이 나타납니다.

    7) IoT Hub가 생성 및 배포될 때까지 몇 분 정도 기다려야 합니다.

    8) 배포가 완료되면 "리소스로 이동" 버튼이 나타나면 클릭합니다.

    9) 이제 새 IoT 장치를 만들 수 있습니다. "탐색" 제목 아래에 있는 "IoT 장치"를 클릭합니다.

    10) "추가" 버튼을 클릭하여 새 장치를 추가합니다.

    11) "MyMKRNB1500" 아래에 장치 이름을 입력한 다음 "X.509 자체 서명" 탭을 클릭합니다. 기본 및 보조 지문 모두에 대해 Arduino IDE의 직렬 모니터에서 SHA1을 붙여넣습니다. 그런 다음 "저장" 버튼을 클릭하여 장치를 만듭니다.

    12) 이제 IoT 장치 페이지에 새 항목이 표시됩니다.

    Azure IoT Hub에 보드 연결

    1) 파일 -> 예제 ->를 사용하여 Arduino IDE에서 Azure IoT Hub NB 스케치를 엽니다. Arduino 클라우드 공급자 예제 -> AzureIoTHub-> Azure_IoT_Hub_NB.

    2) arduino_secrets.h 탭에서 SIM 카드의 핀(필요한 경우)을 입력합니다.

    // NB 설정#define SECRET_PINNUMBER "" 

    3) Azure IoT Hub 포털에서 생성된 엔드포인트로 브로커 값을 업데이트합니다.

    // Azure IoT Hub 브로커의 호스트 이름 입력#define SECRET_BROKER ".azure-devices.net" 

    4) Azure IoT Hub 포털에서 만든 장치 이름으로 장치 ID 값을 업데이트합니다.

    // 기기 ID 입력#define SECRET_DEVICE_ID "" 

    5) 스케치를 보드에 업로드하고 직렬 모니터를 엽니다. 보드는 셀룰러 네트워크에 연결을 시도하고 성공하면 MQTT를 사용하여 Azure IoT Hub에 연결을 시도합니다.

    Azure IoT Core에서 보드와 상호 작용

    이제 보드가 Azure IoT Hub에 성공적으로 연결되었으므로 Azure IoT Hub 포털을 사용하여 보드와 상호 작용할 수 있습니다. 스케치는 devices/{deviceId}/messages/events/에 메시지를 보냅니다. 5초마다 주제를 정하고 devices/{deviceId}/messages/devicebound/#에서 메시지를 수신합니다. 주제.

    Azure IoT Hub 포털에서 보드에 대한 IoT 장치 테이블의 장치 ID 행을 클릭합니다. 그런 다음 도구 모음에서 "장치에 메시지 보내기" 버튼을 클릭하십시오.

    이제 "안녕하세요 :) 아래 스크린샷에서 기기로 보낼 메시지 본문을 입력할 수 있습니다. "이(가) 입력되었습니다. 메시지를 보내려면 툴바에서 "메시지 보내기" 버튼을 클릭하세요.

    보드가 메시지를 수신하면 Arduino IDE의 직렬 모니터에 메시지가 표시됩니다.

    게시판에서 보내는 메시지를 보려면:

    1) shell.azure.com에 로그인합니다(메시지가 표시되면 "Bash" 선택).

    2) IoT Hub 확장 프로그램 설치:

    az 확장 추가 --name azure-cli-iot-ext 

    3) 다음 명령을 실행하여 <허브 이름>을 바꿉니다. 허브 이름 포함(종속성 업데이트를 묻는 메시지가 표시되면 y 입력):

    az iot 허브 모니터 이벤트 --hub-name <허브 이름>  

    4) 셸에 인쇄된 메시지가 표시됩니다.

    결론

    이 자습서에서는 Azure IoT Hub와 함께 Arduino MKR NB 1500 보드를 안전하게 사용하는 방법을 다루었습니다. 자체 서명된 X.509 인증서는 인증서와 연결된 개인 키를 저장하는 ATECC508A 또는 ATECC608A와 함께 MQTT 프로토콜을 사용하여 Azure IoT Hub에 인증하는 데 사용되었습니다. MQTT 메시지는 보드와 주고받았습니다.

    이것은 시작에 불과하며 Azure에서 제공하는 다른 많은 서비스와 함께 Azure IoT Hub를 사용할 수 있습니다!

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

    코드

    깃허브
    https://github.com/arduino/ArduinoCloudProviderExamples

    제조공정

    1. IoT가 직장을 연결하는 방법
    2. Arduino 보드는 산업용 IoT를 대상으로 합니다.
    3. 개발 키트는 Azure RTOS를 지원합니다.
    4. DHT11 센서를 연결하는 라즈베리 PI 기반 IoT 프로젝트
    5. 클라우드의 IoT:Azure와 AWS
    6. GPS 데이터 로거, 공간 분석 및 Azure IoT Hub.
    7. IoT를 사용한 심박수 모니터
    8. IoT를 사용하여 로봇 팔 원격 제어
    9. 사물 인터넷(IoT) 기반 태양열 추적기
    10. Azure IoT 수영장