소셜 카운터

사용 기술
콘테스트 프로젝트 진행 상황
각 Quest를 단계적으로 완성하는 프로젝트입니다.
Quest 1: 소셜 카운터 (Social Counter) 프로젝트 개요
2022.08.14
□ 아이디어 소개 및 개요
본 프로젝트는 AWS와 Raspberry Pi Pico W를 사용하여 Facebook, Youtube, Instagram의 좋아요 및 구독자 수를 실시간 LCD에 표시해주는 프로젝트 입니다.
<주요 기능 구현 사항>
- Facebook, Youtube, Instagram과 같은 소셜 미디어의 정보 수집
- AWS IOT 서버에서 정보 수집
- PICO W와 AWS IOT 서버와 무선 연결
- PICO에 연결된 LCD에 실시간 정보 표시
<구현 예정 사항>
- 소설 미디어 수집 정보 실시간 표시
- 좋아요나 구독자 수가 늘었을때 알림 디스플레이
- 향후 소설 미디어 인디케이터로써 기능 확장
□ 하드웨어 구성 다이어그램

□ 소프트웨어 구성 다이어그램

Quest 2: 개발환경 구성 - 아두이노 IDE로 개발 환경 구성
2022.08.21
개발 환경 구성은 아두이노 IDE를 먼저 사용해 보기로 했습니다.
아두이노 IDE에서 라즈베리 파이 PICO W 사용할 수 있다는 사실에 좀 놀랐네요.
우선 설정에서 추가적인 보드 매니저 URL을 아래와 같이 지정해야 라즈베리 파이 PICO를 제대로 사용할 수 있습니다.
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

이제 보드 매니저에서 PICO라고 치면 Raspberry PI PICO 보드가 제대로 나옵니다. 물론 설치하면 됩니다. 크기가 좀 커서 시간이 오래 걸립니다.

설치가 마무리 되면 보드 설정에서 PICO 보드를 확인할 수 있습니다.

자세한 보드명은 아래와 같이 나와야 제대로 설치 된 것입니다.

피코 예제 파일중에 하나인 ScanNetwork 프로그램을 선택하여 실행 시켜 봅니다.

실행 후 시리얼 모니터를 보면 정상적으로 주변에 있는 WiFi 네트웍 정보가 보이는 것을 확인할 수 있습니다

이로써 정상적으로 라즈베리 파이 피코에 대한 개발 환경 설정을 마무리 했습니다.
사용할 AWS 서버는 이미 계정을 가지고 있기 때문에 아래와 같이 EC2 서버를 인스턴스를 마련 했습니다.

이로써 Quest2의 개발환경 설정 및 클라우드 환경 설정을 마무리 했습니다.
Quest 3: 클라우드 연결 및 데이터 업로드- Quest3
2022.09.11
hackster.io에 보면 Raspberry Pi Pico W와 AWS와 연결하는 부분이 있습니다.
파이선 코드로 작성되어 있고 구성은 다음과 같습니다.
1. https://github.com/bleakview/rp_pico_w_aws_iot/
(1) CERTS : AWS와 연결하기 위한 보인 인증서 저장 디렉토리
(2) UMQTT : Python으로 작성된 MQTT 라이브러리
(3) awsiot.py : AWS와 연결하여 데이터를 전송하는 파이선 코드
2. 접속을 위한 policy 및 cetificate 생성 - AWS IOT 메뉴에서 설정하여 생성할 수 있습니다.
.png)
3. 4가지 속성을 선택합니다. iot:Connect, iot:Publish, iot:Receive, iot:Subscribe를 선택합니다. 속성이 제대로 설정되어야 데이터를 수신받고 보낼 수 있습니다.

4. Create certificate로 인증서 생성

5. 생성된 certificate는 다운받아서 사용해야 합니다. 아래 메뉴에서 2개를 선택하여 다운 받습니다.

6. 다운받은 cetificate의 이름은 각각 private.pem.key, certifcate.pem.crt로 변경하고 아래 명령을 통해 DER 형식으로 변경합니다.
변경하는 툴은 openssl 툴을 사용합니다.

7. thing를 생성합니다. Create single thing로 생성합니다.

8. 생성된 things입니다. PICO_W_IOT로 지정하였습니다.
.png)
9. awsiot를 수정합니다. 소스내에 있는 WiFi 연결 정보, End Point의 정보를 확인하여 넣습니다. 아래 그림에 ARN이라고 되어 있는 부분이 End Point의 정보고
이것을 확인하여 넣습니다.
ACCESS_POINT = "{access point name }"
PASSWORD = "{access point password}"
CLIENT_ID = "{client id}"
AWS_ENDPOINT = b'{connection endpoint}'
PUBLISH_CHANNEL='temperature'

10. 실행을 시키고, MQTT Test Client를 통해 메시지가 수신되는지 확인합니다.

sensor/2/data라는 이름으로 한꺼번에 데이터를 여러게 보내 도록 수정했습니다.
이렇게 정상적으로 전송되었음을 확인하였고, Quest3를 마무리 합니다.
프로젝트 갤러리
프로젝트 제작 과정과 최종 결과물을 담은 이미지 갤러리입니다.








.png)


프로젝트 자료실
프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.
등록된 자료가 없습니다.
프로젝트 소개
사용 기술
코드 & 회로도
등록된 코드/회로 자료가 없습니다.

오호.. 무선 정보를 이렇게 알수 있군요.