Índice:

Controle remoto e fotovigilância sobre MQTT: 8 etapas
Controle remoto e fotovigilância sobre MQTT: 8 etapas

Vídeo: Controle remoto e fotovigilância sobre MQTT: 8 etapas

Vídeo: Controle remoto e fotovigilância sobre MQTT: 8 etapas
Vídeo: Câmera WIFI Lâmpada Soquete 360 Graus 1080p Full HD 2MP Visão Noturna IPEGA KP-CA187 2024, Novembro
Anonim
Controle remoto e fotovigilância sobre MQTT
Controle remoto e fotovigilância sobre MQTT

Olá.

Hoje gostaria de falar sobre como fazer um sistema de controle e monitoramento remoto que pode ser usado, por exemplo, para controlar portas de garagem, iluminação, aquecimento, controle de pressão, temperatura e muitos outros parâmetros. Mas a principal característica deste sistema é que você pode receber remotamente fotos de um objeto remoto. Antes de começar a história, um pequeno prefácio. Uma vez eu queria fazer um sistema de vigilância por foto usando uma placa Arduino M0-SD compatível, uma câmera VC0706 e um escudo 3G / GPRS / GSM / GPS para Arduino. A placa compatível com Arduino M0-SD foi escolhida a partir das condições em que é muito fácil de programar (assim como o Arduino UNO), a tensão de operação é de 3,3 V - isso é muito conveniente para trabalhar com a câmera VC0706, uma grande quantidade de ROM e RAM, várias portas da UART, uma porta virtual separada do USB, mas a principal vantagem é a presença de um conector micro SD diretamente na placa (é muito conveniente armazenar grandes quantidades de dados, como imagens).

O escudo 3G / GPRS / GSM / GPS para Arduino é muito conveniente para uso com uma placa Arduino M0-SD compatível. Existem várias bibliotecas na Internet, bem como muitos exemplos para trabalhar com este escudo. A taxa de transferência de dados (3G) é muito mais alta do que a dos escudos GPRS convencionais (especialmente conveniente para a transmissão de imagens). A disponibilidade do módulo GPS é uma vantagem adicional.

Escolhi uma tarifa de baixo custo de uma operadora de celular para transmissão de dados (fotos) pela Internet. Mas surgiu a pergunta: como transferir dados? MMS? FTP? Como faço para receber uma notificação sobre o recebimento de dados (foto)? Com isso, tomei a decisão de enviar os dados (fotos) para o e-mail e visualizar as cartas por meio do aplicativo instalado no celular. Acabou sendo muito conveniente!:-) O projeto concluído pode ser visto neste link.

Há também um projeto semelhante para Arduino UNO por referência.

Então decidi expandir a funcionalidade do meu dispositivo. Por exemplo, adicione a capacidade de controlar LEDs (embora na realidade as possibilidades sejam muito mais amplas). E-mail para isso não é muito adequado. A opção de SMS é cara e desconfortável. E então aprendi sobre o MQTT. Não vou descrever o que ele é. Deixe-me apenas dizer: isso é uma coisa muito legal!:-) Com a ajuda do MQTT, você pode trocar não apenas mensagens, mas também arquivos binários (imagens). No aplicativo para telefone, você pode criar facilmente sua própria interface.

Procurei exemplos de implementação do protocolo MQTT para meu escudo 3G / GPRS / GSM / GPS (SIM5320) e, infelizmente, não encontrei a implementação que precisava. Mas isso não me deixou em paz. Decidi implementar independentemente a funcionalidade necessária. Como resultado, consegui criar um dispositivo que é controlado (indicado por três LEDs) sobre MQTT a partir de um aplicativo instalado em um telefone celular, e também envia uma foto para o telefone por comando do telefone. (Vou lhe contar um segredo que não vi nenhum exemplo de envio de imagens pelo corretor MQTT antes e fiz isso pela primeira vez. E quando consegui transferir a primeira foto fiquei imensamente feliz!:-)) E então, proponho ir direto para a primeira etapa - uma lista de componentes necessários.

Etapa 1: Lista de componentes

Lista de Componentes
Lista de Componentes
Lista de Componentes
Lista de Componentes
Lista de Componentes
Lista de Componentes
Lista de Componentes
Lista de Componentes

Precisamos dos próximos componentes:

1) Compatível com Arduino M0-SD.

2) Câmera TTL VC0706.

3) Escudo 3G / GPRS / GSM / GPS para Arduino.

4) LEDs vermelhos, verdes, amarelos, 3 resistores (100-500 Ohm), fios, conector angular de pino com passo de 2,54 mm.

5) Adaptador de energia AC-DC (6V 1A), antena 3G, etc.

Etapa 2: Preparação da câmera

Preparação da câmera
Preparação da câmera
Preparação da câmera
Preparação da câmera
Preparação da câmera
Preparação da câmera

