Pico W와 VL53L0 ToF 센서를 사용한 수위 측정

사용 기술
콘테스트 프로젝트 진행 상황
각 Quest를 단계적으로 완성하는 프로젝트입니다.
Quest 1: Pico W와 VL53L0 ToF 센서를 사용한 수위 측정
2022.08.02
1. 소개 및 개요 (개발 계획 및 과정 포함)
프로젝트 제목 : Pico W와 VL53L0 ToF 센서를 사용한 수위 측정
개요 : 욕조에 목욕물을 받다가 욕조가 넘치는 경우가 몇 번 있었다.
VL53L0 ToF 센서를 사용 욕조에 차는 물의 높이를 측정해서 설정한 수위 보다 높을 경우 알람을 울려주는 제품을 개발 하려고 한다. 욕조의 수위 뿐만이 아니라 저수 탱크의 수위나 연료 탱크의 수위도 측정 가능하다.Pico W를 사용해서 수위 데이터를 클라우드 서버로 전송하고, 사용자가 설정한 수위 보다 높거나 낮은 경우 스마트 폰으로 알람을 알려주도록 구성한다.
Pico W에 부저나 LED를 사용해서 알람을 알려주는 기능도 구현해 보려고 한다.
2. 구조를 표현하는 블록 다이어그램

3. 하드웨어 구성 다이어그램

4. 구성 다이어그램
(1) Pico W
1) WiFi 공유기 접속 및 서버 접속 통신 기능
2) VL53L0 ToF 센서로 수위 측정해서 서버로 전송
3) Battery 전압을 ADC로 읽어서 Low Battery 일 경우 서버로 전송
4) 설정된 수위보다 높거나 낮을 경우 알람 기능 (부저와 LED 알람)
5) Battery 절약을 위해 Sleep 모드로 동작하다 설정된 체크 주기마다 Wakeup 해서 수위 측정 후 데이터를 서버로 보내고 다시 Sleep 모드로 진입
(2) APP
1) 알람 설정: 한계 수위, 수위 방향(욕조-높음, 연료탱크-낮음)
2) 수위 체크 주기 설정 : 욕조같은 경우는 자주, 연료 탱크 같은 경우는 가끔
3) 서버에서 수위 데이터를 받아서 한계 수위를 넘은 경우 알람 발생
4) 서버에서 Low Battery 데이터를 받은 경우 Low Battery 알람 발생
5) 백그라운드 실행
(3) 서버
MQTT 서버 사용
Quest 2: 퀘스트2 개발 환경 구성 (pico C SDK 툴 설치 및 Azure IoT Hub 클라우드 환경 설정)
2022.08.27
https://make.e4ds.com/contest/contest_quest_view.asp?ctidx=8&step=2&atidx=345
IRON 님 Quest2 수행기록 참조
https://remnant24c.tistory.com/414 참조
1. 개발툴 : C언어로 프로그래밍 할 예정이라서 VSCode 설치

Download for Windows 버튼을 눌러서 프로그램을 다운로드 및 설치

- 동의합니다. 클릭 후 다음 클릭

- 다음 클릭

- 설치 클릭

- 설치 진행

- 설치 완료됨. 종료 클릭

- Visulal Studio Code가 실행됨
* pico-sdk Link
https://github.com/raspberrypi/pico-sdk
* Raspberry Pi Pico C/C++ SDK Document
https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html
https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf
* picoW C SDK 사용하기 위한 프로그램 설치
https://github.com/ndabas/pico-setup-windows/releases

위 링크에서 pico-setup-windows-0.3.4-x64.exe 다운로드 후 설치

2. Azure IoT Server 사용
1) Azure 회원 가입 및 로그인
https://azure.microsoft.com/ko-kr/

- 회원 가입

- 로그인 후 Azure

2) 리소스 만들기

- IoT Hub 검색

- 만들기 버튼 클릭

- Azure 평가판 시작


- 체험 계정 만들기

- 다음: 네트워킹 " 버튼을 누르면 이 페이지를 건너뛰고 " 다음: 관리 " 버튼을 누르면 됩니다.

- 이제 왼쪽 하단 모서리에 있는 파란색 "검토 + 만들기" 버튼을 눌러 선택 사항을 검토할 수 있습니다(이 구독에 무료 IoT 허브를 이미 사용했기 때문에 표준 계층을 선택했습니다!).

- 마지막으로 파란색 "만들기" 버튼을 눌러 IoT Hub를 만듭니다.

3) Azure IoT Hub 장치 만들기
이제 IoT Hub가 있으므로 Pico W가 연결하고 메시지를 보내고 받을 수 있도록 IoT Hub 장치 레지스트리에 장치를 만들어야 합니다.
IoT Hub 페이지의 왼쪽 메뉴에 있는 "장치 관리" 섹션에서 "장치" 메뉴 항목을 클릭합니다.

이제 IoT Hub에 등록된 모든 디바이스의 목록인 IoT Hub 디바이스 레지스트리가 표시됩니다.
Pico W에 연결할 새 장치를 만들어야 하므로 "+ 장치 추가" 버튼을 클릭합니다.

"장치 만들기" 페이지에서 장치 이름을 지정할 수 있습니다. 저는 "picow"를 선택했습니다.
"인증 유형"을 "대칭 키"로 설정하고 "키 자동 생성" 옵션을 선택하고 "이 장치를 IoT Hub에 연결"을 "활성화"로 설정해야 합니다.
계속해서 "저장" 버튼을 눌러 새 장치를 만드십시오.

그런 다음 새 장치가 표시되어야 하는 "장치" 페이지로 돌아갑니다. 아직 표시되지 않으면 "새로고침" 버튼을 눌러야 할 수도 있습니다.

Quest 3: Quest 3 Pico W - 클라우드 연결 및 데이터 업로드
2022.09.11
?1. IoT 클라우드 서비스에 대한 계정이 활성화된 상태(로그온)을 확인할 수 있는 캡쳐본을 제출하세요.
https://www.petecodes.co.uk/connecting-a-raspberry-pi-pico-w-to-microsoft-azure-iot-hub-using-micropython-and-mqtt/
위 링크 참조해서 azura 계정 만들고, IoT Hub 리소스를 만듬. (1~3단계)

2. IoT 클라우드와 연결된 Pico W 사물의 이름 설정 등 IoT 연결 과정을 설명해 주세요.
?https://www.petecodes.co.uk/connecting-a-raspberry-pi-pico-w-to-microsoft-azure-iot-hub-using-micropython-and-mqtt/
위 링크 참조해서 Azure Iot Hub 장치를 만듬 (4~11단계)
- Azurer IoT Hub 에 장치 추가
- Azure IoT Hub Explorer 다운로드 & 설치
- 보안설정->공유액세스 정책에 iothubowner 키 생서
- Azure IoT Hub Explorer 프로그램에 기본 연결 문자열 복사

?- umqtt.simple 파이썬 패키지 설치 : Thonny IDE 사용
- 예제 Phython 소스의 wifi, passwd, passw 등을 본인의 것으로 변경
- blatimore.cer 파일을 Pico의 root로 복사
- 예제 소스 실행
3. IoT 클라우드에 업로드된 데이터 상태가 확인되는 대시보드 화면을 캡쳐하여 제출하세요.
?
프로젝트 갤러리
프로젝트 제작 과정과 최종 결과물을 담은 이미지 갤러리입니다.











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

잘 읽었습니다. pico로 다양한 구성이 가능하네요.