Raspberry Pi · 9 min read · Dec 08, 2025
Como instalar um servidor SMS Raspberry Pi
Antes de começarmos
Este tutorial mostrará como você pode configurar um servidor SMS em um Raspberry Pi 2 Model B, executando Raspbian.
Usaremos playsms e smstools. No meu exemplo, usei um modem 3G Huawei E3131.
Raspbian
Primeiro, precisamos baixar o raspbian, você pode pegar a versão mais recente em https://www.raspberrypi.org/downloads/
URL direta: http://downloads.raspberrypi.org/raspbian_latest
Agora precisamos descompactar o arquivo: 2015-05-05-raspbian-wheezy.zip:
unzip 2015-05-05-raspbian-wheezy.zipVocê obterá um arquivo chamado 2015-05-05-raspbian-wheezy.img, este arquivo deve ser gravado no seu cartão micro-sd.
Se você precisar saber alguns conceitos básicos sobre como trabalhar com raspberry pi e gravar a imagem no micro-sd, você pode começar lendo este tutorial:
https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/
Grave o arquivo de imagem no cartão micro-sd, no meu PC o cartão micro-sd é visto como /dev/mmcblk0 no Linux você pode usar dd:
dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0- Observe que o tamanho do bloco definido como 4M funcionará na maioria das vezes; se não, tente 1M, embora isso leve consideravelmente mais tempo.
- Além disso, observe que se você não estiver logado como root, precisará prefixar isso com sudo.
Quando a imagem for gravada, insira o cartão micro-sd no seu Raspberry Pi e ligue-o.
Quando o Raspberry Pi for inicializado, você deve ver uma tela como esta, na primeira inicialização.

