alguém poderia me ajudar a fazer esses dois código rodar simultâneo numa só placa Esp32 segue o código em anexo....

Exibições: 406

Anexos

Responder esta

Respostas a este tópico

Ok Elcids, usarei esses comando APP e HTML para teste, depois faço um HTML com Botoes, mais completo e uso o APP invertor Tambem

olá Marcela.

      Fiz a implementação, da forma como eu tinha proposto:

      1) implementei uma "nova" LIB SPP Bluetooth Classic:  isso teve que ser feito para evitar falhas graves e limitações existentes na LIB original do ESP32. Inicialmente, esta LIB estará em uma pasta no mesmo local onde fica o código "ino". Posteriormente, pode-se ajustá-la para que seja inserida na pasta "libraries" na pasta "C:\Users\.......\Documents\Arduino\libraries", constituindo-se assim uma LIB de fato.

      2) implementei as três Máquinas de Estados:  uma para o Gerenciamento do Sistema, outra para o Gerenciamento da Conexão WiFi, e outra para o Gerenciamento da Conexão Bluetooth.

      3) para o controle ON/OFF da Lâmpada, implementei dois Sub-Sistemas: uma para controle via Bluetooth (com comandos via caracteres ou frases, através da Interface SPP), e outra para controle via WiFi numa Página HTML simples. Em ambos os casos, o Sistema sempre reporta o estado atual da Lâmpada (seja quando vc abre o controle inicialmente, ou quando vc envia um novo comando), e assim vc sempre sabe qual o estado em que a Lâmpada se encontra. Claro: você pode também inserir qualquer quantidade de dispositivos controlados, e de qualquer tipo (digital ou analógico).

      Já fiz os testes, e está funcionando exatamente como esperado:  você pode controlar via WiFi ou Bluetooth Classic. Inicialmente o Sistema entra via WiFi. Caso o WiFi caia, então automaticamente o Sistema permite que se use o Bluetooth. Caso vc não faça uma conexão Bluetooth dentro de um período de tempo (entre 10 a 15 segundos, pra dar tempo de vc fazer o primeiro pareamento, que é o único necessário) então o Sistema passa a tentar novamente via WiFi. O mesmo ocorre quando após algum tempo o Sistema não consegue se conectar à rede WiFi, ou seja, ele passa automaticamente a tentar via Bluetooth. Quando qualquer conexão é feita (Bluetooth ou WiFi), o Sistema passa a usar essa conexão, até que vc se desconecte ou a conexão caia (e neste caso ele sempre fica tentando uma nova conexão, automaticamente).

      Para o Bluetooth, usei o APP  "Serial Bluetooth Terminal" para os testes, conforme combinamos. Foi bem prático, pois programei um dos botões do APP para enviar o comando. Na tela do APP, vc pode ver o estado atual da Lâmpada, e ligar ou desligar a mesma, clicando no botão do APP. Para a configuração do APP, bastam apenas alguns settings simples, que passarei em breve através de figuras capturadas.

      Para o WiFi, basta abrir uma página no navegador (usei o Chrome) com o IP designado ao ESP32 quando este se conecta à sua rede WiFi. Na Página sempre é mostrado o estado atual da Lâmpada, e um Botão, onde vc pode ligar ou desligar esta Lâmpada. Testei tanto no Computador como no Celular. Se por algum motivo a página enroscar (ou mesmo travar) no Computador ou Celular,  o Sistema detecta isso, para garantir que sempre esteja funcionando (testei isso também). E claro, há também a possibilidade do "Port Forward", possibilitando que vc acesse o ESP32 de qualquer lugar, desde que seu Roteador esteja conectado à Internet com IP fixo.

      Sobre o WiFi, sempre que o Sistema se conecta à rede, ele informa no Terminal do Arduino qual o IP está usando. Claro, este IP é o que o Roteador da Rede WiFi designou ao ESP32 (via DHCP). Em uma rede WiFi doméstica comum,  onde geralmente há poucos dispositivos conectados, o IP é quase sempre o mesmo (aqui comigo foi assim sempre). Mas eventualmente, poderá mudar. Claro, vc pode configurar o seu Roteador para sempre designar um IP fixo, usando o MAC do ESP32 (o MAC sempre aparece na lista do Roteador), e neste caso não precisará se preocupar com o IP.

      E há os APPs de Port Serial via USB, o que permite vc conectar o ESP32 ao USB do celular, e assim ver o IP atual, sem necessidade de usar o Computador pra isso.

      Sobre o Bluetooth,  irei posteriormente também fazer uma versão que tenha uma autenticação, permitindo que se insira uma senha de acesso, a qual será independente do pareamento convencional do Bluetooth. Você só precisará inserir a senha uma vez, pois o Sistema irá memorizar todos os Dispositivos Bluetooth que já autenticaram, evitando que vc precise inserir a senha toda hora. Já comecei a preparar isso.

      A quantidade de testes que fiz foi bem grande, e considero o Sistema estável, tendo funcionado como esperado.

      Agora só vou organizar tudo, inclusive com figuras pra postar aqui. Então peço que aguarde só mais um pouco, até que eu faça isto.

      Mas os Diagramas de Estados das três Máquinas de Estados, eu já capturei as figuras, e já posso te mostrar como ficaram. Veja:

      1) Diagrama de Estados da Máquina Principal, que gerencia o Sistema:

