Bom dia pessoal. Estou com um problema no meu código do TCC. Na parte em azul... que se refere ao bluetooth. Nas demais (parte da relé) está tudo ok. O que acontece é o seguinte. Eu preciso que ao disparar o pulsador, o comando enviado para o relé seja enviado ao mesmo tempo para o bluetooth. Desenvolvi um aplicativo que está esperando esse sinal para disparar uma foto.

Essa parte que eu fiz do bluetooth está enviando o comando "a" do Aplicativo para o Arduino. Porém eu preciso que faça o comando inverso. Ao apertar na campainha o comando vá para relé e mande esse "a" para o App ler. É possível fazer isso? O que eu preciso mudar no código?

PS: Tem esboço do projeto logo abaixo para melhor entendimento. Agradeço desde já.

Código:

#include <SoftwareSerial.h>

   int porta_rele = 7;      //Porta ligada ao pino IN1 do modulo
   int porta_botao = 2;   //Porta ligada ao botao
   int estadorele = 1;     //Armazena o estado do rele - 0 (LOW) ou 1 (HIGH)
   int leitura = 0;           //Armazena o valor lido do botão

   //Bluetooth
   int readBluetooth;    //Variável que irá receber o valor enviado do bluetooth para o celular
   int lamp = 7;           //Porta usada para saída ao relé e ao bluetooth simultaneamente

void setup(){
   pinMode(porta_rele, OUTPUT);    //Define pino para o rele como saida
   pinMode(porta_botao, INPUT);     //Define pino do botão como entrada
   digitalWrite(porta_rele, HIGH);      //Estado inicial do rele - desligado

   //Bluetooth
   Serial.begin(9600);              //Inicia comunicação serial
   pinMode(lamp, OUTPUT);   //Definindo o pino 7 como saída
}

void loop(){
   leitura = digitalRead(porta_botao);         //Verifica o acionamento do botao
   if (leitura != 0){
        while(digitalRead(porta_botao) != 0){
        delay(100);
        }
   estadorele = !estadorele;                 //Inverte o estado da porta
   digitalWrite(porta_rele, estadorele);   //Comando para o rele
   }
   //Bluetooth
   if(Serial.available()){
      readBluetooth = Serial.read();
        if(readBluetooth == 'a'){
        digitalWrite(lamp,!digitalRead(lamp));     //Escreve o que leu na porta negado
        }
   }
}

Esboço do projeto

Exibições: 614

Responder esta

Respostas a este tópico

Boa dia.
Qual aplicativo voce esta usando.
porque se for pelo app inventor, não consegui fazer ele receber letra apenas numeros.

porque da forma que voce escreveu ele esta enviando o estado da lampada ao app.
porem ele envia o estado em binario, 0 ou1 por isso seu app nao consegui ler

Na verdade o problema nem é o App agora... no caso o meu código ali tá errado mesmo... ali eu estou enviando um comando do App para o Arduino... e eu preciso que seja ao contrário, no caso ao apertar a campainha o Arduino mande esse comando para o App.

Bom dia

Eu tenho um projeto de um APP  jogo da velha, que tando envia dados para o arduino, como recebe também. 

para enviar os dados eu uso 

Serial.println ("dado");

meu app foi feito no APP inventor.

espero que ajude

veja a parte do código que recebe o que foi escrito na serial:

Muito bom cara! Consegui resolver o meu problema de chamar a câmera. Valeu pelas informações.

Me tira uma dúvida cara... por exemplo no meu caso eu chamo a câmera quando aperto o botão da minha campainha aqui, porém depois que eu capturo a foto eu não consegui fazer voltar a tela inicial do aplicativo... ele tira a foto e fica na câmera. Tu teria uma ideia de como fazer isso? Vi ali que tu colocou um "close application", porém eu não queria fechar todo aplicativo, queria apenas voltar para tela inicial. Valeu!

Oi Romulo, para enviar algo para o Bluetooth voce deve user Seria.print().

Abraços

Isso Alexandre! Fiz algumas modificações aqui após pesquisar e consegui fazer funcionar! Valeu!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço