Bluetooth Terminal

このアプリは、Android端末とBluetoothデバイスの間で、RFCOMMを利用してシリアル通信する為のプログラムです。
データをアスキー形式又はバイナリ(16進数)形式で入力して、Bluetoothデバイスと送受信することが出来ます。
Android+Bluetoorh+Arduinoのような環境で、デバイスを自作する時に動作をテストする為に勉強を兼ねて作成してみました。(つまり、このアプリはデバイスを作成するような方でなければ、利用価値はありません)

サンプル画像

Bluetooth Terminal(ASCII mode) Bluetooth Terminal(Binary mode)

使い方

アプリを起動すると、接続待機状態になります。
デバイス側がマスターで有れば、この状態で接続が可能です。

  • 送受信表示
    画面は、送受信のログが表示されます。
    受信データは赤色
    送信データは青色
    で表示されます。
     
  • データ送信
    BTデバイスと接続後、画面下の文字入力欄に文字を入力して送信ボタンを押すと、データが送信されます。
    アスキーモード時には入力した内容がそのまま送信されます。
    バイナリモード時では入力文字を16進変換して送信します。バイナリモード時に入力出来る文字は0-9A-Fのみです。その他の文字を入力すると送信に失敗します。
     
  • スレーブ機器に接続
    menuからconnect a deviceを選択すると、デバイス一覧が表示されます。
    この中から接続したいデバイスを選択して接続を行います。
    Bluetooth Terminal デバイス選択画面
     
  • アスキー/バイナリのモード変更
    menuからASCII<>Binaryを選択して切り換えます。
     

ダウンロード

現在、Android Market からダウンロードが可能です。
以下のQRコード・リンクをご利用下さい。

market://search?q=pname:com.byte256.bluetoothterminal

問題点

時々、謎の挙動をしますが、それは仕様です。orz

最後に

このアプリでは、HT-03A(Android 1.6)で動作させる為に、esmasuiさんの作成されたbackportライブラリを利用しています。
このアプリは、android.comのサンプルコード BluetoothChatを元に改良しています。

4 Comments / コメント

  1. D.O says:

    すみません、「Bluetooth Terminal」についてのコメントではないのですが、AndroidのBluetoothについての質問です。

    当方、Android端末と他のBluetoothデバイスとの通信を行いたいと思っているのですが、うまく通信が行えません。
    どのようにすれば通信できるのでしょうか?

    「ソフトウェア技術ドキュメントを勝手に翻訳」というサイトのAndroidのBluetoothに関する記事(http://www.techdoctranslator.com/android/guide/bluetooth)を読んでみたのですが、Bluetoothで接続する場合、サーバーソケットとクライアントソケットを互いに生成して、ソケット通信のようなものを行うと記載されていました。

    しかし、Android端末ではないBluetoothデバイスの場合、ソケットを生成する事が出来ないので、そこで行き詰ってしまいました。

    この「Bluetooth Terminal」は、Android端末と他のBluetooth機器との通信を行っているようなので、今回質問させていただきました。
    もしよろしければ、ご教授頂けると幸いです。

    • Futaba says:

      コメント有り難うございます。

      内容からしますと、プログラムを組みたいと言うことなのでしょうか?
      D.Oさんがどの程度の知識が有るのかが分からないとアドバイスが出来ないのですが・・・
      基本的な質問なのですが、D.Oさんはandroidアプリの作り方はご存知ですか?
      「勝手に翻訳」のサイトを見られて、実際にプログラムは組まれましたか?

  2. D.O says:

    返信が遅くなり、すみません。

    説明不足ですみません。
    はい、プログラムを組みたいという事です。
    Buletoothデバイスをディスカバリするところまでは、実際に組んでみました。

    自分は、Javaについて多少勉強し、最近Androidについて勉強し始めたところです。

    実際の所、何をやりたいかというと、Android端末とBluetoothデバイスとの通信を行って、RSSI(受信電波強度)を取得したいと思っています。
    その為、質問をさせていただきました。

    ご回答いただけるなら、コメント欄を使わせていただくのも申し訳ないので、メールで連絡して頂いても結構です。
    よろしくお願いします。

    • Futaba says:

      Buletoothデバイスをディスカバリするところまで組まれたと言うことは、androidプログラミングの知識は有るようですね。
      失礼しました。

      しかし、ごめんなさい、僕はRSSIの取得については知識が有りません。
      Android端末でRSSIの取得が出来るのかどうかも分かりません。

      ちなみに、対象のbluetoothデバイスはシリアルプロファイル対応なのでしょうか?
      シリアルプロファイルに対応しているのであれば、公式のサンプルのbluetooth chatに挑戦されては如何でしょうか?
      このサンプルを読めば、デバイスとの接続~通信の流れが良く分かると思います。
      当然ながらandroid端末間だけでなく、シリアルプロファイルに対応したデバイスであればchat(通信)できます。
      当アプリも、bluetooth chatを元に作っています。

      >bluetooth chat
      http://developer.android.com/intl/ja/resources/samples/BluetoothChat/index.html

      >しかし、Android端末ではないBluetoothデバイスの場合、ソケットを生成する事が出来ないので、そこで行き詰ってしまいました。

      android端末側でソケットを生成する時に指定するのは、ペアリング済みのbluetoothデバイスのアドレスです。
      先のbluetooth chatの例で言うと、DeviceListActivityから返されるアドレスの文字列となります。

      >DeviceListActivity
      http://developer.android.com/intl/ja/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/DeviceListActivity.html

      説明が下手で申し訳ありません。
      あと、他の方の参考になるかもしれませんので、コメント欄を利用して頂ける方が、僕としては有りがたいです。

Leave a Reply / コメントをどうぞ

(required)

(required),(Hidden)


This site is described in Japanese.
rss feedRSS Feed
Follow curry_man on Twitter
FUTABA WEBでも、ブログやってます。

Pages

Category

Recent Entries

Recent Comments

Tag Cloud