시리얼 통신은 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 통신을 이용하면 되겠고.... 한번 적용해 봐야겠습니다.
(확인 후 업데이트)...
728x90
'소프트웨어 > 파이썬' 카테고리의 다른 글
[파이썬] 윈도우 화면 캡처 (with mss) (3) | 2022.03.10 |
---|---|
[파이썬] 소켓 통신 예제 (0) | 2022.02.15 |
[파이썬] OpenCV 이미지 서치 (Template matching) (8) | 2022.02.09 |
[파이썬]PySimpleGUI - 간략한 소개 (6) | 2022.02.07 |
[파이썬] OpenCV로 GUI 만들기 (4) | 2022.01.21 |
댓글