Pplware

Digitalizar e enviar para o e-mail com um Raspberry PI

A moda dos mini Pc’s pegou! Muitos são já os equipamentos disponíveis no mercado para este segmento mas, a verdade é que o projecto Raspberry Pi continua a liderar a preferencia dos utilizadores. O Raspberry Pi foi anunciado em Maio de 2011 e desde aí que são muitos os projectos que vão sendo publicados na Internet, como por exemplo usar o Raspberry Pi  para ligar/desligar uma simples lâmpada (ver aqui).

Hoje vamos conhecer uma ideia simples, funcional e low cost, utilizado um Raspberry PI e um scanner antigo.

O Raspberry Pi é um dos mini PCs mais populares e potentes que tem servido de base a muitos projectos interessantes (pode consultar alguns dos projectos aqui). Este pequeno equipamento tem um custo reduzido (aproximadamente 35€)  e basta apenas ter um exemplar e dar asas à imaginação para criar excelentes projectos.

O projecto que vos apresentamos hoje é do português Eduardo Luís e consiste em usar um Raspberry PI e um scanner USB. Segundo o mentor do projecto, a ideia surgiu essencialmente pela necessidade de ter uma solução barata para o digitalizar e enviar documentos para o e-mail, numa filial da empresa onde trabalha, aproveitando um scanner antigo. Na filial existem apenas 3 pessoas a trabalhar e uma vez que havia know how optou por criar uma solução recorrendo ao Raspberry PI.

A Solução: Um scanner antigo e um Raspberry PI

Na solução apresentada, consiste num Raspberry PI a correr o SO Raspbian com um conjunto de serviços/ferramentas como por exemplo o Sendmail, Bind, Python, Bash, Sane, Imagemagick  e Mutt.

A Ideia: O scanner antigo é ligado ao Raspberry PI via porta USB (necessita de ser compatível com Sane) e depois existe um botão que inicializa o processo de scanning, invocando um conjunto de scripts que serão responsáveis pelos processos de envio do documento digitalizado.

Hardware

Relativamente ao hardware, mais concretamente ao Raspberry PI, são necessários 3 pinos: um para o botão de inicialização e outros dois para indicar o estado do sistema.

O Scanner é um equipamento já antigo, com ligação via porta USB

Sistema ocupado Pino 18 (RED) – LED acende quando o sistema está em funcionamento digitalização/envio de fax)

Botão de inicialização Este botão dá inicio ao processo. Está ligado ao pino 18 e a uma resistência de 10.000 omh .

System status: Pino 14 (GREEN) – Mostra o estado do sistema a cada 5 segundos. O estado do sistema é verificado através de um simples script em bash (carregado no boot) e que se encontra localizado em /etc/rc.local

Scripts/Configurações

rc.local

#initiate PINS 14 and 18 on GPIO
echo 14 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio14/direction
echo 18 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio18/direction
#turns leds 14 and 18 off
echo 0 > /sys/class/gpio/gpio14/value
echo 0 > /sys/class/gpio/gpio18/value
#bash script to initiate blinking status
/root/scripts/blinking.sh &
# python script to listen for the push button
/root/scripts/script_listen_for_scan.py &

/root/scripts/blinking.sh

#!/bin/bash
while true; do
echo 1 > /sys/class/gpio/gpio14/value
sleep 0.05
echo 0 > /sys/class/gpio/gpio14/value
sleep 0.09
echo 1 > /sys/class/gpio/gpio14/value
sleep 0.05
echo 0 > /sys/class/gpio/gpio14/value
sleep 5
done

/root/scripts/script_listen_for_scan.py

#!/usr/bin/env python
# LOOP À ESPERA DA PRESSÃO NO BOTÃO
from time import sleep
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
while True:
if ( GPIO.input(23) == True ):
os.system('/root/scripts/scan.sh &')
sleep(0.5);

/root/scripts/scan.sh

#!/bin/bash
# ACENDE O LED DE BUSY
echo 1 > /sys/class/gpio/gpio18/value
cd /root
rm -rf /root/sent.lock # Evita problemas com o mutt ter morrido inesperadamente
scanimage --resolution 100 > /root/scan_benedita.pnm
convert /root/scan_benedita.pnm /root/scan_benedita.jpg
cd /root
sudo mutt -s "Scan da Benedita" -a /root/scan_benedita.jpg -c scannerbenedita@MYDOMAIN.PT < /root/MSG 

# DESLIGA LED BUSY 
echo 0 > /sys/class/gpio/gpio18/value

Vejam uma pequena demonstração de todo o sistema

Como puderam ver, tendo um Mini PC e ideias é meio caminho andado para se fazer excelente projectos. Em nome do Pplware gostaria de dar os parabéns ao Eduardo Luís pela ideia e pela disponibilização do código dos scripts.
Exit mobile version