ESP32

TTGO T-Camera com ESP32 WROVER

TTGO T-Camera

Eis mais uma novidade trazida pelo nosso parceiro Saravati. A TTGO T-Camera, que possui display OLED, botão de uso geral, botão de reset, sensor PIR e, claro, a câmera. Além desses recursos, ela tem um pad para adicionar o sensor BME280, que não vem por padrão, mas uma das razões é que a temperatura da placa influencia no sensor de temperatura, por ser muito sensível.

Características

Essa placa é incrível. Já escrevi alguns artigos sobre o ESP32-CAM, mas são placas bastante distintas.

Os botões quadrados da TTGO T-Camera são emborrachados, bastante agradáveis. Na borda inferior possui uma porta micro-USB, logo acima está o sensor PIR.

A câmera é uma OV2640, podendo ser a tradicional ou a fish-eye. A minha é a fish-eye, com uma imagem boa o suficiente em modo SVGA.

Ela possui outros formatos, inclusive grayscale para quem quiser imagens em formatos maiores sem perder fps – o que digo assim de passagem, pode ser o ideal para utilizar com visão computacional e inteligência artificial, pois é comum utilizar grayscale.

Na parte de trás da placa estão dispostos pinos de 5V, 3V3, GND e os pinos 21 e 22 para acesso ao barramento I2C, permitindo adicionar outros dispositivos, como por exemplo, um expansor de IO. Por essa razão, a ausência de outros pinos de IO não é um problema.

Na lateral, próximo à câmera, ela possui um conector para 5V onde podemos colocar uma bateria li-ion para alimentar o ESP32. O conector acompanha a placa.

Inicialização

Por padrão, essa placa vem configurada como AP, utilizando (infelizmente) o IP 192.168.1.1, que é comum ser o gateway de muitas redes domésticas. A rede deve aparecer como TTGO-CAMERA-xx:yy, sendo dois octetos referentes a uma parte do MAC address. A senha padrão é 12345678.

Ao acessar diretamente o IP no browser, deve iniciar uma streaming. Usando /jpg ao final do endereço, apenas um frame é capturado. Só que um dos meus roteadores WiFi utiliza justamente esse endereço IP, daí quis de imediato subir outro sketch. Pense em um sofrimento.

Subir novo sketch na TTGO T-Camera

O código que disponibilizo aqui foi um trabalho de mais de 12 horas de testes, quase desisti de fazer isso agora pela falta de informação e dificuldade de debug. Vamos começar a falar dos detalhes, depois assista ao vídeo também em nosso canal DobitAoByteBrasil no Youtube para ficar mais claro ainda.

Não use a biblioteca OV2640 – use a esp_camera

Para instanciar a câmera, é necessário alimentar uma struct contida na biblioteca que gerenciará a câmera. Acontece que a OV2640 não tem a configuração para o pino PWDN, que no caso dessa câmera, não pode ser nulo. Esse pino (PWDN) deve ser colocado em OUTPUT e HIGH. Não foi necessário fazê-lo, mas li algumas documentações que diziam ser necessário colocar IOD e IOS em PULLUP, então deixei comentado no código para um teste posterior, caso necessário fosse.

Outra coisa importante é que essa placa tem algumas variações de modelo e para cada modelo tem uma pinagem diferente da câmera. A melhor referência é a desse repositório, do qual será necessário cloná-lo para dentro de seu diretório de bibliotecas do Arduino.

Mais bibliotecas

Nesse primeiro sketch que disponibilizo nesse artigo não adicionei os demais recursos, como PIR e botão. Farei isso em outro artigo, não tem complicação nessa parte.

Instale a biblioteca ESP8266-OLED-SSD1306. NO repositório oficial do Arduino está nomeado como ESP8266-OLED, mas você pode pegá-la também clonando esse repositório.

Para o botão, uma das opções é utilizar a biblioteca OneButton, conforme será mostrado em outro artigo. Também está disponível no repositório oficial do Arduino.

Essa tabela contém o pinout de todos os modelos da TTGO-Camera, incluindo a TTGO T-Camera, que é essa sem microfone.

Name BME280/NoBME280-Version Microphone-Version T-Jornal T-Camera Plus
Y9 39 36 19 36
Y8 36 15 36 37
Y7 23 12 18 38
Y6 18 39 39 39
Y5 15 35 5 35
Y4 4 14 34 26
Y3 14 13 35 13
Y2 5 34 17 34
VSNC 27 5 22 5
HREF 25 27 26 27
PCLK 19 25 21 25
PWD 26 N/A N/A N/A
XCLK 32 4 27 4
SIOD 13 18 25 18
SIOC 12 23 23 23
RESET N/A N/A N/A N/A
SDA 21 21 14 !
SCL 22 22 13 !
Button 34 0 32 N/A
PIR 33 19 N/A N/A

Na caixa da placa vem anotado o pinout, mas não é muito intuitivo, porque tanto na struct quanto na declaração de exemplo de qualquer sketch, os nomes e números são completamente diferentes.

TTGO T-Camera

Outra coisa interessante é que nos códigos de exemplo o display OLED é configurado com a resolução de 128×32, sendo que ele é um display de 128×64. Enfim, sequer chegou a ser um problema. Pra por a câmera pra funcionar sem usar o sketch padrão, aí sim foi um problemão, mas pelo qual você não precisará passar, bastando seguir esse artigo.

Código para TTGO T-Camera

Esse código está funcional para streaming e captura de uma amostra. Para streaming, use:

E para pegar uma amostra JPG, use:

Uma outra forma de suprir as dependências é colocar esse código para compilar e ler as mensagens de erro retornadas pelo compilador. Mas se leu o artigo até aqui, não terá problema para fazer a placa funcionar. Lembre-se apenas de escolher o modelo WROVER na IDE do Arduino quando criar seu projeto.

Essas 200 linhas são o resultado após ter escrito umas 2k linhas de testes, sem exagero.

Onde comprar a TTGO T-Camera?

A TTGO T-Camera está disponível no nosso parceiro Saravati, que possui loja física na Santa Efigênia e para quem é da capital de São Paulo, deve valer o passeio. De outro modo, a compra pode ser feita diretamente pelo site, através desse link.

Vídeo

O vídeo, como supracitado, pode ser visto em nosso canal Dobitaobytebrasil no Youtube. Se não é inscrito, inscreva-se, clique no sininho para receber notificações assim que o vídeo estiver online e deixe seu like, que é muito importante para o canal!

Curso “Raspberry para hobistas e profissionais”

E continuando a divulgação do meu curso na Udemy, por R$21,00  usando o cupom de desconto DOBITAOBYTE você pode adquirir algum conhecimento diferenciado do que se vê por padrão em artigos e cursos online, além de contribuir com o blog. Aproveite, são 3 horas de vídeo aulas, mas que lhe prenderão por um bom tempo.

2 comments

Comments are closed.

%d blogueiros gostam disto: