예제로 배우는 PyQt

예제 중심으로 배우는 PyQt 프로그래밍

예제로 배우는 PyQt 예제 중심으로 배우는 PyQt 프로그래밍

시리얼통신 위젯 제작

시리얼통신 위젯 제작

시리얼 통신의 모든 부분을 책임지는 위젯을 제작해본다.

  • 시리얼통신 설정
  • 시리얼 통신 동작
  • 단독 실행 가능
  • 다른 곳에 붙여 쓸 수 있도록 제작

예제보기

댓글

댓글 본문
작성자
비밀번호
  1. 임덕규
    네. 제가 만들어둔 예제 코드를 보시면 port 검색에서 해당 내용이 있습니다. 그리고 에디터로는 파이참 커뮤니티 버전을 추천해 드립니다. 스파이더는 제가 사용해보질 않아서 잘 모르겠습니다. 파이참은 파이썬에 최적화 된 개발툴인지라 여러모로 편리한 기능이 많습니다.
    대화보기
    • 그리고 리눅스는 com1, com2 이런 식으로 인식하는 것 같지 않더군요... 이것도 구글링 해보니 복잡하더군요.... 리눅스를 좀 더 공부해야할듯 싶습니다.
      대화보기
      • C#을 배우는 도중에 파이썬으로 넘어온 거라... 컴파일한 적이 없는데도 컴파일이라는 단어를 쓴 것 같습니다. 이해해주시기 바랍니다.

        올려주신 코드를 복사하여 우분투에 깔려있는 편집기(Idle, Spyder 둘 다 테스트)에 붙여넣기 후 세이브 했습니다. 그리고 실행버튼을 눌러 실행한 것입니다. 원래 윈도우에서 이렇게 하면 창이 뜨는데 리눅스에서는 PyQt5.QtSerialPort 모듈이 없다는 메시지가 뜹니다.

        그래서 오류 매시지를 구글링해보니 아래와 같이 조치를 취하라고 나옵니다. 1번은 하라는대로 설치했는데 2번과 3번은 무슨 말인지 조차 감이 안옵니다...

        You have to install:

        1)
        sudo apt-get install libqt5serialport5
        sudo apt-get install libqt5serialport5-dev

        2) add in the .pro file
        QT += serialport

        3) int the .h file add:
        #include <QtSerialPort/QSerialPort>
        대화보기
        • 임덕규
          파이썬은 컴파일하는 언어가 아니라서 컴파일이 어떤 부분에서 나왔는지 알려주시기 바라며, IPython에서는 제대로 동작 하지 않을 수 있습니다. 리눅스에서도 됐던 소스라서 아마 간단한 문제일듯 합니다. 조금만 더 자세히 적어주시기 바랍니다. 감사합니다.
          대화보기
          • 올려주신 예제는 윈도우에선 정상적으로 실행이 잘 됩니다.

            그런데 리눅스 버전 중 하나인 우분투에서 컴파일하고 실행하려 하니 아래와 같은 오류를 뿜어냅니다.


            Python 3.6.5 (default, Apr 1 2018, 05:46:30)
            Type "copyright", "credits" or "license" for more information.

            IPython 5.5.0 -- An enhanced Interactive Python.
            ? -> Introduction and overview of IPython's features.
            %quickref -> Quick reference.
            help -> Python's own help system.
            object? -> Details about 'object', use 'object??' for extra details.

            runfile('/home/bera/sample.py', wdir='/home/bera')
            Traceback (most recent call last):

            File "<ipython-input-1-8fdd1dce6b55>", line 1, in <module>
            runfile('/home/bera/sample.py', wdir='/home/bera')

            File "/usr/lib/python3/dist-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
            execfile(filename, namespace)

            File "/usr/lib/python3/dist-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
            exec(compile(f.read(), filename, 'exec'), namespace)

            File "/home/bera/sample.py", line 25, in <module>
            from PyQt5.QtSerialPort import QSerialPort

            ModuleNotFoundError: No module named 'PyQt5.QtSerialPort'


            이 문제를 해결하려고 구글링을 해보니 아래와 같이 조치를 취하랍니다.

            You have to install:

            1)
            sudo apt-get install libqt5serialport5
            sudo apt-get install libqt5serialport5-dev

            2) add in the .pro file
            QT += serialport

            3) int the .h file add:
            #include <QtSerialPort/QSerialPort>


            그래서 1번은 하라는 대로 설치했는데 2번과 3번을 어떻게 하는 것인지 잘 모르겠습니다. 너무 초보적인 질문이 아닌가 모르겠습니다. 사실 리눅스 이제 처음 배우는 초보입니다. 너무 한심한 질문이더라도 너그러이 이해해주시고 답변 부탁드립니다.
          • 임덕규
            몇 년전에 이것과 같은 동작을 하는 시리얼 프로그램을 패키징하여 사용한 적이 있습니다. 당시에는 에러가 발생하지 않고 잘 되어었습니다. 전체 에러 메세지를 올려주시면 문제를 같이 해결하는데 도움이 될 것 같습니다.

            감사합니다.
            대화보기
            • 로봇쟁이
              혹시 해당 py 파일을 패키징 해보신적이 있으신가요??
              pyinstaller를 통해서 진행한 이후에 실행시켜보니
              Failed to execute scrip에 대한 FATAl error가 나오는데요.

              진행하셨으면 방법좀 알려주시면 안될까요..??ㅜㅜ
            • 빠른 답변 정말 감사드립니다.
              저울 회사에 문의해서 API를 구해보도록 하겠습니다.
              어쨌는 정말 훌륭한 파이썬 강좌입니다.
              정말 많은 도움이 되고 있습니다.
              책 수십 권 산 것보다 훨씬 더 도움이 되고 있습니다.
              감사합니다!!!!
              대화보기
              • 임덕규
                일단 시중에서 사신 저울 중 데이터를 내보내는 장치가 없다면 불가능합니다.

                저울과 통신할 수 있는 API를 지원하는 저울이 있다면 접속하여 데이터를 가져올 수 있겠네요. Serial란에 댓글을 올리신것으로 보아 Serial통신으로 가져올 수 있는지를 여쭈어 보신거라면 해당 저울이 RS232통신등이 가능해야 하며 저울 Firmware단에서 그것을 지원해 줘야 합니다.

                예전 직장에서도 저울을 만들 때 사용하는 로드셀의 데이터를 PyQt 등을 이용하여 표출하였습니다. 모든건 장치에서 지원하느냐에 달려있지요.
                대화보기
                • 강좌 정말 잘 보고 있습니다.
                  제가 해보고 싶은 것은 전자저울에서 중량 데이터를 컴퓨터로 받아보고 싶습니다. 이것이 가능한지 궁금합니다.
                • 임덕규
                  감사합니다. 조만간 대량의 예제를 업데이트 할 예정입니다. 많은 도움되길 바랍니다.
                  대화보기
                  • 맥주는기네스
                    강좌를 통해 많이 배우고 있습니다, 감사합니다. ~
                    대화보기
                    • 임덕규
                      안녕하세요. Port는 실제 물리 Serial Port가 존재하거나 가상 Serial Port를 설정해주시면 화면과 같이 보이게 됩니다. 설정 방법에 대해서는 가상 시리얼 포트에 대해서 검색해 보시기 바랍니다.
                      대화보기
                      • 맥주는기네스
                        예제의 코드를 통해 생성된 위젯에서 Port창의 Port number가 보이질 않습니다.
                      버전 관리
                      임덕규
                      현재 버전
                      선택 버전
                      graphittie 자세히 보기