Manual

do

Maker

.

com

Validador de CPF com Onion Omega2

Validador de CPF com Onion Omega2

Já que escrevi um artigo sobre validador de cartão de crédito, acho que vai bem escrever sobre um validador de CPF com Onion Omega2.

Atualizar o sistema da Omega2

O primeiro passo é sempre esse, caso ainda não tenha feito a atualização do sistema. faça login por ssh em seu Omega2 e digite o comando, conforme descrito abaixo:

ssh root@192.168.1.3
oupgrade -force

Lembre-se de trocar o IP pelo IP do seu Omega2.

Instalar o suporte ao display e o Python

Para esse artigo estou utilizando o módulo OLED do próprio Omega2 e ele tem programas e bibliotecas prontinhas para uso. No artigo do validador de cartão de crédito eu utilizei a biblioteca que a Onion desenvolveu para utilizar com Python e vamos repetir seu uso aqui. Para tal, instale as dependências, caso ainda não tenha feito.

opkg update
opkg install python-light python-codecs pyOledExp ca-bundle

Código do validador de CPF

Agora já podemos escrever nosso programa. Eu fiz isso utilizando a IDE PyCharm, minha preferida para programar em Python.

from OmegaExpansion import oledExp as oe
from time import sleep
oe.setVerbosity(0)

stat = oe.driverInit()

if stat:
    print "Driver nao inicializado. Ouch..."
    exit()

oe.write("Validador de CPF")
oe.setCursor(2,0)

oe.write("Numeros e [Enter] ")
oe.setCursor(3,0)

cpflimpo = raw_input()

if (len(cpflimpo) != 11 or not cpflimpo.isdigit()):
    oe.clear()
    oe.setCursor(0,0)
    oe.write("Formato errado. Fui.")
    exit()

digito = {}
digito[0] = 0
digito[1] = 0
a=10
total=0
for c in range(0,2):
 for i in range(0,(8+c+1)):
  total=total+int(cpflimpo[i])*a
  a=a-1
 digito[c]=int(11-(total%11))
 a=11
 total=0
 sep = ""
if (int(cpflimpo[9]) == int(digito[0]) and int(cpflimpo[10]) == int(digito[1])):
    oe.clear()
    oe.setCursor(0,0)
    oe.write("CPF valido: ")
    for i in (range(len(cpflimpo))):
        if (i == 2 or i == 5):
            sep+=cpflimpo[i]+"."
        elif (i == 8):
            sep+=cpflimpo[i]+"-"
        else:
            sep+=cpflimpo[i]
    oe.setCursor(1,0)
    oe.write(sep)
else:
    oe.write("CPF invalido")

Fácil demais, hum? Apenas 52 linhas para validar o CPF e exibir as informações no display.

Onde comprar

Se você não tem uma Omega2, está perdendo muita diversão. Clique no menu MIPSe veja o tanto de coisas que eu já fiz, tudo assim, rapidinho. Você pode adquirir a sua nesse link da UsinaInfo, aproveite o final de ano pra se presentear!

Agora fique com o video da brincadeira. Desculpe o jeito feio de tentar esconder os números do CPF, mas é o que deu pra fazer. Se descobrir os números, não precisa colocar nos comentários, ok?

https://youtu.be/s9WoVwwg-LQ

 Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.