기본 콘텐츠로 건너뛰기

Raspberry Pi를 Azure IoT Hub에 연결(C)

Raspberry Pi를 Azure IoT Hub에 연결(C)

이 자습서에서는 Raspbian을 실행하는 Raspberry Pi 작업의 기초부터 학습합니다. 그런 다음 Azure IoT Hub를 사용하여 디바이스를 클라우드에 원활하게 연결하는 방법을 알아봅니다. Windows 10 IoT Core 샘플이 필요하면 Windows 개발자 센터로 이동하세요.
아직 키트가 없으세요? Raspberry Pi 온라인 시뮬레이터를 사용해 보세요. 또는 새 키트를 여기에서 구입합니다.

수행할 작업

  • IoT Hub를 만듭니다.
  • IoT Hub에 Pi용 디바이스를 등록합니다.
  • Raspberry Pi를 설치합니다.
  • Pi에서 샘플 애플리케이션을 실행하여 IoT Hub로 센서 데이터를 보냅니다.
앞에서 만든 IoT Hub에 Raspberry Pi를 연결합니다. 그런 다음 Pi에서 샘플 애플리케이션을 실행하여 BME280에서 온도 및 습도 데이터를 수집합니다. 마지막으로 센서 데이터를 IoT Hub로 보냅니다.

학습 내용

  • Azure IoT Hub를 만들고 새 디바이스 연결 문자열을 가져오는 방법.
  • Pi를 BME280 센서와 연결하는 방법.
  • Pi에서 샘플 애플리케이션을 실행하여 센서 데이터를 수집하는 방법.
  • IoT Hub로 센서 데이터를 보내는 방법.

필요한 항목

필요한 항목
  • Raspberry Pi 2 또는 Raspberry Pi 3 보드.
  • 활성화된 Azure 구독. Azure 계정이 없는 경우 몇 분 만에 Azure 평가판 계정을 만들 수 있습니다.
  • Pi에 연결할 모니터, USB 키보드 및 마우스.
  • Windows 또는 Linux를 실행하는 Mac 또는 PC.
  • 인터넷 연결
  • 16GB 이상의 microSD 카드.
  • 운영 체제 이미지를 microSD 카드에 굽기 위한 USB-SD 어댑터 또는 microSD 카드.
  • 6피트 마이크로 USB 케이블과 5볼트 2암페어 전원 공급 장치.
다음 항목은 선택 사항입니다.
  • 조립된 Adafruit BME280 온도, 압력 및 습도 센서.
  • 실험용 회로판
  • F/M 점퍼 와이어 6개.
  • 확산형 10mm LED.
 참고
코드 샘플은 시뮬레이션 된 센서 데이터를 지원 하기 때문에 이러한 항목은 선택 사항입니다.

IoT Hub 만들기

이 섹션에서는 Azure Portal을 사용하여 IoT Hub를 만드는 방법에 대해 설명합니다.
  1. Azure Portal에 로그인합니다.
  2. 리소스 만들기를 클릭한 후 Marketplace 검색 필드에 IoT Hub를 입력합니다.
  3. 검색 결과에서 IoT Hub만들기를 차례로 선택합니다.
  4. 기본 탭에서 다음과 같이 필드를 완성합니다.
    • 구독: 허브에 사용할 구독을 선택합니다.
    • 리소스 그룹: 리소스 그룹을 선택하거나 새로 만듭니다. 새 리소스 그룹을 만들려면 새로 만들기를 선택하고 사용하려는 이름을 입력합니다. 기존 리소스 그룹을 사용하려면 해당 기존 리소스 그룹을 선택합니다. 자세한 내용은 Azure Resource Manager 리소스 그룹 관리를 참조하세요.
    • 지역: 허브를 배치할 지역을 선택합니다. 가장 가까운 위치를 선택합니다.
    • IoT Hub 이름: 허브 이름을 입력합니다. 이 이름은 전역적으로 고유해야 합니다. 입력한 이름을 사용할 수 있으면 녹색 확인 표시가 나타납니다.
     중요
    IoT 허브는 DNS 엔드포인트로 공개적으로 검색될 수 있기 때문에 이름을 지정할 때 민감하거나 개인을 식별할 수 있는 정보는 입력하지 마십시오.
    Azure Portal에서 허브 만들기
  5. 완료되면 다음: 크기 및 규모를 선택하여 허브를 계속 만듭니다.
    Azure Portal을 사용하여 새 허브의 크기 및 배율 설정
    이 화면에서 다음 값을 설정할 수 있습니다.
    • 가격 책정 및 크기 조정 계층: 선택한 계층입니다. 원하는 기능 수와 하루에 솔루션을 통해 보내는 메시지 수에 따라 여러 계층에서 선택할 수 있습니다. 무료 계층은 테스트와 평가를 위해 제공됩니다. 허브에 500개 디바이스를 연결할 수 있으며 하루에 8,000개 메시지까지 허용합니다. 각 Azure 구독은 무료 계층에 하나의 IoT Hub를 만들 수 있습니다.
    • IoT Hub 단위: 하루 단위당 허용되는 메시지의 수는 허브의 가격 책정 계층에 따라 다릅니다. 예를 들어 허브가 700,000개의 메시지 수신을 지원하려면 S1 계층 단위 2개를 선택합니다. 다른 계층 옵션에 대한 자세한 내용은 적절한 IoT Hub 계층 선택을 참조하세요.
    • 고급 설정 > 디바이스-클라우드 파티션: 이 속성은 디바이스-클라우드 메시지를 메시지의 동시 판독기 수와 연결합니다. 대부분의 허브에는 4개의 파티션만 필요합니다.
  6. 이 문서에서는 기본 선택 항목을 적용한 다음, 검토 + 만들기를 선택하여 선택 항목을 검토합니다. 다음 화면과 비슷하게 표시됩니다.
    새 허브를 만들기 위한 정보 검토
  7. 만들기를 선택하여 새 허브를 만듭니다. 허브를 만드는 데 몇 분이 걸립니다.

