안녕하세요 이번 포스팅은 최근 WIZnet에서 Raspberry Pi Pico와 W5100S를 이용하여 출시한 W5100S-EVB-Pico로 AWS IoT Cloud에 접속하여 데이터를 송수신 하는 것을 소개 해드리겠습니다.
W5100S-EVB-Pico 정보 보기 : https://docs.wiznet.io/Product/iEthernet/W5100S/w5100s-evb-pico
우선 AWS에 접속하여 회원가입을 합니다. AWS Cloud가 유료이긴 하지만 처음 가입시 100$ 가량의 Credit을 제공하니, 테스트 용도로 사용하기에는 부족함 없이 사용 할 수 있습니다.
그리고 로그인을 한뒤 IoT Core로 가서 테스트용도이므로 단일 사물을 등록 합니다.
만약 생성해 둔 정책이 없다면 정책 생성을 하시고 연결하면 됩니다. 저는 Test 용도이기 때문에 모두 Allow를 했지만 용도에 맞게 정책을 만들어보시기 바랍니다. 자세한 정책 관련 정보는 아래 링크를 참고해주세요.
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-policies.html
최종적으로 사물생성을 완료하면 이 사물의 보안키들을 다운받을 수 있고 위의 그림에서 표시된 4개의 파일을 다운 받습니다. 참고로 퍼블릭 키는 사용하지 않습니다. 그리고 지금이 아니면 이 키들이 다시 배포되지 않으니 반드시 지워지지 않도록 잘 보관하다가 F/W 안에 넣으면 보안상의 이유로 폐기하시는걸 권고 드립니다.
이제 AWS IoT Core에 사물 생성은 마쳤고, F/W쪽을 보도록 하겠습니다.
F/W는 하기 링크에서 다운로드 및 Clone을 하실 수 있습니다.
https://github.com/Wiznet/RP2040-HAT-AWS-C
Clone, Submodule Update, Patch를 모두 적용합니다. 그리고 안에 있는 Guide 문서를 읽으면 좀 더 수월하게 진행 할 수 있습니다.
그리고 다운로드 받은 키 파일들을 ...\RP2040-HAT-AWS-C\examples\AWS_IoT_MQTT\mqtt_certificate.h 파일에 문자열로 아래와 같이 넣습니다.
RSA 2048비트 키: Amazone Root CA 1 -> 변수명 mqtt_root_ca
디바이스 인증서 -> 변수명 mqtt_client_cert
프라이빗 키파일 -> 변수명 mqtt_private_key
그리고 Domain과 Publish Topic, Subscribe Topic, Client ID를 입력해줘야 합니다. 이 정보들은 코드상에서 ..\RP2040-HAT-AWS-C\examples\AWS_IoT_MQTT\AWS_IoT_MQTT.c 파일의 상단에 Define으로 정의 되어 있습니다.
Client ID는 사물이름으로 하면 되고 저는 테스트를 위해 shadow/update, shadow/update/accepted Topic을 사용하였습니다.
이후 빌드하고 F/W를 Writing 한 후에 Log를 보면 아래와 같습니다
DHCP를 통해 IP를 가져오고, DNS를 통해 domain 의 주소를 가져온 뒤 접속을 하고 publish data를 보냅니다.
보낸 데이터는 MQTT 테스트 클라이언트를 통해 확인 할 수 있습니다.
반대로 MQTT 테스트 클라이언트의 주제 게시 기능을 통해 단말로 메세지를 보낼 수 있습니다.
이상으로 포스팅을 마치겠습니다.
'공돌 이야기' 카테고리의 다른 글
Bluetooth (BLE) Data를 Google Cloud에 올려보자 (0) | 2019.03.20 |
---|---|
뉴트로지나 LED 마스크 해킹하고 Cloud에 올려보자 (0) | 2019.01.23 |
SKT LoRa VS Private LoRa (0) | 2017.07.04 |
LoRa 한국 주파수 대역 (0) | 2017.01.03 |
BLE Beacon Scanner 제작 with Ubidots (0) | 2016.12.08 |