[typescript] 타입스크립트와 GCP의 Cloud IoT Core와의 연동 방법

본 포스트에서는 타입스크립트를 사용하여 Google Cloud Platform(GCP)의 Cloud IoT Core와의 연동 방법에 대해 다룹니다. Cloud IoT Core를 사용하면 IoT 장치와 데이터를 관리하고 처리할 수 있으며, 타입스크립트로 쉽게 연동할 수 있습니다.

1. 필수 전제 조건

GCP와 Cloud IoT Core를 사용하려면 GCP 프로젝트가 있는 계정이 필요하며, Cloud IoT API가 활성화되어 있어야 합니다. 그리고 GCP SDK 및 관련 라이브러리를 설치해야 합니다.

2. 타입스크립트 프로젝트 설정

타입스크립트로 Cloud IoT Core와 통신하기 위해, 먼저 터미널에서 다음 명령을 실행하여 타입스크립트 프로젝트를 설정합니다.

# 초기화
npm init -y
# 타입스크립트 및 관련 라이브러리 설치
npm install typescript @google-cloud/iot
# 타입스크립트 설정 파일 생성
npx tsc --init

3. 인증 및 연결 설정

GCP 프로젝트의 서비스 어카운트를 생성하고 해당 계정으로 인증합니다. 인증 정보를 파일로 다운로드하고 프로젝트의 환경 설정에 맞게 경로를 지정합니다.

4. 타입스크립트로 Cloud IoT Core에 연결하기

다음은 타입스크립트에서 Cloud IoT Core에 연결하여 장치를 등록하고 메시지를 게시하는 간단한 예제입니다.

import { IoTClient } from '@google-cloud/iot';

const iotClient = new IoTClient();

async function connectToCloudIoT() {
  try {
    const registryId = 'my-registry';
    const deviceId = 'my-device';

    const parentName = iotClient.registryPath(process.env.PROJECT_ID, region, registryId);
    const device = {
      id: deviceId,
    };

    const [response] = await iotClient.createDevice({ parent: parentName, device });
    console.log('Created device:', response);
  } catch (err) {
    console.error('Could not create device:', err);
  }
}

async function publishMessage() {
  try {
    const formattedName = iotClient.devicePath(process.env.PROJECT_ID, region, registryId, deviceId);
    const data = Buffer.from('Hello, Cloud IoT Core!', 'base64');
    const message = { binaryData: data };

    const response = await iotClient.publishMessage({ name: formattedName, binaryData: message });
    console.log('Message published:', response);
  } catch (err) {
    console.error('Could not publish message:', err);
  }
}

connectToCloudIoT();
publishMessage();

5. 마무리

이제 타입스크립트를 사용하여 Cloud IoT Core와 통신하는 방법을 알아보았습니다. Cloud IoT Core를 활용하여 IoT 장치와 손쉽게 통신할 수 있으며, 타입스크립트를 사용하여 간편하게 연동할 수 있습니다.

위의 예제는 간단한 연동 방법을 보여주기 위한 것이므로, 실제 프로덕션 환경에 맞게 보다 신중한 접근 방법이 필요할 수 있습니다. 페이지 하단의 참고 링크에서 더 많은 정보를 확인할 수 있습니다.

참고 링크