A câmera possui uma saída RS-232 para conexão direta a um PC. É necessário remover o MAX232 (conversor RS-232) e fechar as placas de contato entre os pinos correspondentes 7-10 (TX), 8-9 (RX).

O cabo de seis fios que veio com a câmera precisa ser ligeiramente refeito:

  • Remova os dois fios do conector.
  • Reorganize os fios vermelho (+ 5V) e preto (GND) conforme mostrado na figura.

Nas pontas desencapadas dos fios devem ser soldadas pontas como "fêmea".

Etapa 3: Preparação do Arduino M0-SD compatível

Preparação do Arduino M0-SD compatível
Preparação do Arduino M0-SD compatível
Preparação do Arduino M0-SD compatível
Preparação do Arduino M0-SD compatível
Preparação do Arduino M0-SD compatível
Preparação do Arduino M0-SD compatível

Como já mencionado, o Arduino M0-SD compatível é hardware e software compatível com o Arduino M0 original, mas também possui um conector microSD integrado para conectar um cartão de memória.

Para conectar a câmera ao Arduino M0-SD compatível na placa é necessário soldar o conector angular aos terminais TXD, RXD (conector X6) conforme mostrado na figura. Esta porta corresponde ao "Serial".

Os fios branco (Câmera RX) e amarelo (Câmera TX) da câmera devem ser conectados respectivamente aos terminais do TXD e RXD (conector X6) conforme mostrado na figura.

Etapa 4: Preparação de 3G / GPRS / GSM / GPS Shield SIM5320

Preparação de 3G / GPRS / GSM / GPS Shield SIM5320
Preparação de 3G / GPRS / GSM / GPS Shield SIM5320
Preparação de 3G / GPRS / GSM / GPS Shield SIM5320
Preparação de 3G / GPRS / GSM / GPS Shield SIM5320
Preparação de 3G / GPRS / GSM / GPS Shield SIM5320
Preparação de 3G / GPRS / GSM / GPS Shield SIM5320

Antes de instalar um cartão SIM no slot, você deve desabilitar a solicitação do código PIN. Em seguida, instale o cartão SIM no slot na parte inferior da placa conforme mostrado na figura. Dois jumpers devem ser instalados na posição RX-1 (D1), TX-0 (D0).

Etapa 5: Montagem de Hardware

Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware

A montagem do hardware consiste em várias operações simples:

  • Para controlar os LEDs, primeiro você precisa soldar um pequeno projeto de LEDs e resistores limitadores de corrente (100-500 Ohm), conforme mostrado na figura. Preste atenção à polaridade dos LEDs - o ânodo deve ser soldado aos resistores (+). Para reduzir a exposição parasitária dos LEDs, fiz uma tela preta de papelão comum.
  • СLigue os LEDs e a câmera a uma placa Arduino M0-SD compatível, conforme mostrado no diagrama. A fonte de alimentação da câmera (fio vermelho "+ 5V" e fio preto "GND") deve ser tirada dos terminais "+ 5V" e "GND" do slot. Você também pode usar um conector angular para isso.
  • Depois disso, conecte o escudo 3G / GPRS / GSM / GPS à placa Arduino M0-SD compatível. Não se esqueça de conectar uma antena 3G.

Etapa 6: Configurando o MQTT Broker

Configurando MQTT Broker
Configurando MQTT Broker
Configurando MQTT Broker
Configurando MQTT Broker
Configurando MQTT Broker
Configurando MQTT Broker

Eu escolhi um www.cloudmqtt.com muito conveniente e claro como um corretor MQTT. Ele fornece testes gratuitos. Também é possível receber e enviar mensagens diretamente no site.

O procedimento de configuração é o seguinte:

  1. Registro online.
  2. Pressione o botão "Criar Nova Instância".
  3. Defina o nome, por exemplo "MqttCamera".
  4. Pressione o botão "Selecionar região". Por exemplo, selecione "US-East-1 (Northern Virginia)".
  5. Pressione o botão "Review".
  6. Pressione o botão "Criar Instância". Visualize a mensagem "Instância criada com sucesso".
  7. Clique em "MqttCamera".
  8. Lembre-se das informações: Servidor, Usuário, Senha, Porta, Chave API (precisaremos disso na 7ª e 8ª etapas).
  9. Em seguida, você pode ir para a janela "WEBSOCKET UI", onde você pode testar e depurar, visualizar e enviar mensagens (precisaremos dessa janela na próxima etapa).

Etapa 7: aplicativo MQTT Dash

MQTT Dash App
MQTT Dash App
MQTT Dash App
MQTT Dash App
MQTT Dash App
MQTT Dash App

Para criar um painel de controle em um telefone móvel, escolhi um aplicativo MQTT Dash muito amigável e claro.

