1. 보안 및 디바이스 인증
2. 상태 관리 & 메시징
| 구분 | 방향 | 설명 | 예시 |
|---|---|---|---|
| Device Twin | ⬅️⬆️ 클라우드 기준 | 상태·설정 복제 저장 | 설정값 유지, 펌웨어 확인 |
| Telemetry | 디바이스 → 클라우드 | 데이터 보고 | 현재 온도, 위치 등 전송 |
| C2D 메시지 | 클라우드 → 디바이스 | 명령·알림 전송 | 알람, 설정 요청 등 |
| Direct Method | 양방향 | 즉시 명령 & 응답 | 전원 끄기/켜기 등 실시간 제어 |
3. 데이터 활용 및 시각화
https://github.com/azure/azure-iot-explorer/releases
나는 "Azure.IoT.Explorer.Preview.0.15.12.msi"로 설치했다.
설치하면 자동으로 열린다.
터미널을 열고, 원하는 디렉토리로 이동 후,
git clone --branch v2 https://github.com/Azure/azure-iot-sdk-python


메뉴에서 '보안 설정 > 공유 엑세스 정책' 으로 이동해서

iothubowner를 클릭해서, "기본연결문자열"을 복사한다.




터미널에서 디렉토리로 접근해서 cd .\azure-iot-sdk-python\samples\pnp,
해당 위치에서 code . 로 vscode를 연다
가상환경 생성
& "$HOME\AppData\Local\Programs\Python\Python311\python.exe" -m venv .venv
.venv\Scripts\activate
라이브러리 설치
pip install python-dotenv
pip install azure-iot-device
pnp 파일 내 최상단에 .env 파일 만들기
⚠️ 이때, pnp 파일 내에 최상단에 오지 않으면, 이따 runtime error남!
아까 복사한 primary connection string을 아래에 적용해서 .env 만들고 저장한다.
IOTHUB_DEVICE_CONNECTION_STRING = "{아까 복사한 primary connection string 값}"
IOTHUB_DEVICE_SECURITY_TYPE="connectionString"


temp_controller_with_thermostats.py 파일 수정# 추가 주석을 달아둔 부분들을 추가해준다.
from dotenv import load_dotenv # 추가요거랑# 추가
load_dotenv()
logging.basicConfig(lvel = logging.ERROR)요게 추가되었다!python .\temp_controller_with_thermostats.py로 실행해본다!두 가지 방법이 있다
1. (놓침)
2. stream analytics에서 확인
⇒ 2번째 방법으로 stream analytics도 가져올 수 있는지 확인해보자!
실행 중인 job이 있다면, 작업 중지를 한다.
(나는 아래 이미지처럼 실행중이어서 중지해줬다)



select temperature, EventEnqueuedUtcTime
from [1dt028-iot-hub]
where temperature is not null
order by EventEnqueuedUtcTime
끝!!!!! (o゜▽゜)o☆