아두이노:파이썬과 통신

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노

  1. 아두이노:개요
  2. 아두이노:하드웨어
    1. 아두이노:우노보드
  3. 아두이노:코드
    1. 아두이노:기초 문법
    2. 아두이노:라이브러리
    3. 아두이노:컴퓨터에서 보드로
    4. 아두이노:안드로이드에서 보드로
  4. 아두이노:핀 사용
    1. 아두이노:전원공급
  5. 아두이노:시리얼 통신
    1. 아두이노:엑셀기록
    2. 아두이노:파이썬과 통신
  6. 아두이노:편의함수
  7. 센서 사용
    1. 아두이노:모션센서
    2. 아두이노:온습도센서
    3. 아두이노:조도센서
    4. 아두이노:pH미터 만들기(Gravity 아날로그 pH센서)
  8. 아두이노:LCD 사용
  9. 아두이노:스위치 사용
  10. 아두이노:릴레이
  11. 아두이노:WIFI
  12. 아두이노:해결되지 않은 다양한 의문들
  13. 수업용 간단 실습
    1. 아두이노:LED
    2. 아두이노:초음파센서
  14. 분류:아두이노 프로젝트

개요[편집 | 원본 편집]

방법[편집 | 원본 편집]

사전 준비[편집 | 원본 편집]

과정 설명 명령어
라이브러리 설치 파이썬에서 시리얼 통신을 위한 라이브러리를 설치한다. pip install pyserial
포트 파악 윈도우라면 장치관리자에서 '포트'를 열어 아두이노가 연결된 포트를 찾는다.

COM10 형태로 쓰여있다.

코드[편집 | 원본 편집]

아두이노의 시리얼 통신은 1:1로 가능하기 때문에 어딘가에서 아두이노의 시리얼 포트를 사용하고 있다면 닫아주어야 한다.

과정 설명 코드
라이브러리 사용 및 연결 위에서 설치한 라이브러리를 이용해 통신을 연결한다.
import serial  # 모듈 부르기

my_serial = serial.Serial("COM10", baudrate=9600, timeout=1)  # 10번 포트에 연결하고 1초동안 응답 없으면 끊는다.
아두이노로 보내기
my_serial.write('문자열'.encode() )  # encode를 거쳐 넣어주어야 한다.
아두이노에서 받기 아두이노에서 시리얼로 보낸 신호를 읽는다.
read_data = my_serial.readline()
print(read_data.decode() )  # decode를 거쳐야 제대로 볼 수 있다.
받기(스레드) 보통 신호는 놓치지 않고 즉각 받아야 하므로 쓰레드로 처리한다.
import threading

def serial_read():
    while True:
        read_data = my_serial.readline()
        print(read_data.decode() )  # decode를 거쳐야 제대로 볼 수 있다.
readint_thread = threading.Thread(target=serial_read)
readint_thread.daemon = True
readint_thread.start()
통신 종료
my_serial.close()