IoT Hub에서 새 디바이스 등록

이 섹션에서는 IoT 허브의 ID 레지스트리에 디바이스 ID를 만듭니다. Id 레지스트리에 항목이 없는 경우 장치를 허브에 연결할 수 없습니다. 자세한 내용은 IoT Hub 개발자 가이드를 참조 하세요.
  1. Iot hub 탐색 메뉴에서 Iot 장치를 열고 새로 만들기 를 선택 하 여 iot hub에 장치를 추가 합니다.
    포털에서 디바이스 ID 만들기
  2. 장치 만들기에서 mydeviceid와 같은 새 장치의 이름을 입력 하 고 저장을 선택 합니다. 이 작업은 IoT hub에 대 한 장치 id를 만듭니다.
    새 디바이스 추가
     중요
    고객 지원 및 문제 해결을 위해 수집한 로그에 디바이스 ID를 표시할 수 있으므로 이름을 지정하는 동안 중요한 정보를 피해야 합니다.
  3. 디바이스가 만들어진 후 IoT 디바이스 창의 목록에서 디바이스를 엽니다. 나중에 사용할 기본 연결 문자열 을 복사 합니다.
    디바이스 연결 문자열
 참고
IoT Hub ID 레지스트리는 디바이스 ID만 저장하여 IoT Hub에 보안 액세스를 사용합니다. 보안 자격 증명으로 사용하기 위해 디바이스 ID 및 키와 개별 디바이스에 대해 액세스하지 못하도록 설정할 수 있는 사용/사용 안 함 플래그를 저장합니다. 애플리케이션이 다른 디바이스별 메타데이터를 저장해야 할 경우 애플리케이션별 스토리지를 사용해야 합니다. 자세한 내용은 IoT Hub 개발자 가이드를 참조하세요.

Raspberry Pi 설정

이제 Raspberry Pi를 설정 합니다.

Pi용 Raspbian 운영 체제 설치

Raspbian 이미지를 설치를 위해 microSD 카드를 준비합니다.
  1. Raspbian을 다운로드합니다.
    1. 컴퓨터의 폴더에 Raspbian 이미지의 압축을 풉니다.
  2. microSD 카드에 Raspbian을 설치합니다.
    1. Etcher를 실행하고 1단계에서 압축을 푼 Raspbian 이미지를 선택합니다.
    2. microSD 카드 드라이브를 선택합니다. Etcher가 이미 올바른 드라이브를 선택했을 수 있습니다.
    3. Flash를 클릭하여 microSD 카드에 Raspbian을 설치합니다.
    4. 설치가 완료되면 컴퓨터에서 microSD 카드를 제거합니다. 완료되면 Etcher가 microSD 카드를 자동으로 배출하거나 탑재를 해제하므로 microSD 카드를 바로 제거하는 것이 안전합니다.
    5. Pi에 microSD 카드를 삽입합니다.

SSH 및 SPI를 사용하도록 설정

  1. Pi를 모니터, 키보드 및 마우스를 연결, Pi를 시작한 다음 사용 하 여 Raspbian에 로그인 pi 사용자 이름으로 및 raspberry 암호로 합니다.
  2. Raspberry 아이콘 > 기본 설정 > Raspberry Pi 구성을 클릭합니다.
    Raspbian 기본 설정 메뉴
  3. 인터페이스 탭에서 SPI 및 SSH를 사용으로 설정한 다음 확인을 클릭합니다. 실제 센서가 없고 시뮬레이트된 센서 데이터를 사용하려는 경우 이 단계는 선택 사항입니다.
    Raspberry Pi에서 SPI 및 SSH를 사용하도록 설정
 참고
SSH 및 SPI를 사용하려는 경우 raspberrypi.org 및 RASPI-CONFIG에서 더 많은 참조 문서를 찾을 수 있습니다.

Pi에 센서 연결

