AS的APP接收HC-06蓝牙模块数据
总体思路
这是我的一次课程设计,要求是下位机端用阅读器、单片机读出高频卡的卡号,上位机端通过HC-06蓝牙模块进行数据的接收,并做成小型的图书馆系统,具有借书、还书、注册登录、查询等功能。
下位机端
虽然我是物联网的学生,但是无奈硬件知识很垃圾,使用的是51单片机和RC522阅读器,进行刷卡,显示卡号,首先要确保在串口上有正确的卡号输出,这样下位机才算完成。
上位机端的代码其实就是51单片机的代码,用的是KEIL软件编写的,其实是复制粘贴的,代码很好用,我会上传上来的。具体操作就是编译生成二进制文件(.hex),利用串口调试助手下载到单片机上,再打开串口,会发现接收到:+12f34e37.
+12f34e37.
+12f34e37.
其中(12f34e37)为高频卡的卡号,每一张卡都是不一样的,我在输出中添加了+.是为了传到上位机后,来作为识别一串卡号的标志,当然其它标志或其他方法都是可以的。
上位机端
关于使用的软件:
这学期课程有Android Studio的学习,所以用这个软件进行APP的设计开发,另外其带有轻量级的数据库,所以就没有使用MYSQL、SQL,还下载了SQLiteStudio,以方便的进行数据库的建立与表的动态操作。
关于设计思路
1.首先接收下位机端传来的数据,即读到的卡号,这里采用了蓝牙模块,因此上位机端要设置蓝牙适配器,获得已配对的设备,从设备中找到要连接的设备建立连接并获取输入流。
以下为java的代码,布局文件先不贴了
public class Library extends Activity {
private BluetoothAdapter mBtAdapter;
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
private Button bt_dk;
private TextView rl_error;
InputStream inStream = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.o