Raspberry Pi로 스캔 서버 구축

우리 집에서는 종이 문서를 줄이기 위해 문서를 스캔하여 NAS에 저장해야합니다. 그러나 그 때문에만 PC를 시작하는 것은 번거롭고, 서류마다 폴더를 나누어 저장하려고 하면 더욱더입니다. 그래서 Raspberry Pi를 사용하여 스캔 서버를 구축하기로 결정했습니다. 서버라고 해도, node-red-dashboard+sane이라는 간단한 구성으로, 스마트폰의 브라우저상에서 버튼을 누르는 것으로 스캔과 소정의 폴더에의 보존을 실시할 수 있습니다.
※우리 집의 스캐너는 무선 LAN 대응이므로 당초는 무선 LAN 접속으로 실시하고 있었습니다만, 스캔이 정상적으로 종료하지 않는다고 하는 것이 빈발했으므로, 이하에서는 Raspberry Pi와 스캐너는 USB 접속을 실시하는 구성으로 기재하고 있습니다 합니다.

Raspberry Pi Zero W 설정



여기 의 순서대로 ssh 파일과 wpa_supplicant.conf 를 microSD 카드내에 작성해 두면, 다음과 같이 전원을 넣는 것만으로 ssh 접속할 수 있습니다.

다른 raspberry pi에서ping raspberrypi.local에서 IP를 확인하고 ssh 연결했습니다. (호스트명이나 PW의 변경 등의 셋업에 대해서는 특별히 기재하지 않습니다.)

Node-RED 설치 및 서비스 등록



Raspberry Pi Zero W에 Node-RED 설치입니다. Node-RED 일본 사용자회: Raspberry Pi에서 실행 의 "설치/업그레이드"절차에 따라 설치합니다.bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
서비스 등록은 다음과 같습니다.sudo systemctl enable nodered.service

node-red-dashboard 설치



유저명은 pi의 전제로 기재하므로, 적절히 치환해 주세요./home/pi/.node-red 중,npm install node-red-dashboard를 실행하여 설치합니다.

sane 설치 및 스캔 실행 스크립트 준비



나는 여기 를 참고로 했습니다.sudo apt-get install sane
USB 연결 후scanimage -L를 실행하여 프린터(스캐너)의 장치 이름을 가져옵니다.

우리의 스캐너 (스캐너가있는 프린터)는 Canon MG 7530이며 장치 이름은 pixma : xxxxxxxx_xxxxxx와 같습니다. 적절한 장치 이름으로 바꾸십시오. 다음은 스캔 결과를 images 디렉토리에 image.jpg 파일 이름으로 출력하는 예제 스크립트입니다.

scan.sh
#!/bin/bash

device=pixma:xxxxxxxx_xxxx
output=/home/pi/images/image.jpg

# scan a document
sudo /usr/bin/scanimage -p --resolution=300 --format=jpeg -d $device > $output

NAS 마운트 및 파일 저장



NAS의 마운트 방법에 대해서는 여기 에 알기 쉽게 정리되어 있으므로, 참조하겠습니다. 이하에서는/mnt/nas에 마운트하고 있는 것으로 하므로, 적절히 읽어 주세요.
다음은 인수별로 스캔 결과를 저장할 위치를 전환하는 예제 스크립트입니다. 파일 이름은 image_date.jpg입니다./mnt/nas 아래에는 필요한 디렉토리를 준비해 두십시오.

send.sh
#!/bin/bash

if [ $1 = "RECEIPT" ] ; then
  dest="/mnt/nas/receipt/."
elif [ $1 = "SCHOOL" ] ; then
  dest="/mnt/nas/school/."
elif [ $1 = "OTHER" ] ; then
  dest="/mnt/nas/other/."
else
  dest="/mnt/nas/memo/."
fi

# rename and save to wd cloud
file=image_$(date +%Y%m%d%H%M%S).jpg
mv /home/pi/images/image.jpg /home/pi/images/$file
sudo mv /home/pi/images/$file $dest

node-red-dashboard와의 연계



나머지는 아래의 button 노드에서 '영수증', '학교', '기타'와 같은 버튼을 준비하여 msg.payload에 각각 RECEIPT, SCHOOL, OTHER가 설정되도록 하고 scan.sh는 인수 없음, send.sh는 인수있는 exec 노드를 준비하면 버튼을 누르기 만하면 NAS의 지정된 디렉토리에 스캔 결과를 저장할 수 있습니다.




참고로 한 사이트



라즈파이의 OS 이미지를 구울 때는 Etcher가 편리 & UI 멋지다
Raspberry Pi에서 실행
RaspberryPi의 스캐너
Raspberry Pi에 NAS를 마운트합니다.

좋은 웹페이지 즐겨찾기