실험용 회로판과 점퍼 와이어를 사용하여 LED 및 BME280 Pi를 다음과 같이 연결합니다. 센서가 없는 경우 이 섹션을 건너뛰세요.
Raspberry Pi와 센서 연결
BME280 센서는 온도 및 습도 데이터를 수집할 수 있습니다. 그리고 디바이스와 클라우드 간에 통신이 있으면 LED가 깜박입니다.
센서 핀의 경우 다음 배선을 사용합니다.
시작(센서 및 LED)끝(보드)케이블 색
LED VDD(5G 핀)GPIO 4(7 핀)흰색 케이블
LED GND(6G 핀)GND(6 핀)검은색 케이블
VDD(18F 핀)3.3V PWR(17 핀)흰색 케이블
GND(20F 핀)GND(20 핀)검은색 케이블
SCK(21F 핀)SPI0 SCLK(23 핀)주황색 케이블
SDO(22F 핀)SPI0 MISO(21 핀)노란색 케이블
SDI(23F 핀)SPI0 MOSI(19 핀)녹색 케이블
CS(24F 핀)SPI0 CS(24 핀)파란색 케이블
참조용으로 Raspberry Pi 2 및 3 핀 매핑을 보려면 클릭하세요.
BME280이 Raspberry Pi에 성공적으로 연결되면 아래 이미지처럼 보여야 합니다.
Pi와 BME280 연결

네트워크에 Pi 연결

마이크로 USB 케이블 및 전원 공급 장치를 사용하여 Pi를 켭니다. 이더넷 케이블을 사용하여 Pi를 유선 네트워크에 연결하거나 Raspberry Pi Foundation의 지침에 따라 Pi를 무선 네트워크에 연결합니다. Pi가 네트워크에 성공적으로 연결된 후 Pi의 IP 주소를 적어 두어야 합니다.
유선 네트워크에 연결

Pi에서 샘플 애플리케이션 실행

Raspberry Pi에 로그인

  1. 호스트 컴퓨터에서 다음 SSH 클라이언트 중 하나를 사용하여 Raspberry Pi에 연결합니다.
    Windows 사용자
    1. Windows용 PuTTY를 다운로드 및 설치합니다.
    2. 호스트 이름(또는 IP 주소) 섹션에 Pi의 IP 주소를 복사하고 연결 형식으로 SSH를 선택합니다.
    PuTTy
    Mac 및 Ubuntu 사용자
    Ubuntu 또는 macOS에서 기본 제공되는 SSH 클라이언트를 사용합니다. SSH를 통해 Pi를 연결하려면 ssh pi@<ip address of pi>를 실행해야 할 수도 있습니다.
     참고
    기본 사용자 이름은 pi이며 암호는 raspberry입니다.

샘플 애플리케이션 구성

  1. 다음 명령을 실행하여 샘플 애플리케이션을 복제합니다.
    bash
    sudo apt-get install git-core
    git clone https://github.com/Azure-Samples/iot-hub-c-raspberrypi-client-app.git
    
  2. 설치 스크립트를 실행합니다.
    bash
    cd ./iot-hub-c-raspberrypi-client-app
    sudo chmod u+x setup.sh
    sudo ./setup.sh
    
     참고
    실제 BME280이 없는 경우 '--simulated-data'를 명령줄 매개 변수로 사용하여 온도 및 습도 데이터를 시뮬레이션할 수 있습니다. sudo ./setup.sh --simulated-data

애플리케이션 빌드 및 실행

  1. 다음 명령을 실행하여 샘플 애플리케이션을 빌드합니다.
    bash
    cmake . && make
    
    빌드 출력
  2. 다음 명령을 실행하여 샘플 애플리케이션을 실행합니다.
    bash
    sudo ./app '<DEVICE CONNECTION STRING>'
    
     참고
    디바이스 연결 문자열을 복사하여 작은따옴표 안에 붙여 넣습니다.
IoT Hub로 전송되는 센서 데이터와 메시지를 보여 주는 다음 출력이 표시됩니다.
출력 - Raspberry Pi에서 IoT Hub로 전송된 센서 데이터

허브에서 수신한 메시지 읽기

장치에서 IoT hub에서 수신한 메시지를 모니터링 하는 한 가지 방법은 Visual Studio Code 용 Azure IoT 도구를 사용 하는 것입니다. 자세한 내용은 참조 하세요 for Visual Studio Code 장치 및 IoT Hub 간에 메시지를 받고 보내는 데 사용 하 여 Azure IoT 도구합니다.
장치에서 보낸 데이터를 처리 하는 방법을 더 보려면, 다음 섹션을 진행 합니다.

다음 단계

샘플 애플리케이션을 실행하여 센서 데이터를 수집하고 IoT Hub로 전송했습니다.
Azure IoT Hub를 계속 시작하고 모든 확장 IoT 시나리오를 살펴보려면 다음을 참조하세요.

댓글

이 블로그의 인기 게시물

[라즈베리파이] Openssl 설치 1.0.1

OpenPose를 이용한 사람의 움직임 감지(Human Pose Estimation)

라즈베리파이-QT5 설치