파이썬과 아두이노간의 시리얼 통신을 기반으로 한 전자 방문록 프로그램입니다.
파이썬 GUI(tkinter)와 아두이노 rfid 센서를 중심적으로 이용하였습니다.
RFID 태그나 휴대폰 NFC 기능을 이용하여 아두이노 센서에 태그하면,
Database에서 방문 정보가 저장이 되고 파이썬 GUI에서 확인해 보실 수 있습니다.
GUI 프로그램이 실행되는 동시에 thread로 아두이노 보드와 시리얼 통신이 이루어집니다.
아두이노는 잘 사용하지 않아서 코드와 회로 연결 등에서 부족한 면이 있을 수 있습니다.
'Guest_rfid.ino' 파일을 아두이노에 업로드 해 아두이노 회로에 연결한 후
전자 방문록 GUI 프로그램을 실행시키면 전자 방문록 프로그램을 이용할 수 있습니다.
GUI 프로그램을 실행하면, COM 포트 번호를 입력받는 창이 나오므로
아두이노에 연결한 포트 번호를 입력해주면 시리얼 통신이 정상적으로 이루어집니다.
또한, exe 파일 실행시 사진 및 음악파일의 경로를 알맞게 위치시켜야 파일이 실행됩니다. (파일 위치를 변경할 때 주의해주세요)
코로나 바이러스로 인해 방문록을 작성해야 하는 시설들이 늘어났습니다.
매번 이러한 방문록을 작성하는 것은 번거로운 것 같다고 느꼈기에
카드나 태그를 가져다 대면 자동으로 작성되게 하면 어떨까 하는 생각에 도전해보았습니다.
파이썬-아두이노 시리얼 통신을 이용하여 전자 방문록 입력은 아두이노 rfid 센서,
전자 방문록의 출력과 약간의 입력은 파이썬 GUI를 통해서 이루어지도록 만들었습니다.
1. tkinter
> GUI를 구성하기 위해 사용한 모듈입니다.
2. threading
> 여러 이벤트와 동작을 동시에 처리하기 위해 사용한 모듈입니다.
3. sqlite3
> 점수를 저장하기 위해 사용한 Database 모듈입니다.
4. pyglet
> GUI에 폰트를 사용하기 위해 폰트를 추가해주는 모듈입니다.
5. pillow
> 이미지를 처리하기 위해 사용한 라이브러리 입니다.
6. os
> 사진 파일의 위치를 쉽게 지정해주기 위해 사용한 모듈입니다.
7. pyinstaller
> python 파일을 exe 파일로 변환하기 위해서 사용한 라이브러리입니다.
8. serial
> 아두이노와의 시리얼 통신을 위해 사용한 라이브러리입니다.
(참고 : serial이 아니라 pyserial을 install 해줘야 합니다.)
9. time
> 현재 시간을 받아오기 위해 사용한 모듈입니다.
1. MFRC522
> Rfid 센서를 이용하기 위해 사용한 라이브러리입니다.
- RFID 태그를 인식 받습니다.
- 태그가 인식되면 LED의 불을 바꿉니다.
- 태그가 인식되면 피에조 부저에서 소리가 나게 합니다.
- 아두이노 - 파이썬 시리얼 통신을 통해 RFID 태그 번호를 파이썬 GUI 프로그램에 전달 해 줍니다.
- 아두이노 - 파이썬 시리얼 통신을 통해 RFID 태그 번호를 전달 받습니다.
- 전달 받은 태그 번호를 이용해 회원가입을 할 수 있습니다.
- 전달 받은 태그 번호를 이용해 전자 방명록을 자동 작성할 수 있습니다.
- 작성된 전자 방명록을 원하는 방식으로 정렬하여 확인해 볼 수 있습니다.
- 태그 번호를 이용해서 회원 목록을 저장해줍니다.
- 전자 방문록 내용을 저장해줍니다.
파이썬과 아두이노의 시리얼 통신을 처음 도전한다는 것이 막막했었습니다.
특히, 아두이노는 잘 모르고 익숙치 않기에 할 수 있을까 하는 의문도 들었습니다.
하지만, 하나씩 차근차근 해결해나가다 보니 프로젝트는 점차 완성이 되어갔고
시작하는 것이 어려운 것이지 시작하면 어떻게든 해내겠다는 자신감을 가져다 준 프로젝트입니다.
따라서, 저에게는 가장 기억에 남는 작품 중 하나가 아닌가 싶습니다.
모르는 부분은 직접 찾아가면서 꾸역꾸역 만들었었는데 나름 멋진 작품이 나온 것 같습니다.