(clique na figura para "zoom")

      2) Diagrama de Estados da Máquina que gerencia a conexão WiFi:

(clique na figura para "zoom")

      3) Diagrama de Estados da Máquina que gerencia a conexão Bluetooth:

(clique na figura para "zoom")

      Então aguarde só mais um pouco Marcela, e logo estarei postando o código, com a respectiva  documentação, e quaisquer orientações que sejam necessárias.

      Abrçs,

      Elcids

nossa ficou show o diagrama, achei que era mais simples o diagrama, mas o diagrama e bem complexo, mais agradeço de coração o seu esforço em me ajudar.

olá Marcela.

      Como te disse em chat (e no post anterior), o Sistema WiFi-Bluetooth já está funcionando.

      Porém eu já havia iniciado também a parte de "Autenticação Bluetooth". Essa autenticação irá aumentar a segurança do Sistema, referente ao Bluetooth.

      Quando alguém se conectar via Bluetooth, o Sistema requisita uma senha para que este alguém possa controlar os dispositivos. Se a pessoa insere a senha correta, então essa pessoa é autenticada e pode controlar. O Sistema mantém uma Lista das pessoas que já foram autenticadas, e caso a pessoa desconecte e reconecte, não será solicitada a senha novamente.

      E sempre que um novo usuário autentica, esta Lista é gravada na memória não-volátil, de forma que mesmo se vc desconectar a alimentação do ESP32, a Lista será restaurada automaticamente, contendo todos os usuários já autenticados.

      A Lista também tem dois mecanismos anti-falha:  identificadores (formato/versão e assinatura), e CRC (Check de Redundância Cíclica), o que permite o Sistema detectar se ela foi corrompida (por qualquer eventual motivo). E se a Lista for corrompida, o Sistema "zera" a mesma.

      Este Mecanismo de Autenticação é muito importante, pois no Bluetooth do ESP32 não há solicitação de senha para pareamento, o que deixa o Bluetooth totalmente vulnerável a qualquer pessoa (vai aparecer no Smartphone, Tablet, Computador de qualquer um, e não vai pedir senha de pareamento). Então este Mecanismo de Autenticação que criei, irá permitir que somente pessoas que conheçam a senha, consigam controlar os dispositivos.

      Para o WiFi, isso não é necessário, já que a pessoa tem que estar conectada à sua rede local (a qual normalmente já tem senha).

      Para isto, tive que implementar mais uma Máquina de Estados, para gerenciar a "Autenticação Bluetooth". O Diagrama de Estados pode ser  visto na figura a seguir:

(clique na figura para "zoom")

      Então mais uma vez, peço que aguarde só mais um pouco, e em breve publicarei tudo aqui, totalmente funcional (e vc poderá facilmente personalizá-lo).

      Abrçs,

      Elcids

