Leer desde el dispositivo bluetooth Androi...- Mind Map

Leer desde el dispositivo bluetooth Android
Desarrolla un programa en EMBARCADERO
que tiene la capacidad de recibir ASCCI desde
el microcontrolador al dispositivo Android vía
bluetooth

Dato histórico
El microprocesador surgió de la evolución de distintas tecnologías predecesoras, básicamente de la computación y de la tecnología de semiconductores. El inicio de esta última data de mitad de la década de 1950; estas tecnologías se fusionaron a principios de los años 1970, produciendo el primer microprocesador.

Marco teórico
El microprocesador es el circuito integrado central más complejo de un sistema informático; a modo de ilustración, se le suele llamar por analogía el «cerebro» de un ordenador.

Materiales
Computadora con embarcadero instalado
Celular Android
Modulo Bluetooth
PIC 18F4620

unit Bluetooth_menu;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
Androidapi.JNI.BluetoothAdapter,
Androidapi.JNI.JavaTypes,
Androidapi.JNIBridge,
Android.JNI.Toast,
Androidapi.Helpers,
FMX.ListBox, FMX.Layouts, FMX.Memo, FMX.Edit, FMX.Objects, FMX.ListView.Types,
FMX.ListView, System.Rtti, FMX.Grid, Data.Bind.GenData,
System.Bindings.Outputs, Fmx.Bind.Editors, Data.Bind.EngExt,
Fmx.Bind.DBEngExt, Data.Bind.Components, Data.Bind.ObjectScope,
FMX.Controls.Presentation;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Timer1: TTimer;
Timer2: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
targetMAC:string; // MAC ADRESS del bluetooth
ostream:JOutputStream; // variable de salida para bluetooth
istream:JInputstream; // variable de entrada para bluetooth
uid:JUUID; // variable del dispositivo identificador universal unico
Sock:JBluetoothSocket; // variable de tipo clase
Adapter:JBluetoothAdapter; // variable del adaptador local bluetooth
remoteDevice:JBluetoothDevice; // variable de tipo clase
bandera:boolean;
end;

var
Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=checkBluetooth; // habilita el bluetooth
Toast(s); // imprime si el bluetooth esta habilitado

//dispositivo identificador universal unico UID
uid:=TJUUID.JavaClass.fromString(stringtojstring('00001101-0000-1000-8000-00805F9B34FB'));

targetMAC:='00:18:E4:40:00:06'; // MAC ADRESS del bluetooth
if trim(targetMAC)='' then
exit;
Adapter:=TJBluetoothAdapter.JavaClass.getDefaultAdapter;
remoteDevice:=Adapter.getRemoteDevice(stringtojstring(targetMAC));
Toast('Conectando...');
sock:=remoteDevice.createRfcommSocketToServiceRecord(UID);
try sock.connect;
except Toast('No hay servicio!');
end;
if not sock.isConnected then
begin
Toast('coneccion faida '+targetMAC+'! intente despues...');
exit;
end;
Toast('conectado!');

BUTTON1.TintColor:=$FF00FC9A;
button1.Text:='Conectado';
bandera:=true;
ostream:=sock.getOutputStream; // asigna la variable como salida
istream:=sock.getInputStream; // asigna la variable como entrada
TIMER1.Enabled:=TRUE;


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if bandera=true then
begin
ostream.write(ord(43)); // envia el caracter '+' = #4
button1.TintColor:=0;
close();
end else
begin
button1.TintColor:=0;
close(); // cierra la aplicacion
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if bandera=true then
begin
ostream.write(ord(85)); // envia el caracter 'U' = #8
sleep(100);
ostream.write(ord(85)); // envia el caracter 'U' = #8
sleep(100);
ostream.write(ord(85)); // envia el caracter 'U' = #8
sleep(100);
ostream.write(ord(85)); // envia el caracter 'U' = #8
sleep(100);
ostream.write(ord(85)); // envia el caracter 'U' = #8
sleep(100);
ostream.write(ord(85)); // envia el caracter 'U' = #8
sleep(100);
button6.TintColor:=0;
button5.TintColor:=0;
button4.TintColor:=0;
button3.TintColor:=$FF01FE7F;
end else
begin
Toast('Presione boton Conectar!');
exit
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if bandera=true then
begin
ostream.write(ord(87)); // envia el caracter 'W' = #8
sleep(100);
ostream.write(ord(87)); // envia el caracter 'W' = #8
sleep(100);
ostream.write(ord(87)); // envia el caracter 'W' = #8
sleep(100);
ostream.write(ord(87)); // envia el caracter 'W' = #8
sleep(100);
ostream.write(ord(87)); // envia el caracter 'W' = #8
sleep(100);
ostream.write(ord(87)); // envia el caracter 'W' = #8
sleep(100);
button3.TintColor:=0;
button6.TintColor:=0;
button4.TintColor:=$FF01FE7F;
button5.TintColor:=0;
end else
begin
Toast('Presione boton Conectar!');
exit
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if bandera=true then
begin
ostream.write(ord(77)); //envia el caracter 'M' = #7
sleep(100);
ostream.write(ord(77)); //envia el caracter 'M' = #7
sleep(100);
ostream.write(ord(77)); //envia el caracter 'M' = #7
sleep(100);
ostream.write(ord(77)); //envia el caracter 'M' = #7
sleep(100);
ostream.write(ord(77)); //envia el caracter 'M' = #7
sleep(100);
ostream.write(ord(77)); //envia el caracter 'M' = #7
sleep(100);
button5.TintColor:=$FF01FE7F;
button6.TintColor:=0;
button3.TintColor:=0;
button4.TintColor:=0;
end else
begin
Toast('Presione boton Conectar!');
exit
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if bandera=true then
begin
ostream.write(ord(48)); //envia el caracter '0' = #4
sleep(100);
ostream.write(ord(48)); //envia el caracter '0' = #4
sleep(100);
ostream.write(ord(48)); //envia el caracter '0' = #4
sleep(100);
ostream.write(ord(48)); //envia el caract

Javier Alejandro Gutierrez de León

Kattintson ide a térkép középre állításához
Kattintson ide a térkép középre állításához