LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: poliveira1978 em 14 de Abril de 2013, 21:27
-
Venho pedir ajuda mais uma vez...
Pretendia enviar uma mensagem do arduino para o telemóvel com bluetooth, estou a usar este código:
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
#define ledPin 12
SoftwareSerial BlueTooth = SoftwareSerial(rxPin, txPin);
char incomingByte;
void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
BlueTooth.begin(9600);
Serial.begin(9600);
BlueTooth.println("Teste de Bluetooth");
}
void loop()
{
if (BlueTooth.available() > 0)
{
incomingByte = BlueTooth.read();
switch(incomingByte)
{
case '0':
{
digitalWrite(ledPin, LOW);
BlueTooth.println("LED OFF. Press 1 to LED ON!");
break;
}
case'1':
{
digitalWrite(ledPin, HIGH);
BlueTooth.println("LED ON. Press 0 to LED OFF!");
break;
}
}
}
}
Mas sou "obrigado" a usar o bluetooth terminal no android... o que pretendo é apenas enviar uma mensagem logo após o emparelhamento. Acho que tenho que usar o protocolo OBEX, mas não conheço/encontro nenhuma implementação para o arduino...
Agradeço toda e qualquer ajuda.
Cumprimentos,
Pedro
-
Boas.
Nunca usei esse OBEX, mas já fiz várias coisas com arduinos + BT, não sei exactamente para que é que precisas desse protocolo... Podes fazer simplesmente reads e writes, e depois interpretar os dados do lado do telefone, será provávelmente mais simples do que implementar protocolos mais complexos no arduino.
Em relação a enviares uma mensagem apos o emparelhamento, isso agora já vai depender do módulo utilizado... Para descobrires se o módulo está ligado ou não, terias de ver na datasheet se ha algum comando que te permita ver o estado dele.
Para que vai servir essa mensagem? E vais fazer uma app para o telefone ou apenas usar um programa de terminal qualquer já feito?
-
é para ser usado como "farol" numa cache (http://www.geocaching.org).
Eu consigo emparelhar o telemóvel e o módulo bt e trocar mensagens, mas tenho que usar uma aplicação de terminal e era isso que pretendia evitar, se conseguisse que o arduino enviasse a mensagem logo após o emparelhamento era o ideal.
-
Bem outra opção, assumindo que o módulo tem um led que acende quando se liga, ou um pino que muda de estado quando ele se liga, podes ligar esse pino ao arduino e ir fazendo digitalRead para descobrir quando é que alguem se ligou. Com os módulos que eu costumo usar daria para fazer isso, agora mais uma vez depende do que estiveres a usar...