Instale o aplicativo MQTT Dash em seu telefone e faça as seguintes configurações:

  1. Abra o aplicativo.
  2. Na janela do painel MQTT, clique em (+) para incluir um novo painel de controle.
  3. Na janela que aparece, preencha os campos obrigatórios, como: Nome (por exemplo, MqttCamera), Endereço, Porta, Nome do usuário, Senha do usuário (pegue os dados da etapa 6).
  4. Após preencher os campos, clique no ícone do disquete (operação “Salvar”).
  5. Na janela com a lista de painéis de controle, clique na linha exibida "MqttCamera".
  6. Na janela do painel de controle que é aberta, clique no ícone de seta para carregar as métricas.
  7. Em seguida, na janela pop-up, clique no botão "ASSINAR E AGUARDAR A MÉTRICA".
  8. Em um computador pessoal, abra uma conta em um corretor MQTT (consulte a etapa anterior), abra a janela "WEBSOCKET UI", defina o tópico "métricas / troca" na janela "Enviar mensagem" e registre o texto do arquivo metrics.txt anexado na janela "Mensagem", clique no botão "Enviar".
  9. Aguarde 10 segundos, certifique-se de que a métrica seja recebida no telefone e o painel de controle seja atualizado.

Em seguida, você pode prosseguir com a programação do Arduino M0-SD compatível.

Etapa 8: Programação e Trabalho

Programação e Trabalho
Programação e Trabalho
Programação e Trabalho
Programação e Trabalho
Programação e Trabalho
Programação e Trabalho
Programação e Trabalho
Programação e Trabalho

Antes de programar o Arduino M0-SD compatível, você precisa instalar no computador todas as bibliotecas necessárias (pubsubclient-master, TinyGSM-master), que citei abaixo. Essas bibliotecas foram ligeiramente modificadas para funcionar com uma placa Arduino M0-SD compatível, uma câmera VC0706 e um escudo 3G / GPRS / GSM / GPS SIM5320.

Você precisa conectar o cabo e a fonte de alimentação (6V 1A para alimentar a proteção 3G / GPRS / GSM / GPS) ao Arduino M0-SD compatível.

Inicie o Arduino IDE. No Arduino, o IDE precisa escolher: Ferramentas-> Placa: Arduino M0 Pro (porta USB nativa).

Abra o esboço MqttCamera.ino. Preencha os campos: Nome do usuário, Senha do usuário, Chave API, Porta, Servidor (pegue os dados da etapa 6).

Abra a janela Serial Monitor.

Faça upload do esboço. Não descrevo em detalhes o procedimento de programação (existem instruções suficientes na Internet).

Após o carregamento bem-sucedido e a montagem adequada, as seguintes informações devem aparecer na janela Serial Monitor:

Câmera VC0706 + Arduino M0 + SIM5320 + MQTT

Camera init… version: ----------------- VC0703 1.00 Ctrl infr exist Sensor 525 definido pelo usuário ----------------- sucesso ! Inicializando o modem… Modem: AT + CGMM SIMCOM_SIM5320E Aguardando rede… OK Conectando à internet OK Conectando a 3.83.68.228 falhou Conectando a 3.83.68.228 OK Ping: 0

A linha "Ping: XX" é uma mensagem periódica do Arduino M0-SD compatível para o servidor. Em vez dessas informações, você pode enviar medições ADC, status de entrada e muito mais.

No aplicativo MQTT Dash, clique nos ícones das lâmpadas (LED_YELLOW, LED_GREEN, LED_RED) - liga / desliga. Olhe na janela do monitor serial - deve haver informações sobre algo como isto:

LED_YELLOW ligado

LED_YELLOW_Off LED_GREEN aceso LED_GREEN apagado LED_RED aceso LED_RED apagado

Clique no ícone da câmera - envie o comando "DISPARAR" e aguarde um pouco. As seguintes informações devem aparecer na janela Serial Monitor:

Comece a atirar!

Foto tirada! criar IMAGE332-j.webp

E depois de um tempo (5-10 segundos) na janela "VER IMAGEM" deve ser exibida a foto.

Para a demonstração, direcionei a câmera VC0706 para os LEDs para que você pudesse ver seu status depois de trocá-los de maneira arbitrária. Mas em uso real, você pode direcionar a câmera para uma sala, porta, rua, portão, carro, etc. (Claro, você deve levar em consideração os requisitos da lei). Como demonstração, apresento várias imagens de um telefone celular, onde os estados instalados e reais dos LEDs são exibidos.

Espero que minha instrução tenha sido interessante e útil para você. Terei todo o prazer em receber seus comentários e comentários. Em meus planos de desenvolver meu dispositivo e compartilhar com vocês novas inovações. Obrigado por assistir!

Recomendado: