Comunicação Bluetooth Usando Intel Galileo
Neste post iremos mostrar como usar o Bluetooth em dispositivos embarcados. O desenvolvimento usará uma placa Intel Galileo Gen2, o módulo de comunicaçao bluetooth HC-06 e a IDE Intel System Studio IOT Edition. Esta é a parte 2 de um tutorial já postado no blog, que ensina como fazer esta comunicação, do ponto de vista do Android
Configuração do Ambiente para usar o Bluetooth
Para começar, caso você ainda não tenha um ambiente Intel System Studio preparado em sua máquina, basta seguir este tutorial aqui do blog.
Criação do projeto
Para criar um novo projeto, vá em “File” e depois em “New Intel Iot Project”, em seguida escolha a linguagem em que se deseja desenvolver.
Clique em Next e em seguida escolha se deseja começar um projeto em branco ou se deseja utilizar um dos modelos disponibilizados, para este tutorial, escolha um projeto em branco – a segunda opção -.
Ao fazer o tutorial citado anteriormente, você deve ter configurado uma placa para desenvolvimento, escolha esta mesma placa novamente:
Será solicitador agora o login e o password da Galileo.
Logo após, caso o seguinte Dialog Box apareça :
Basta clicar em Yes na próxima tela para adicionar a chave RSA e possibilitar a conexão.
Projeto recém criado:
Circuito
Agora que o projeto está criado e a placa configurada, basta fazer a conexão física em uma breadboard da forma como mostrada nas fotos:
App Android
Para Estabelecer a conexão e a comunicação, você pode usar um app Android, chamado Bluetooth Terminal, que pode ser baixado na PlayStore, basta clicar neste link.
Código fonte
Classe Bluetooth
Estes códigos em c++ devem ser adicionados ao seu projeto e executados na Galileo através do Intel System Studio
.H
#include "mraa.hpp" #include <string> #include <fstream> #ifndef BLUETOOTHMODULE_H_ #define BLUETOOTHMODULE_H_ class BluetoothModule : public mraa::Uart{ int styleOfConection; public: BluetoothModule(int style); // aqui o construtor da classe virtual ~BluetoothModule(); // destrutor da classe void sendString(std::string str); // envia dados char readChar(); // le dados }; #endif /* BLUETOOTHMODULE_H_ */
.CPP
#include "BluetoothModule.h" #include "mraa.hpp" #include <string> #include<iostream> #include <fstream> BluetoothModule::BluetoothModule(int style): mraa::Uart(style){ // construtor this->styleOfConection=style; } BluetoothModule::~BluetoothModule() { // destrutor delete this; } void BluetoothModule::sendString(std::string str){ // método que envia mensagens std::string s= "echo "+str+" >/dev/ttyS0"; this->flush(); system(s.c_str()); this->flush(); } char BluetoothModule::readChar(){ // método que recebe mensagens std::string c; if(this->dataAvailable()){ c=this->readStr(1); return (c.c_str())[0]; }else{ return ' '; } }
Serão apresentados aqui as funções e métodos que podem ser utilizados, pois dessa forma, você pode inserí-los no seu código da maneira como preferir.
Para adicionar as classes ao seu código principal, basta inserir :
#include "BluetoothModule.h"
Para instanciar um novo objeto Bluetooth, basta inserir:
BluetoothModule *hc06 = new BluetoothModule(0); // este parâmetro 0 é para indicar que os pinos 0 e 1 da Intel Galileo Gen2 serão utilizados.
msg = hc06->readStr(num); // num é quantos caracteres você deseja receber - Geralmente em comunicações do tipo, nao desejamos receber frases ou textos, apenas um número de indicação, ou algo do tipo, por isso esta função foi construída assim. -
Para conferir se há alguma mensagem à ser tratada – Se não, quer dizer que o módulo esta pronto para receber novos dados. –
hc06->dataAvailable() // retorna True ou False
Para enviar:
hc06->sendString(codeToSend); // codeToSend é a String que você determinar
Funcionamento
Codigo exemplo
#include <iostream> #include <BluetoothModule.h> using namespace std; int main() { BluetoothModule *hc06 = new BluetoothModule(0); hc06->sendString("Tutorial"); // envia a String para o celular String msg = hc06->readStr(15); // recebe a String enviada pelo celular cout<< msg; // printa no terminal que foi aberto ao executar o código return 0; }
Execução
Ao conectar o módulo bluetooth no celular utilizando o app ja citado acima, utilizando este código exemplo, sera enviada uma mensagem escrito “Tutorial” e receberá o que for escrito no app. Como mostrado nas fotos a seguir:
Obs: neste app, vermelho é o que o celular enviou e azul o que ele recebeu da galileo
Duvidas? Entre em contato comigo no E-mail: moc.liamtohnull@32noimsolrac





Olá estou tentando rodar esse mesmo codigo na minha galileo gen 2, mas ao executar me vem a seguinte msg de erro: Invalid preprocessor directive: #include
Na classe BluetoothModule.h