본문 바로가기
소프트웨어/파이썬

[파이썬] 1대의 아두이노와 여러앱과의 통신(작성중)

by 만들오 2022. 2. 15.
728x90
시리얼 통신은 1:1이 원칙입니다.

즉, 1대의 아두이노와 1개의 앱만 연결할 수 있습니다.

아두이노는 1개인데 여러개의 앱과 통신할 수 없을까? 하는 고민에 관한 글 입니다.

 

아래와 같이 시리얼 통신이 연결된 상태에서, 같은 포트로 연결을 시도하면 에러가 납니다.

Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser = serial.Serial("COM3", 9600)
>>> ser.is_open
True
>>> ser2 = serial.Serial("COM3", 9600)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\sein1\AppData\Local\Programs\Python\Python39\lib\site-packages\serial\serialwin32.py", line 33, in __init__
    super(Serial, self).__init__(*args, **kwargs)
  File "C:\Users\sein1\AppData\Local\Programs\Python\Python39\lib\site-packages\serial\serialutil.py", line 244, in __init__
    self.open()
  File "C:\Users\sein1\AppData\Local\Programs\Python\Python39\lib\site-packages\serial\serialwin32.py", line 64, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'COM3': PermissionError(13, '액세스가 거부되었습니다.', None, 5)
>>>

 

그렇다면 아두이노와 연결된 앱이 통신 서버역할을 하고,

연결에 실패한 앱들은 클라이언트로 설정해 통신을 하면 어떨까요?👍 느낌이 옵니다.

 

파이썬 앱끼리 통신은 socket 통신을 이용하면 되겠고.... 한번 적용해 봐야겠습니다.

(확인 후 업데이트)...

댓글