Agora eu seleciono as seguintes opções:
1 Expandir Sistema de Arquivos
3 Ativar Inicialização na Área de Trabalho/Scratch -> Selecionar Console Texto Console, exigindo login (padrão)
8 Opções Avançadas -> A4 SSH -> Ativar
8 Opções Avançadas -> A0 Atualizar
Finalizar -> ReiniciarAgora você pode fazer login com o seguinte nome de usuário: pi e senha: raspberry.
Primeiro, configuramos a configuração de rede para nosso servidor editando
sudo nano /etc/network/interfacesMeu arquivo /etc/network/interfaces se parece com isto (altere a configuração conforme suas necessidades):
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.255.50.30
netmask 255.255.255.0
gateway 10.255.50.1
dns-nameservers 8.8.8.8 8.8.4.4Agora reiniciamos o serviço de rede no Pi:
sudo /etc/init.d/networking restartEm seguida, desativamos o DHCP na inicialização com este comando:
sudo update-rc.d -f dhcpcd removeSe você de alguma forma quiser ativá-lo novamente mais tarde, basta executar o seguinte comando:
sudo update-rc.d dhcpcd defaultsAgora podemos usar um cliente SSH como PuTTY para conectar do nosso PC ao Raspberry Pi.
Agora atualizamos o raspbian com o seguinte comando:
sudo apt-get update && apt-get upgrade -y && apt-get dist-upgrade -yPlaySMS
Baixe e instale o playsms 1.1:
sudo -s
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl
php5enmod mcrypt
service apache2 restartQuando solicitado a nova senha para o usuário MySQL “root”, use uma senha forte, neste exemplo usei MyP@$$w0rd
Agora podemos ir para http://your-ip, no meu caso http://10.255.50.30, e veremos uma página mostrando: “ Funciona! “.
cd /tmp/
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%201.1/playsms-1.1.tar.gz
tar -zxf playsms-1.1.tar.gz -C /usr/local/src
ls -l /usr/local/src/
cd /usr/local/src/playsms-1.1/
cp install.conf.dist install.conf
nano install.confCopie install.conf.dist para install.conf e edite install.conf
Leia install.conf e faça alterações para se adequar à configuração do seu sistema.
Eu editei o arquivo, então ele se parece com isto:
# DADOS DE INSTALAÇÃO
# ============
# Por favor, altere os DADOS DE INSTALAÇÃO abaixo para se adequar às configurações do seu sistema
# Por favor, não altere o nome da variável, você pode alterar apenas o valor
# Nome de usuário do banco de dados MySQL
DBUSER="root"
# Senha do banco de dados MySQL
DBPASS="MyP@$$w0rd"
# Nome do banco de dados MySQL
DBNAME="playsms"
# Host do banco de dados MySQL
DBHOST="localhost"
# Porta do banco de dados MySQL
DBPORT="3306"
# Usuário do servidor web, por exemplo, o usuário apache2 por padrão é www-data
# observe: por favor, certifique-se de que o usuário do seu servidor web
WEBSERVERUSER="www-data"
# Grupo do servidor web, por exemplo, o grupo apache2 por padrão é www-data
# observe: por favor, certifique-se de que o grupo do seu servidor web
WEBSERVERGROUP="www-data"
# Caminho para os arquivos de origem extraídos do playSMS
PATHSRC="$(pwd)"
# Caminho para os arquivos web do playSMS
# observe: por favor, certifique-se do caminho da raiz do seu web, neste exemplo é /var/www/html
PATHWEB="/var/www/html/playsms"
# Caminho para os arquivos adicionais do playSMS
PATHLIB="/var/lib/playsms"
# Caminho para o daemon do playSMS e outros arquivos binários
PATHBIN="/usr/local/bin"
# Caminho para os arquivos de log do playSMS
PATHLOG="/var/log/playsms"
# FIM DOS DADOS DE INSTALAÇÃO
# ===================
Agora execute:
./install-playsms.shPressione Y se tudo parecer OK.
Agora queremos ter certeza de que o playsms inicia na inicialização adicionando uma linha no arquivo rc.local.
nano /etc/init.d/rc.localAdicione o seguinte ao arquivo: /usr/local/bin/playsmsd start
na parte inferior do arquivo (antes de exit se houver um comando exit).
Dessa forma, o playsmsd será iniciado automaticamente na inicialização.
..
/usr/local/bin/playsmsd startEdite o arquivo vhost do apache:
nano /etc/apache2/sites-available/defaultMeu arquivo vhost se parece com isto:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/playsms
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
# Valores possíveis incluem: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Agora recarregue a configuração do Aapache2 para aplicar as alterações.
service apache2 reloadEntão você deve ser capaz de acessar o site do playsms no seguinte URL:
Vá para http://your-ip etc. http://10.255.50.30
Você pode fazer login com:
nome de usuário: admin
senha: admin
Gateway - SMS Server Tools 3
Primeiro, instalamos as ferramentas de compilação para compilar a versão mais recente. Execute:
apt-get install build-essential libusb-1.0 libusb-1.0-0-devAgora eu conectei o modem Huawei E3131 e posso vê-lo listado com lsusb:
lsusblsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd.Gostaríamos que fosse com ID: 12d1:1506, mas está sendo detectado com 12d1:14fe agora.
Para mudar isso, instalamos o usb_modeswitch no sistema, você pode pegar a versão mais recente daqui:
http://www.draisberghof.de/usb_modeswitch/#download
cd /tmp
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2
tar jxvf usb-modeswitch-2.2.5.tar.bz2
cd usb-modeswitch-2.2.5
make install
cd /tmp
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2
tar xjvf usb-modeswitch-data-20150627.tar.bz2
cd usb-modeswitch-data-20150627
make installAgora desconecte o modem e conecte-o novamente, depois execute:
lsusb lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/NetworkcardAgora temos o modo desejado: 12d1:1506.
Em seguida, prosseguimos com SMS Server Tools 3.
Primeiro, fazemos o download, depois descompactamos e instalamos.
cd /usr/local/src
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz
tar -zxvf smstools3-3.1.15.tar.gz
cd smstools3
makeSe você ver um erro como no meu caso, quando você executa make:
make
cd src && make -
make[1]: Entrando no diretório '/usr/local/src/smstools3/src'
Makefile:51: * receita começa antes do primeiro alvo. Parar.
make[1]: Saindo do diretório '/usr/local/src/smstools3/src'
Makefile:10: receita para o alvo 'compile' falhou
make: * [compile] Erro 2Então faça o seguinte:
nano src/MakefileO problema é uma aba ausente, agora procure por:
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endifE mova a linha override LFLAGS += -lsocket -lnsl com uma TAB
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endifE tente executar make novamente:
make
make installAgora criamos algumas pastas necessárias:
mkdir -p /var/log/sms/stats
mkdir -p /var/spool/sms/{checked,failed,incoming,outgoing,sent}
mkdir /var/spool/sms/modem1
chown www-data:www-data -R /var/spool/sms
chmod 777 -R /var/spool/smsE então movemos o arquivo de configuração original e baixamos um exemplo do PlaySMS:
mv /etc/smsd.conf /etc/smsd.conf.dist
cd /tmp
wget -c https://raw.githubusercontent.com/antonraharja/playSMS/master/contrib/smstools/smsd.conf
cp smsd.conf /etc/Para ter certeza de que sempre usarei o dispositivo correto, usarei um arquivo de dispositivo dinâmico.
Leia mais sobre arquivos de dispositivo dinâmicos no seguinte URL: http://antonraharja.com/2015/05/14/persistent-paths-for-dynamic-device-file/
nano /etc/udev/rules.d/80-ttyusb-map.rulesACTION=="add", KERNEL=="ttyUSB[0-9]*", PROGRAM="/etc/udev/rules.d/ttyusb-map.sh %p", SYMLINK+="gsm%c"touch /etc/udev/rules.d/ttyusb-map.sh
chmod 755 /etc/udev/rules.d/ttyusb-map.sh
nano /etc/udev/rules.d/ttyusb-map.sh#!/usr/bin/perl -w
@items = split("/", $ARGV[0]);
for ($i = 0; $i < @items; $i++) {
if ($items[$i] =~ m/^usb[0-9]+$/) {
print $items[$i + 1] . "\n";
last;
}
}Agora desconecte e reconecte seu modem, e ele deve ser localizado em /dev/gsm*:
ls -l /dev/gsm*
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsm1-1 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsmmodem -> ttyUSB0Eu fiz algumas alterações no arquivo, então aqui está minha configuração, meu modem está localizado em /dev/gsm1-1 substitua isso pela sua localização.
# Configuração global
#devices = modem1, modem2
devices = modem1
loglevel = 5
# arquivos de log
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log
# Diretório de fila padrão = /var/spool/sms
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent
# não defina a pasta de relatório, deixe os arquivos de relatório de status salvos em incoming
#report = /var/spool/sms/report
delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes
# Configurações de fila
[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2
# Configurações do modem
# Nome do modem: modem1
# Tipo de modem: Wavecom USB
[modem1]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#init = AT+CPMS="ME","ME","ME"
device = /dev/gsm1-1
baudrate = 19200
incoming = yes
pin = 3391
report = yes
queues = modem1
decode_unicode_text = yes
cs_convert = yes
# Nome do modem: modem2
# Tipo de modem: Wavecom USB
#[modem2]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#device = /dev/ttyUSB1
#baudrate = 115200
#incoming = yes
#report = yes
#queues = modem2Reinicie o SMS Server Tools 3:
/etc/init.d/sms3 restartVerifique se o SMS Server Tools 3 está em execução:
ps ax | grep -v grep | grep smsdMonitore o arquivo de log do SMS Server Tools 3:
tail -f /var/log/smsd.logFaça login e configure o smstools no painel web do playsms
Faça login na sua instalação do playsms meu endereço é http://10.255.50.30/
O nome de usuário é admin
A senha é admin
Agora vá para Configurações => Gerenciar gateway e SMSC.
Você deve ver uma tela como esta:
Agora clique para editar o gateway smstools.
E certifique-se de que está configurado assim:
Clique em Salvar, e quando for salvo clique em voltar.
Agora você precisa configurar o SMSC, então selecione o sinal + no SMSTools.
Você deve preencher os Detalhes do SMSC assim, no número do receptor escreva o número do telefone do seu modem.
Quando terminar, clique em salvar.
Agora vá para Configurações => Configuração principal
E preencha os seguintes campos:
ID do remetente padrão
Prefixo ou código do país padrão
E defina SMSC padrão para smstools, como mostrado na imagem abaixo.
Clique em salvar, estamos prontos para enviar o primeiro SMS.
Enviar um SMS
Agora vá para Minha conta => Compor mensagem
Escreva seu número de celular em Enviar Para, e uma mensagem etc. Olá Mundo! no campo da mensagem, e clique em enviar.
Se a mensagem ficar na fila, você pode acompanhar a transação aqui:
Vá para Relatórios => Todas as mensagens enviadas
Mensagens recebidas que não são tratadas são mantidas em sandbox, você verá isso em Relatórios => Sandbox
E o log se algo não estiver localizado em Relatórios => Ver log
Se você tiver algum problema com sua configuração, um bom lugar para buscar ajuda é o fórum do playsms.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.