olá Elcids boa tarde, bem lembrado sobre a segurança do Bluetooth, gostei da autenticação do Bluetooth, assim o circuito fico bem seguro, parabéns pelas as  ideias, fico no aguardo

olá Marcela.

      Primeiro, peço desculpas pela demora em retornar, mas seu Sistema exigia mais tempo contínuo dedicado a ele.

      Finalmente considero concluído o Sistema. A última implementação que faltava, era o processo de Autenticação do Bluetooth. Isto exigiu mais duas Máquinas de Estados (e portanto agora existem 5 Máquinas funcionando no Sistema).

      Também fiz uma infinidade de testes, e preparei também as figuras para fazer a publicação aqui (configuração do APP do Terminal Bluetooth no smartphone, além das operações sendo feitas no mesmo).

      Irei postar aqui neste tópico, uma implementação para atender sua necessidade, onde mostro como controlar uma Lâmpada usando o WiFi e o Bluetooth Classic, sem se preocupar com qual estará disponível (claro, as Interfaces são diferentes, devido às características próprias de cada um desses canais de controle).

      Mas também irei abrir um outro item aqui no site, onde irei postar diversos exemplos de implementações, e como usar diversas funcionalidades implementadas no Sistema (há uma "API" para facilitar o uso),  já que há uma infinidade de possibilidades de controle.

      Sobre a Autenticação Bluetooth, ela foi implementada com todas as funcionalidades que descrevi no post anterior. Então ela ficou bastante legal, e permite que a Autenticação seja feita por uma outra Máquina (programa executando no Smartphone, Tablet, ou Computador) ou por pessoas (vc escolhe o modo de operação no seu próprio código, "on the fly" inclusive).

      Irei postar aqui entre hoje e os próximos dias.

     Abrçs,

     Elcids

Olá Elcids, nossa o código vai ficar bem seguro com a autenticação, estou ansiosa para testar o código funcionando em  um só ESP, obrigada pelo seu tempo em nos ajudar, fico no aguardo

olá Marcela.

      Publiquei a implementação em um tópico separado, para facilitar as discussões e eventuais esclarecimentos de dúvidas.

      Muito importante:  lembre-se que a implementação permite usar tanto um APP dedicado como aquele que vc desenvolveu, ou usar um APP genérico de Terminal Serial Bluetooth.  Claro que o exemplo inicial, está sendo usado um APP genérico, conforme combinamos.  Então caso vc tenha alguma dúvida em como usar o Sistema com o APP que vc desenvolveu, não deixe de perguntar (mas é muito simples o uso).

      Caso precise de meu Skype para tirar dúvidas que sejam mais difíceis de esclarecer aqui pelo site, me avise através de um email que te atenderei por lá (Skype).

      Irei também publicar diversos exemplos de como usar os recursos disponíveis na implementação, desde os mais simples até os mais sofisticados.

      O link da publicação é este:

      http://labdegaragem.com/forum/topics/implementa-o-do-pcom-wifi-blue...

      Abrçs,

      Elcids

Boa noite Elcids , Agradeço muito pelo esforço em nos ajudar e resolver nossas duvida aqui no LBG, ficou muito 10 esses projetos das duas interface wifi e bluetooth rodando juntos, só vc mesmo com suas ideias e sabedoria para nos ajudar valeu mesmo muito obrigada, estou fazendo um apk para android para rodar junto com o código, já posto ele aqui  

olá Marcela.

      Estarei em breve complementando o post da publicação, com exemplos diversos  ilustrando o uso dos recursos, tanto Bluetooth como WiFi.

      Embora o Sistema seja um tanto "sofisticado", é simples o seu uso. Mas eu entendo que sem mais exemplos a coisa pode ficar mais inacessível.  Assim, caso vc tenha alguma dificuldade em usar a Interface com o "PCOM Bluetooth/WiFi",  não deixe de perguntar.

      Abrçs,

      Elcids

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço