电工之家_电工基础知识学习网站
当前位置:电工之家 > 电子技术 > 正文

手机java蓝牙通信协议编程和电路图

时间:2016-04-16 09:41 来源:电工之家

1 开发环境配置
首先安装J2SE即JDK(jdk-6u22-windows-i586-p.exe),安装完成后,在“我的电脑—》属性—》高级”中,配置java环境变量,设置3项属性,JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”, JAVA_HOME指明JDK安装路径,PATH使得系统可以在任何路径下识别java命令,设为%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar。
接着安装WTK(sun_java_wireless_toolkit-2_5_2-ml-windows) ,默认路径是C:\WTK25。WTK 的全称是Sun J2ME Wireless Toolkit ,是Sun的无线开发工具包。以上软件均可以在sun的官方网站免费下载。
最后安装Eclipse作为开发环境,J2ME开发包工具可以被绑定在这些集成开发环境中,进一步提高开发效率。本设计用的是Eclipse3.6.2和EclipseMe1.7.9版本的软件。
2 蓝牙连接
手机蓝牙和蓝牙串口模块之间的连接,是程序设计的重点,也是难点。这个连接过程就是创建一个蓝牙客户端,分查找设备、查找服务、获得连接URL和建立连接4个主要步骤。具体代码如下:
//查找蓝牙设备
public void MyInquiry() {
try {
//获得本地设备
LocalDevice localDevice = LocalDevice.getLocalDevice();
//获得发现代理
discoveryAgent = localDevice.getDiscoveryAgent();
//开始查找设备
discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this);
} catch(Exception e) {
e.printStackTrace();
}
}
// DiscoveryListener接口,记录已找到蓝牙设备并显示
public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass cod) {
try{
sel.append(remoteDevice.getFriendlyName(true),null);
} catch(Exception e){
sel.append(remoteDevice.getBluetoothAddress(),null);
} finally{
remoteDevices.addElement(remoteDevice);
}
}
// DiscoveryListener接口,查找设备完成
public void inquiryCompleted(int discType) {
if (remoteDevices.size() > 0) {
//加入其它代码,如查找服务
}
else {
}
}
//查找服务
public void MyServices(){
try {
RemoteDevice remoteDevice = (RemoteDevice)remoteDevices.elementAt(sel.getSelectedIndex());
discoveryAgent.searchServices(attrSet, uuidSet, remoteDevice , this);
} catch(Exception e) {
e.printStackTrace();
}
}
// DiscoveryListener接口,服务查找成功,得到连接ULR
public void servicesDiscovered(int transID, ServiceRecord[] servRecord){
DataElement serviceNameElement = servRecord[sel.getSelectedIndex()].getAttributeValue(0x0100);
String _serviceName = (String)serviceNameElement.getValue();
String serviceName = _serviceName.trim();
btConnectionURL = servRecord[sel.getSelectedIndex()].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
}
//DiscoveryListener接口,查找服务完成
public void serviceSearchCompleted(int transID, int respCode) {
if (respCode == DiscoveryListener.SERVICE_SEARCH_COMPLETED) { } else {}
}
//打开连接,建立输入、输出通道
StreamConnection connection = (StreamConnection)Connector.open(btConnectionURL);
经过以上步骤,手机和蓝牙串口模块建立起了连接,用read、write方法可以互相通信,传输数据了。
手机java蓝牙通信协议编程和电路图
手机java蓝牙通信协议编程和电路图
手机java蓝牙通信协议编程和电路图
3 波形显示
把以前的示波器加了蓝牙模块,测试程序用的是三星S3370手机,屏幕分辨率为320x240,屏幕上、下侧用于显示手机状态和按键信息,实际可编程使用的分辨率为200x240,上部170x240部分显示波形,下部30x240显示量程、周期选择菜单。按示波器的习惯把显示波形的界面画出格子,通过查格子可以大致判断波形的幅值和周期。效果图如下:
手机java蓝牙通信协议编程和电路图

看过《手机java蓝牙通信协议编程和电路图》的人还看了以下文章
手机充电器给电子钟供电的技改方法 手机充电器给电子钟供电的技改方法
1、如果你家的电子钟是个简单的1.5V电池的,我劝你不要去搞市电来作电源,为这一点电压单独插在市电上的电损费用就超过一节电池的价钱。对于那些电源为3V~5V的电子钟,我倒主张外接一个市电作电源,具体如下: 2、每个人家中都有几个过时的手机充电器,它...
怎么自己DIY一个蓝牙鼠标 怎么自己DIY一个蓝牙鼠标
目前的无线鼠标,主流的无线数据通讯有三种方式:蓝牙通讯、2.4G通讯、27MHz红外等。我们平常使用的无线鼠标以2.4G居多。 DIY蓝牙鼠标要从两种情况去考虑。 1.电脑不带蓝牙功能 无线通讯都需要两个设备,即一个发送数据,另一个接收数据,接收/发送设备永远...
手机wifi控制电灯开关 手机wifi控制电灯开关
手机wifi控制电灯开关 智能手机即能控制电器灯光,使用非常方便。通讯方式采用高可靠TCP/IP以太网协议。可控制多路的电气设备、灯光等电源的通断电。可广泛应用于智能家居生活、工业自动化控制等场所。程序界面按钮文字用户可自行修改保存。设置界面要求密码...
手机无线充电的原理图解 手机无线充电的原理图解
无线充电系统主要采用电磁感应原理,通过线圈进行能量耦合实现能量的传递,原理类似于变压器。在发送和接收端各有一个线圈,发送端线圈连接有线电源产生电磁信号,接收端线圈感应发送端的电磁信号从而产生电流给电池充电。 物理学家早就知道,在两个共振频率...
手机基带没了怎么办?基带坏了怎么办 手机基带没了怎么办?基带坏了怎么办
手机基带没了怎么办?基带坏了怎么办 基带处理网络通信的系统文件。基带是手机中的一块电路,负责完成移动网络中无线信号的解调、解扰、解扩和解码工作,并将最终解码完成的数字信号传递给上层处理系统进行处理。 刷基带能提高信号的好坏,不同的基带可以把它...