All Articles

잉크젯 프린터가 막히는 것을 방지하기 위해 라즈베리파이를 활용해 자동화하기

집에 있는 잉크젯 프린터를 자주 쓰지 않았더니 금새 노즐이 막혀버렸습니다. 노즐 뚫기를 몇 번 반복했더니 5B00 오류가 발생하며 더 이상 진행되지 않았습니다. 일단 임시방편으로 [정보] 캐논 5B00 에러 임시 해결 방법 링크를 따라해 프린터를 초기화 했더니 정상적으로 돌아왔습니다. 세상에 청소를 세는 카운터가 있고, 그 카운터가 임계치를 넘어가면 프린터를 아예 못 쓰게 만들어 버리다니. 어쨌든 시스템 청소를 진행했고 막힌 노즐을 뚫을 수 있었습니다. 대신 잉크를 10% 정도 희생했습니다. 사실상 출력하는 때보다 청소하는 데 잉크를 더 많이 쓰는 셈이죠.

보통 잉크젯 프린터는 1-2주에 한 번은 출력을 하라고 합니다. 하지만 늘 까먹고 있다가 나중에 써야 할 때 노즐이 막혀서 후회하죠. 그래서 준비했습니다. 라즈베리파이로 크론잡을 이용해 1주일에 한 번씩 테스트 인쇄를 하기. 반복되는 작업은 사람보다 기계가 잘 합니다.

  1. 놀고 있던 라즈베리파이를 초기화합니다. 예전에는 디스크 용량도 수동으로 늘려줘야 했는데 이제는 알아서 늘려줍니다. 다만 디스크를 초기화 할 때 ssh 파일을 만들어 주어야 ssh 데몬을 켭니다.
  2. 전원을 켜고 공유기에 꽂은 다음, 관리의 편의성을 위해 공유기 설정 페이지에서 라즈베리파이 MAC을 찾아 IP를 고정시킵니다. 저는 B8-27-EB-14-A8-22 → 192.168.50.201 으로 설정했습니다.
  3. ssh로 연결합니다. 기본 아이디와 비밀번호는 pi / raspberry 입니다.
  4. sudo apt update && sudo apt install cups 으로 cups를 설치합니다.
  5. sudo usermod -a -G lpadmin pi 으로 pi 계정에 그룹을 추가합니다.
  6. sudo vi /etc/cups/cupsd.conf 으로 설정을 변경합니다.

    Listen을 주석 처리하고 Port를 넣어줍니다.

    # Only listen for connections from the local machine 
    # Listen localhost:631 
    Port 631

    어드민 웹 UI에 접근할 수 있게 접근제어 설정을 진행합니다.

    # Web interface setting...
    WebInterface Yes
    
    # Restrict access to the server...
    <Location />
     Order allow,deny
     Allow @Local
    </Location>
    
    # Restrict access to the admin pages...
    <Location /admin>
     Order allow,deny
     Allow @Local
    </Location>
    
    # Restrict access to configuration files...
    <Location /admin/conf>
     AuthType Default
     Require user @SYSTEM
     Order allow,deny
     Allow @Local
    </Location>
    
    # Restrict access to log files...
    <Location /admin/log>
     AuthType Default
     Require user @SYSTEM
     Order allow,deny
     Allow @Local
    </Location>
  7. sudo service cups restart 으로 변경된 설정을 반영합니다.
  8. https://192.168.50.201:631/admin/ 에 접속한 후, 프린터를 추가해 줍니다. 네트워크 프린터로 잡으면 됩니다.
  9. 크론잡을 생성합니다. 라즈베리파이의 기본 시간대는 BST입니다. 그래서 한국기준 -8시간 해줘야 합니다. 아래 크론잡은 KST기준 매주 일요일 12시에 출력됩니다. pdf 파일은 대충 적당한 PDF 파일을 넣어줍시다.

    0 4 * * 0 lp -d Canon_G3000_series /home/pi/printer_test_page.pdf

이제 잉크젯 프린터의 유지보수 악몽에서 해방입니다.