Pico W 기초부터 클라우드 연동까지!
콘테스트 프로젝트진행중

WiFi 스캐너 프로젝트

Pico W 기초부터 클라우드 연동까지!
2022.07.22에 시작
1
좋아요
1.2K
조회
0
댓글
WiFi 스캐너 프로젝트

사용 기술

Environmental SensingInternet of ThingsMachine Learning & AIRaspberry Pi
Pico W 기초부터 클라우드 연동까지!완료
콘테스트 프로젝트 진행 상황

각 Quest를 단계적으로 완성하는 프로젝트입니다.

Quest 1
Quest 2
Quest 3
3 / 4 완료
Quest 1: 스마트 라이트 (Smart Light) 개요
2022.08.14
완료

■ 아이디어 소개 및 개요

본 프로젝트는 AWS와 Raspberry Pi Pico W를 사용하여 스마트폰으로 원격으로 현재 조도를 측정하고 Pico W에 연결된 컬러 LED를 제어할 수 있는 프로젝트 입니다. 

 

■ 주요 특징
  - AWS(Amazon Cloud Service)사용
  - AWS IOT 서비스를 활용하여 실시간 제어
  - 현재 조도를 AWS에서 관리
  - 스마트폰을 이용하여 원격에서 LED 제어

 

■ 하드웨어 구성 다이어그램

 

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

Quest 2: 개발 환경 구성 및 클라우드 환경 설정
2022.08.20
완료

저는 라즈베리 파이 피코 W 환경을 Thonny를 사용하기로 했습니다.

받을 수 있는 곳은 다음 사이트 입니다.

Thonny, Python IDE for beginners

 

Thonny 사이트에 보면 다운로드 할 수 있고, 압축을 풀면 바로 사용할 수 있습니다

 

실행 화면 입니다.

생각보다 단순합니다. Python 코드를 직접 IDE 화면에 작성하고, 바로 실행 시킬 수 있습니다. 해당 부분을 누르면

MicroPython (Raspberry Pi Pico)를 선택할 수 있습니다. 이래야 PICO에 코드를 다운로드 하고 실행할 수 있습니다. 처음에 이 부분을 몰라서 좀 해맸습니다.

여기서 주의 하실 부분이, 아래 그림의 화살표 부분을 주의 해야 합니다.

다음 그림은 IDE에 PICO W에 있는 LED를 켰다 끄는 간단한 프로그램입니다. 

실행 버튼을 누르면 Shell 스크린에 결과가 나오고 에러가 없으면 실행 됩니다.

실행 결과 사진입니다. LED가 정상적으로 켜지는 것을 확인할 수 있습니다.

 

클라우드 환경 셋업은 이미 제가 AWS를 사용하고 있어서....

AWS IOT Core 서비스에 test라는 프로젝트를 만드는 것으로 환경 설정을 마무리 했습니다.

이것으로 2단계 Quest를 마무리 합니다.

Quest 3: Pico W - 클라우드 연결 및 데이터 업로드, AWS 클라우드 연동
2022.09.11
완료

Raspberry PI PICO와 AWS 연결은

 

하기 강좌의 방법과 소스를 사용하여 진행 했습니다. 

https://www.hackster.io/bleakview/connecting-raspberry-pico-w-to-aws-iot-ef6b7b

 

1. 먼저 AWS 서비스 중 AWS IoT를 선택합니다. 현재 저는 2개를 Things를 만들어 사용하고 있습니다.

 

2. 연결을 하기 위해서는 보안 인증서와 정책(Policies)가 필요합니다.

   (1)여기서 인증서는 장치와 AWS 서비스간의 보안 연결을 하기위한 암호화 인증서이고요

   (2) 정책은 장치가 AWS 서비스에서 어떠한 일을 할 수 있는지 권한을 정하는 것입니다.

아래는 지정한 정책 내역 입니다. 4가지 Connect, Publish, Receive, Subsrcibe 속성을 지정하였습니다.

3. 다음은 인증서를 다운받아야 합니다. 

디바이스 인증서와 Public 인증서를 다운 받습니다.

 

4. Create Things 명령을 통해 pi_thing라는 Things를 생성합니다.

5. 생성된 pi_things에 생성한 인증서를 붙입니다. 그래야 장치에서 AWS IoT 서비스에 접속할 수 있습니다.

6. 다운받은 인증서를 DER이라는 형식으로 변경해 줍니다. openssl 툴로 변경할 수 있습니다.

7. 다운받은 소스를 다음과 같은 폴더에 저장합니다.

 

8. 변경한 private.der, certificate.der 파일은 certificate.der 파일은 certs디렉토리에 저장합니다.

 

9. awsiot.py 파일에서 WiFi의 암호, AP 이름, AWS의 End 포인트를 지정하면 연결 준비가 완료 됩니다.

ACCESS_POINT = ""
#Access point password
PASSWORD = ""

# AWS endpoint parameters.
# Should be different for each device can be anything
CLIENT_ID = "test1"
# You can get tihs address from AWS IoT->Settings -> Endpoint
# mothing like : {host id}.iot.{region}.amazonaws.com
AWS_ENDPOINT = ''
#MQTT channel name for publishing
PUBLISH_CHANNEL='temperature'

10. 해당 소스는 이상하게 WiFi 가 처음에 연결이 안되는 현상이 있습니다. 좀 더 디버깅 해 봐야 정확한 원인을 알수 있을 것 같습니다.

우선은 시간이 없어서 먼저 테스트 결과를 올립니다.

 

11.  저는 여기에 DynamDB를 연결하여 보내온 데이터를 저장할 수 있도록 구성 했습니다. 테스트 기간동안 약 37,960개의 데이터를 송신하였고 아래와 같이 저자되었습니다.

 

이것으로 3단계 미션을 마칩니다.

프로젝트 자료실

프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.

등록된 자료가 없습니다.

프로젝트 소개

사용 기술
Environmental SensingInternet of ThingsMachine Learning & AIRaspberry Pi

코드 & 회로도

등록된 코드/회로 자료가 없습니다.

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨보세요!