Arduino에서 센서에서 얻은 데이터를 VSCode에서 CSV 형식으로 저장해 보았습니다.

이번 취지



Arduino에서 공작하고 있으면 로그를 취하고 싶어졌습니다만, Arduino 개발 환경에 VScode 확장 기능을 사용하고 있어 모처럼이라면 VScode내에서 완결하고 싶다고 하는 일로 해 보았습니다.

VSCode의 Arduino 개발 환경



이 사이트 을 참고로 구축했습니다.
또한 VSCode에서 Python을 사용하는 경우 확장 기능을 도입해야합니다.
이 기사 을 참고로, Python의 확장 기능을 도입하고 있습니다.

실현하고 싶은 (완료)



CSV 형식으로 기압 센서 로그를 저장!
프로젝트 폴더에 직접 출력해주기 때문에 편하게 & 깔끔하게!


스프레드 시트로 열어 보았습니다! 오, 뭔가 같다!



막상 구현



이번에는 Python을 사용하여 실현했습니다.
라즈파이 하고 있는 분에게는 익숙한 깊은 언어군요.
이런 저도 라즈파이 덕분에 다소 읽고 쓸 수 있는 정도의 지식입니다.
Python의 도입 방법은 Google 선생님에게 물으면 훌륭한 기사를 소개해 줍니다.

그럼 pyserial 라고 하는 시리얼 통신을 실시하기 위한 라이브러리를 도입합니다.
내 환경은 Windows이므로 명령 프롬프트에서.
pip3 install pyserial

라이브러리 설치가 완료되면 작업중인 디렉토리에 log_test.py를 새로 작성하십시오 (이름은 무엇이든 OK, 확장자는 .py로 잘!)

log_test.py
import serial
import datetime
import csv

com = serial.Serial("COM7", 9600)

while True:
    val = str(com.readline().decode("utf-8").rstrip("\n"))
    date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    with open("test.csv", "a") as f:
        print("{},{}".format(date, val), file=f)
com = serial.Serial("COM7", 9600) 의 제 1 인수에 Arduino 를 접속하고 있는 포트를 기술, 제 2 인수에 시리얼 통신의 보 레이트를 지정합니다.
이 프로그램을 실행하기 전에 시리얼 모니터의 연결을 끊어 두십시오.
com.readline() 에서 Arduino에 쓴 Serial.print() 에서 문자열을 가져옵니다. 그대로라면 개행 코드 \r\n가 마지막에 붙어 오기 때문에,.rstrip("\n") 로 대응하고 있습니다.
val = str(com.readline().decode("utf-8").rstrip("\n")) 이번은 이전에 만든 기압 센서의 소스로부터 데이터를 취하고 있으므로, 여기서 문자열로서 취급하고 있습니다만 그래프화 하거나 한다면 원시의 값을 취하는 것이 좋을지도 모릅니다.
데이터형에 대해서는 아직도 지식 부족이므로, 이 근처는 쫓아 학습하고 싶습니다.

끝에



이번에는 처음으로 파이썬을 사용하여 로그를 얻고 저장하는 데 도전했습니다.
기온이나 기압의 변화를 실제의 날씨와 비추어, 셀프 일기 예보는 할 수 있으면 재미있을 것 같습니다.

좋은 웹페이지 즐겨찾기