나는 iot 기기가 따로 없어서 윈도우 시뮬레이터를 이용해서
AWS IOT 와 통신하는 테스트해보기로 했다.
AWS의 자습서 설명이 꽤 자세하게 나와있다
하지만 생략되거나 대충설명하는부분이 있기때문에,,
두시간동안 해본것을 정리해서 포스팅하려고한다
꼭 나처럼 하지않아도 작동할수도있다, 하지만 일단 이 글대로 따라하면 되긴할것이다
쓸데없는 과정이 몇개있을수도있지만 일단 이렇게 했더니 작동하더라.. 하는식으로 보면 좋을듯
공식문서를 옆에 켜두고 이 글이랑 비교해가면서 같이보기를 권장한다
윈도우 10 노트북으로 테스트를 진행했다
준비물 - 와이파이말고 이더넷(랜선)으로 인터넷연결
진행하다보면 이더넷으로만 가능하다는 메시지가 콘솔창에 뜨는데
와이파이상태에서 다시 테스트해본결과 잘된다., 근데 안될때도 있다,, 그냥준비하자
( 네트워크 인터페이스 관련인거같은데 아직 잘모르겠다)
먼저 WinPCap 이라는 프로그램을 설치해야된다
WinPCap 공식 사이트 접속후 다운로드 버튼을 누르고
중간에 Installer for Windows 를 클릭해서 다운로드 받는다
다운로드 페이지에서 영어로 써있는것을 읽어보면 알겠지만
WinPcap은 개발중단됐다고 Npcap 이라는걸 사용하라고 권장한다
게다가 WinPcap의 지원되는 플랫폼에 window10이 없다!
그래서 처음할때 Npcap으로 설치했었다.. 근데실패했다
다 삭제하고 다시해본 결과 그냥 winPcap으로 해도 잘 된다
뭔가 이상하지만 일단 계속 가보자
Installer for Windows 를 눌러서 다운받은 WinPcap_4_1_3.exe 파일을 실행해서 설치한다
그러면 끝
뭐 따로 프로그램을 실행하거나 그런거없이 그냥 냅두면된다
그다음은 비쥬얼스튜디오를 설치해야된다
공식홈페이지에 접속후 2019 커뮤니티 버전으로 설치했다
알아서 쭉 설치하면 된다
이제 FreeRTOS 데모를 다운받아야된다
AWS IoT의 소프트웨어 탭으로간다음
freeRTOS 구성다운로드 클릭
그럼 여러개의 미리 구성된 FreeRTOS 들이 나오는데
맨 아래쪽에 Windows Simulator 용 Connect to AWS IoT - Windows 빠른 연결 클릭
그럼 간단한 절차를 설명해준다, "시작하기" 클릭
이 화면이 나오면 다른 default값들은 건들지말고 이름만 변경하자
나는 test로 변경했다
그리고 "생성후 다운로드" 를 클릭해준다
디바이스 등록화면이 나오는데 여기또한 test로 만들어주겠다
방금 입력한 이름을 바탕으로 인증서와 프라이빗키 등을 자동생성해준다
"다운로드 및 계속" 을 클릭한다
그다음 화면에서 "테스트" 버튼 누른다음 "완료"를 누른다
다시 AWS IoT로 돌아가서 관리-사물 탭에가면 방금만든 test 디바이스가 존재하는것을 볼수있다
보안-정책 탭에도 생성되어있고
보안-인증서 부분에도 자동으로 생성되어있을것이다
원래 다 따로 생성해서 연동해줘야되는데
처음에 "빠른연결" 을 했기때문에 알아서 다 되어있는모습.
이제 테스트 탭으로 이동한다음 주제 구독을 할것이다
"구독 주제" 칸에
iotdemo/topic/1
iotdemo/topic/2
iotdemo/topic/3
iotdemo/topic/4
를 주제 구독해줬다
이 FreeRTOS demo는 위 4개의 토픽에
helloworld 0 ~ 19 까지 골고루 보내주는 예제기 때문에 저렇게 4개를 구독한다
정상적으로 작동했다면 각각의토픽에 5개씩 메시지가 와있어야한다
이제 다운받은 파일을 보자
바탕화면에 압축을 풀어준다
credentials 폴더에 들어가서 위 이미지에서 선택된 두파일을 복사한다
그다음 AmazonFreeRTOS > demos > include 경로로 간뒤에 붙여넣기해주고 덮어쓰기한다
덮어쓰기 완료
이제 아까 설치한 비쥬얼 스튜디오를 실행하자
새프로젝트 만들기
빈프로젝트 하고 다음
프로젝트 이름은 test로 한뒤
위치는 테스트용이기때문에 그냥 바탕화면으로 했다,
이제 만들기를 클릭해서 프로젝트생성을 해준다
파일 -> 열기 -> 프로젝트/솔루션 클릭
AmazonFreeRTOS > projects > pc > windows > visual_studio > aws_demos
경로 속에있는 aws_demos.sln 을 열기 해준다
아마 중간에 뭐 추가로 다운받으라고 나올텐데 그냥 다운받아주면된다,
용량이 5GB 쯤..? 됐던걸로 기억
만약 이런게 나온다면
나는 이버전을 선택했다
확인해주면 성공적으로 프로젝트를 불러온다
혹시 몰라서 aws_demos 우클릭 -> 프로젝트 대상변경
여기서도 10.0.17763.0 으로 변경해줬다
그다음 상단의 빌드->솔루션 빌드 클릭
열심히 빌드하는중..
마지막에
========== 빌드: 성공 1, 실패 0, 최신 0, 생략 0 ==========
라고 뜨면 성공
이제 F5 를 눌러서 디버깅을 해준다
그럼 콘솔창이 뜨고
interface 1,2,3,4,5 가 나온다,
그리고 에러메시지가 뜨게되는데 콘솔창을 닫고
config_files의 FreeRTOSConfig.h 를 연다
해당파일에는
#define configNETWORK_INTERFACE_TO_USE ( 0L )
이런 부분이 있는데 나는 0L 을 2L 로 바꿔줬다 .
저장후 다시 디버깅을 누르자
여기서 말하는 2L은 아마 위의 콘솔창에 나왔던 interface 1,2,3,4,5 중에 2일것이다
상황에따라서 네트워크 인터페이스 갯수는 다를것이다
(안되면 다른숫자도 입력해보자 , 나는 0 , 1 로 변경 했을경우에는 안되다가 2로바꿔보니까 작동했다 )
잘 작동한다
MQTT 프로토콜로 helloworld 라는 메시지를 0부터 19까지 보내는것을 확인할수있다
topic 은 아까 입력해뒀던 iotdemo/topic/1 , iotdemo/topic/2 , iotdemo/topic/3 , iotdemo/topic/4 이다
아까 주제 구독했던 웹페이지로 돌아가보면 이렇게 시뮬레이터가 보낸 hello world 메시지를 볼수있따
'개발 > AWS' 카테고리의 다른 글
API gateway {"message":"Missing Authentication Token"} 해결하기 (5) | 2019.09.27 |
---|---|
AWS Lambda 주기적으로 자동실행하게하기 (3) | 2019.08.26 |
AWS Lambda TimeZone ( TZ ) 설정 하기 (0) | 2019.08.26 |
AWS IoT Credentials.zip 이 비어있는 에러 (0) | 2019.07.04 |
AWS 서버리스 아키텍쳐 (0) | 2019.06.24 |