30 de julho de 2021

Do bit Ao Byte

Embarcados, Linux e programação

DIY – Maquineta do Banco Imobiliário

Reinventar a roda? Afinal, já tem uma versão do banco imobiliário com maquineta. Mas não, não vamos reinventar a roda. Vamos aperfeiçoá-la. E nessa nossa maquineta do banco imobiliário vamos adicionar um recurso que não tem: investimento em Bitcoin.

Material necessário para a maquineta do Banco Imobiliário

Não é pouca coisa, já adianto. Preferi fazer algo bem elaborado, o que nos dará um diferencial extra, além do prazer de operar. De imediato, todos já devem ter pensado no RFID. Teremos. Mas para investir em Bitcoin, vamos utilizar o tutorial de iButton. E aí entra outro conceito interessante, que é relacionar a tag do iButton e o RFID RC522 com o respectivo jogador. Pra finalizar os periféricos de entrada, claro que precisamos de um teclado numérico; no caso, alfanumérico, com esse keypad 4×4. Por fim, um display OLED I2C, que você encontra na CurtoCircuito também.

Pela imagem de destaque já dá pra ter uma ideia do número de GPIOs utilizado. Não é pouca coisa, mas para um “hobista” é um excelente passatempo. Basta implementar um pouco por dia, no final de semana, nas férias, em um feriado prolongado, etc. Vou deixar cada parte detalhada, faça por partes sem se preocupar com o final.

Fora esses dispositivos de entrada, precisaremos de mais dois itens importantes: um ESP-01 pra buscar o valor do Bitcoin online, e um display OLED para exibir as informações para o usuário. Claro que precisamos de uma MCU para gerenciar isso tudo, e não dá pra ser qualquer MCU por razões óbvias: GPIO. Por essa razão o escolhido da vez foi o Arduino Mega 2560, com um shield de UNO, com uma mini-protoboard para comportar os resistores necessários.

Wiring dos componentes

Vou começar o artigo já com mão-na-massa, senão vai ficar gigantesco. Disponho a seguir os wirings isolados. Basta fazer cada um deles e no final tudo estará devidamente conectado.

Wiring do teclado matricial

Esse é muito simples e é ligado diretamente aos GPIO.

Maquineta do Banco Imobiliário

Wiring do RFID RC522

Esse também não tem complicação, só não é em linha como o keypad.

Maquineta do Banco Imobiliário - rc522

Wiring do iButton

Esse sim é um pouquinho mais enrolado, ainda mais que tive que colocar 3 resistores em série porque eu não tinha um resistor de 2k4. Também não achei o componente iButton para o Fritzing, por isso usei um MQ-9:

Maquineta do Banco Imobiliário - ibutton

Wiring do display OLED

Esse também é 3v3, por isso não é tão simples. Lembre-se: Faça de forma isolada como disposto nas imagens e no final tudo estará devidamente funcional.

Maquineta do Banco Imobiliário - oled

Wiring do ESP-01

O ESP-01 também é 3V3. Algumas pessoas ligam o TX 5V do Arduino ao ESP-01 e funciona, pelo menos até queimar. Não tenho coragem de ligar o pino TX do Arduino diretamente ao pino RX do ESP-01, o que pode ser mais impactante se houver transferência contínua do Arduino para o ESP-01. No caso dessa maquineta, tudo o que será enviado é um byte qualquer, que servirá como requisição para uma consulta online do valor do Bitcoin, utilizando a API do Mercado Bitcoin, que descrevi no Artigo “Como fazer HTTPS get no ESP8266“. Ainda assim, preferi colocar um divisor resistivo. O que tinha à mão era um resistor de 1k2 e um resistor de 2k2, que vai dar mais ou menos 3.23. Está ótimo assim!

ATENÇÃO: O pino CH_PD deve ir ao 3V3 também, passando por um resistor de 10K.

serial com Bus Pirate - esp-01
bitcoin com ESP8266 | Maquineta do Banco Imobiliário

Chega de periféricos, hum?

Código para cada periférico

Ao final deixarei o link para o código completo para funcionar tudo, mas como vai ficar bem enrolado, vou deixar os links dos artigos específicos para cada componente desse projeto:

Regra para investir em Bitcoin

A cada volta no tabuleiro se ganha 200.000,00. Então pensei em permitir que a cada rodada fosse possível investir esse valor em Bitcoin. O resgate só poderá ser feito na próxima volta, sem pré-consulta do valor. Pode haver ganho ou perda, já que o valor do Bitcoin varia o tempo inteiro.

Uma dica é ficar acompanhando o valor do Bitcoin no smartphone, usando o site do Mercado Bitcoin.

Código da maquineta do Banco Imobiliário

Agora é hora de jogar um raio no nosso Frankenstein.

Antecipe-se e instale as bibliotecas necessárias:

  • MFRC522
  • OneWire
  • Keypad
  • Adafruit_SSD1306
  • Adafruit_GFX
  • Wire

O código ficou meio extenso e ainda assim cabem novas implementações e modificações, mas está ótimo para um conceito de bancada. Baixe o código da maquineta do banco imobiliário com Arduino do nosso repositório.

Vídeo da maquineta do Banco Imobiliário

Ainda não produzi um case e confesso que foi desgastante o suficiente para querer esquecer o projeto por uns dias. Mas no vídeo “Maquineta para Banco Imobiliário com Arduino” estou mostrando algumas operações e as “entranhas” do projeto. Quando fizer o case, faço outro vídeo.

Revisão: Ricardo Amaral de Andrade