Monitor de câmeras com Qt

Essa é uma forma interessante de fazer um monitor de câmeras com Qt, carregar páginas e assistir vídeos no Youtube, mas infelizmente o módulo QtWebView não está disponível pelo repositório do Raspbian, por essa razão pode ser que você só consiga executá-lo no notebook, exceto compile tudo.

Basicamente, carrega-se uma página dentro do componente WebView, de forma que uma streaming por HTTP carregará sem problemas, mas utilizando o protocolo RTSP o processo deverá tomar um novo rumo.

Já escrevi um artigo de como fazer streaming com Raspberry nesse outro artigo. Também escrevi como fazer o servidor de câmera (esse que estou utilizando agora para mostrar a câmera do Raspberry no programa em Qt).

Tudo o que vou mostrar aqui é apenas um pequeno adicional ao artigo anterior relacionado a Qt, QML e Quick.

Configurar o Raspberry para ser servidor de câmera

Siga esse tutorial. Provavelmente será necessário o LD_PRELOAD do final do artigo, sendo a câmera do próprio Raspberry.

Servidor de câmera com ESP32

Eu utilizei o ESP32 TTGO T-Camera desse outro artigo. A streaming dele é bastante satisfatória e esse era um dos propósitos que eu tinha para ela.

Fiz para ela um outro monitor bem mais simples, também em Qt, como você pode ver nesse artigo.

Aplicações para esse monitor de câmeras com Qt

Tudo tem que ter um propósito para ser útil. Nesse caso, qual a vantagem em utilizar um programa como esse no Raspberry ou desktop?

Se o sistema operacional não tiver um browser, a única forma de acessar uma URL externa será através das definições desse programa, ou seja, apenas as URLs configuradas nele serão acessíveis. Isso é importante principalmente em lugares de monitoramento onde a atenção deva estar focada, como portarias, CPDs etc.

Outra vantagem em utilizar esse tipo de restrição é a redução de trabalho necessário para limitar o acesso de um computador, normalmente feito através do firewall de uma empresa.

Para finalizar, essa seria uma forma de limitar o acesso a sites feito por uma criança. Por exemplo em um tablet, onde apenas os sites disponíveis através de um menu seriam acessíveis.

“Ah, mas se fosse uma URL com links daria na mesma”. Não mesmo. Uma página permite fazer modificações localmente de modo a permitir com facilidade acesso a outras URLs.

Código QML para exibir uma URL

Como utilizei o mesmo projeto dos outros artigos, o swipe, só adicionei o recurso ao main.qml, dentro da definição da página 1, a Page1Form. Basicamente, precisamos de um retângulo e dentro dele um WebView. No componente WebView, definimos a URL a acessar.

Page1Form ficou desse jeito (dentro do arquivo main.qml):

Page1Form {
            Rectangle {
                id: youtube
                x: 8
                y: 62
                width: 1920/5 + 100
                height: 1080/5 + 100
                color: "#ffffff"

                WebView {
                    id: wviewYoutube
                    anchors.fill: parent
                    url: "https://www.youtube.com/watch?v=lMVGnLJmUDM&t=1s"
                }
            }

            Rectangle {
                id: esp32
                x: 8 + 1920/5 + 110
                y: 62
                width: 200
                height: 150
                color: "#ffffff"

                WebView {
                    id: wviewESP32
                    anchors.fill: parent
                    url: "http://192.168.1.104/"
                }
            }

                 Rectangle {
                     id: rpi
                     x: 8 + 1920/5 + 110
                     y: 62 + 210
                     width: 200
                     height: 150
                     color: "#ffffff"

                     WebView {
                         id: wviewRPi
                         anchors.fill: parent
                         url: "http://192.168.1.252:8888/"
                     }
                 }
        }

E nos imports (pode ser a primeira linha do arquivo main.qml) bastou adicionar:

import QtWebView 1.1

O resultado é esse da imagem de destaque!

Onde comprar o ESP32 TTGO T-Camera?

Essa lindeza você encontra na Saravati. Já se esgotou duas vezes, se for o caso quando acessar o link, entre em contato com o pessoal da Saravati para saber quando chega a próxima remessa.

Onde comprar a câmera do Raspberry?

A câmera do Raspberry tem vantagens sobre câmeras USB, devido aos controles disponíveis para utilização com OpenCV e considero ideal para projetos que envolvam machine learning. Essa câmera você encontra baratinha na MASUGUX.

Onde comprar Raspberry?

Se está procurando pela Raspberry Pi 3B, uma boa opção é a Curto Circuito, nesse link. A diferença da 3B+ é pouca, custa um pouco menos, se estiver com a grana muito curta.

Se você ainda procura pela versão do Raspberry Pi 3B+, seus problemas acabaram. Tem à pronta entrega na Saravati, que você pode conferir através desse link.

Se procura pela Raspberry Pi 4 4GB, está com sorte também, porque a MASUGUX tem; mas no momento desse artigo é a última peça.

Vídeo

Não acho necessário fazer vídeo, mas se houver interesse, comentem em nossa página no Facebook.

Se ainda não é inscrito, inscreva-se em nossa página DobitAoByteBrasil no Youtube.