수행기록퀘스트1

RPi Pico 내부 온도센서 + 외부 온도센서를 활용하자~!!!
2022. 2. 23 (수) 11:07 윤종* 조회 377 좋아요 0 스크랩 0 댓글 0

제목 : RPi Pico 내부 온도센서 + 외부 온도센서를 활용하자~!!!

 

① 동작을 확인할 수 있는 동영상 (유투브를 통해 게시물 본문에 업로드)
https://youtu.be/0lSQU5VX7xc

② 소스 코드
첨부 참고(main.py + tm1637.py)

③ 동작을 바로 확인 할 수 있는 Hex 또는 BIN
python이므로 별도의 hex 미포함('② 소스 코드' 참고)

④ 결과물 및 데모에 대한 설명을 포함한 PDF 문서
(프로젝트 구성, 회로도, 펌웨어, 소프트웨어, APP, 디자인 등에 대한 설명)

Raspberry Pi Pico와 함께 제공되는 내부 온도 센서는 ADC(아날로그 to 디지털 변환기) 중 하나에 연결됩니다. ADC 핀은 핀에 인가되는 입력 전압에 의해 결정되는 값 범위를 지원합니다.


RP2040 Pico 보드에서 ADC 핀은 12비트를 지원하므로 값이 0에서 4095 사이가 될 수 있습니다. 그러나 MicroPython 코드는 ADC 값을 16비트 범위로 확장할 수 있습니다. 따라서 우리는 0에서 65535까지의 범위를  얻습니다. 마이크로 컨트롤러는 3.3V에서 작동합니다. 즉, ADC 핀은 3.3V가 적용될 때 65535 값을 반환하고 전압이 없을 때 0을 반환합니다. 핀에 인가되는 전압이 0~3.3V일 때 모든 중간 값을 얻을 수 있습니다.


지금은 단종된 Grove - Temperature Sensor V1.2는 NCP18WF104F03RC를 사용하며, 원래 제공되는 python library는 12비트 출력기준으로 작성되어 있습니다. micropython에서는 내부적으로 16비트 출력기준으로 변경하여 출력을 내주므로, 이부분 소스 수정이 필요합니다.
또한 Grove - Temperature Sensor V1.2의 경우 측정된 resistance를 온도로 변환하기 위해서 log값을 구해야 하는데, micropython에서는 CPython의 math library를 사용할 수 없어 별도로 math library없이 ln값을 구합니다.

def ln(x):
    n = 1000.0
    return n * ((x ** (1/n)) - 1)

사용 센서 : https://wiki.seeedstudio.com/Grove-Temperature_Sensor_V1.2/

후기 : RPi Pico를 처음사용해서 좀 많이 헤맸고, 2종류의 온도를 측정하였지만... 구체적인 응용을 찾지는 못하였습니다. 다음 기회에 좀 더 멋지게 꾸며 보겠습니다.

첨부파일
bondroid.zip 다운로드

로그인 후
참가 상태를 확인할 수 있습니다.