Notice
Recent Posts
Recent Comments
Link
투케이2K
414. (javaScript) 자바스크립트 AWS Iot Core 특정 Thing 사물에 publish 메시지 전송 수행 - updateThingShadow 본문
JavaScript
414. (javaScript) 자바스크립트 AWS Iot Core 특정 Thing 사물에 publish 메시지 전송 수행 - updateThingShadow
투케이2K 2025. 9. 15. 21:29728x90
반응형
[개발 환경 설정]
개발 툴 : Edit++
개발 언어 : JavaScript
[소스 코드]
-----------------------------------------------------------------------------------------
[사전 설명 및 설정 사항]
-----------------------------------------------------------------------------------------
- 개발 환경 : Web
- 개발 기술 : JavaScript (자바스크립트) / AWS / Iot Core / Shadow / Publish / MQTT
- 사전) AWS IoT Device Shadow 섀도우 서비스 설명
>> AWS IoT Device Shadow 서비스는 앱 및 클라우드에서 실시간 IOT 디바이스에 접근해 현재 상태에 대한 액세스, 제어, 변경할 수 있게 도움을 주는 서비스입니다
>> AWS IoT 사물 객체가 명시적으로 생성될 때까지 섀도우가 없으며, AWS IoT 콘솔을 사용하여 섀도우를 생성, 업데이트 및 삭제할 수 있습니다
>> AWS IoT Device Shadow 는 MQTT 기반으로 동작하며, publish 제어 명령 수행 및 subscribe 구독으로 상태를 확인할 수 있습니다
>> AWS IoT Device Shadow 는 JSON 규격을 사용해 데이터를 저장하고 검색합니다
- desired : 앱은 desired 객체를 업데이트하여 디바이스 속성에 대해 원하는 상태를 지정합니다.
- reported : 디바이스는 reported 객체에 현재 상태를 보고합니다.
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
[소스 코드]
-----------------------------------------------------------------------------------------
<!DOCTYPE HTML>
<html lang="ko">
<head>
<title>javaScriptTest</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- 반응형 구조 만들기 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<!-- 내부 CSS 스타일 지정 -->
<style>
html, body {
width: 100%;
height: 100%;
margin : 0 auto;
padding : 0;
border : none;
background-color: #666;
}
</style>
<!-- [CDN 주소 설정] -->
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1416.0.min.js"></script>
<script src="https://unpkg.com/aws-iot-device-sdk/browser/aws-iot-sdk-browser-bundle.js"></script>
<!-- [자바스크립트 코드 지정] -->
<script>
// --------------------------------------------------------------------------------------------------------------
// [전역 변수 선언]
const endPoint = 'a..km-ats.iot.ap-northeast-2.amazonaws.com'; // [AWS Iot Core 엔드포인트]
const region = 'ap-northeast-2'; // [AWS 리전]
const accessKeyId = 'AK..A6'; // [IAM 액세스 키]
const secretAccessKey = 'mP..5J'; // [IAM 시크릿 키]
const thingName = 'TWOK_0000000001'; // [사물 명칭]
const shadowName = 'control'; // [Shadow 명칭]
// --------------------------------------------------------------------------------------------------------------
// [html 최초 로드 및 이벤트 상시 대기 실시]
window.onload = function() {
console.log("");
console.log("=========================================");
console.log("[window onload] : [start]");
console.log("=========================================");
console.log("");
// -----------------------------------------
// [요약 개념 정리]
// -----------------------------------------
// AWS IoT Device Shadow 섀도우 서비스 설명 :
//
// AWS IoT Device Shadow 서비스는 앱 및 클라우드에서 실시간 IOT 디바이스에 접근해 현재 상태에 대한 액세스, 제어, 변경할 수 있게 도움을 주는 서비스입니다
// AWS IoT Device Shadow 는 MQTT 기반으로 동작하며, publish 제어 명령 수행 및 subscribe 구독으로 상태를 확인할 수 있습니다
// -----------------------------------------
// 필요 CDN 주소 :
//
// https://sdk.amazonaws.com/js/aws-sdk-2.1416.0.min.js
// https://unpkg.com/aws-iot-device-sdk/browser/aws-iot-sdk-browser-bundle.js
// -----------------------------------------
// 참고 사이트 :
//
// https://blog.naver.com/kkh0977/223695582654?trackingCode=blog_bloghome_searchlist
// -----------------------------------------
// -----------------------------------------
// [AWS.config 지정]
// -----------------------------------------
AWS.config.update({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
});
// -----------------------------------------
// [AWS.IotData 객체 생성]
// -----------------------------------------
const awsClient = new AWS.IotData({
endpoint: endPoint,
region: region
});
// -----------------------------------------
// [Publish 수행 Json 페이로드 생성]
// -----------------------------------------
const params = {
thingName: thingName,
shadowName: shadowName,
payload: JSON.stringify({ // Publish 요청 JSON 페이로드 정의
state: {
desired: { // Client Publish 페이로드 작성
color: 'blue' // Key : color / Value : blue
}
}
})
};
// -----------------------------------------
// [updateThingShadow 사용해 publish 요청 수행]
// -----------------------------------------
awsClient.updateThingShadow(params, (err, data) => {
if (err) {
console.error("");
console.error("=========================================");
console.error("[updateThingShadow] : [Error]");
console.error("---------------------------------------");
console.error(err);
console.error("=========================================");
console.error("");
} else {
console.log("");
console.log("=========================================");
console.log("[updateThingShadow] : [Success]");
console.log("=========================================");
console.log("");
}
});
};
// --------------------------------------------------------------------------------------------------------------
</script>
</head>
<body>
</body>
</html>
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------
[Aws Iot Core] AWS IoT Device Shadow 섀도우 서비스 설명 정리 - 실시간 디바이스 상태 확인 및 제어
https://blog.naver.com/kkh0977/223695582654?
[업무 이슈] Aws Iot Core Shadow 섀도우 구독 수행 에러 응답 관련 이슈 확인 - 기존 클레임 인증서 연결 요청으로 구독 수행 문제
https://blog.naver.com/kkh0977/223851956250?trackingCode=blog_bloghome_searchlist
[Aws Iot Core] Aws Iot Core 프로비저닝 수행 완료 후 생성 된 Shadow 섀도우 목록 확인 방법
https://blog.naver.com/kkh0977/223698063948?trackingCode=blog_bloghome_searchlist
[Aws Iot Core] Aws 프로비저닝 수행 및 섀도우 Shadow 토픽 Topic 구독 시 와일드 카드 (wild card) 설명 정리
https://blog.naver.com/kkh0977/223825295723?trackingCode=blog_bloghome_searchlist
[Aws Iot Core] Https , MQTT , Websocket 통신 Port 포트 정보 정리 - aws iot core port
https://blog.naver.com/kkh0977/223695574812?trackingCode=blog_bloghome_searchlist
[투케이 학습] : [aws] Aws IoT Core MQTT 지원 버전 정보 확인 - MQTT3 , MQTT5
https://blog.naver.com/kkh0977/223579461395?trackingCode=blog_bloghome_searchlist
-----------------------------------------------------------------------------------------
728x90
반응형
'JavaScript' 카테고리의 다른 글
Comments
