This site is described in Japanese.

Bluetooth Terminal

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

Android 端末同士では接続できません。 つまり、このアプリは電子工作等でBluetoothデバイスを作成するような方でなければ、利用価値はありません。

接続するBluetoothデバイスは、SPP(シリアルポートプロファイル)に対応している必要があります。

Ver 1.**はAndroid OS 1.6用、Ver 2.**はAndroid OS 2.1以降用となっています。
動作確認は、HT03AとNexus Oneで確認しています。

サンプル画像

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コード・リンクをご利用下さい。

for Android OS 2.1 or later

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

for Android OS 1.6

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

 

更新履歴 & APK-FILE

Version Memo
Ver 2.0.0 (2011/5/8) Android OS 2.1以降向け
Ver 1.01 (2011/5/8) Android OS 1.6のみに指定
Ver 1.00 初公開バージョン

Android Market を使えない環境の方向けにAPKファイルを公開しています。
 

問題点

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

最後に

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

 

14 Comments / コメント

  1. D.O より:

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

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

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

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

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

    • Futaba より:

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

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

  2. D.O より:

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

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

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

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

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

    • Futaba より:

      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

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

  3. Guenther より:

    I am interested in your application “S2 Bluetooth Terminal”. Where can i download the app file ? The adroidpit market is not working with my android.
    Many Thanks in advance.
    Guenther

  4. Olaf より:

    Hello,
    I am very interested in your application, to learn more about BT Connection via SPP. Can you please send me the completed source Code or simple Text files with the needed names and position, so that I can look what I must make ? I have load your Files here from the page but i can’t open them in eclipse, I think because of the language.

    Best Regards and many Thanks in Advance.

    Olaf

  5. mrk より:

     BluetoothはHIM-C46A(http://www.himico.com/)、PICはPIC18F2550を使い、PIC-パソコン間で無線加速度計測をしています。
     パソコンだけでなく、Android端末でも計測できるようにと考え、“S2 Bluetooth Terminal”を使ってみたところ、問題なくデータを送受信できました。“S2 Bluetooth Terminal”に機能を追加して、グラフ表示とデータ保存をしたく、EclipseによるAndroid開発環境を整え、BluetoothChatを参考に開発しようとしてるのですが、JAVAの扱いに慣れていなく、開発に難儀しております・・・。もし可能でしたら、開発の参考として、ソースを公開いただけないでしょうか?よろしくお願いいたしますm(__)m

  6. Fred より:

    Hello… Can you give me the source code of this project?
    I am developed, a program that comunicate with android and arduino, and android with pc.

    Thanks for your Atention ;)

  7. John より:

    I am very interested to learn from your code. Could you please send me the source for Bluetooth Terminal. Regards, John.

  8. John より:

    Please share your code. You learnt from the expampe code and we would like to learn from what you added.
    Please consider sharing.

    Regards,
    John.

  9. Yaron より:

    Hello is it possible to get your terminal bluetooth source code? or at least the part that makes the translation between ascii and binary?
    i need to send and recive binary. it would help a lot.
    thk

    Yaron

  10. John より:

    I don’t think this guy reads any of our comments?
    Regards,
    John.

  11. Kawabe より:

    Bluetooth Terminal を使って Arduino とのBluetoothによる接続が確認できました。Java は初心者なので助かりました。

    • Futaba より:

      コメントありがとうございます。
      だいぶと昔に作ったアプリですが、利用して頂けて嬉しいです。
      最近は高性能なbluetoothのターミナルアプリも出てきているようで、そろそろお役御免かもしれないなと思っていたところですが・・・

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

(required)

(required),(Hidden)

Do you want to show your avatar?


Pages / 固定ページ

Category / カテゴリー

Recent Entries / 最近の投稿

Recent Comments / 最近のコメント

Tags / タグクラウド

私が良く参考にしているAndroid本