GPRS通信

View Source

日本国内にはGPRSでの通信サービスを提供している通信会社はありません。 そのため、日本国内では事実上使用できません。 また、電源を入れると電波法違反になります。

手順1

以下のコマンドを入力して、「tessel-code」ディレクトリーの中に、もうひとつディレクトリーを作ってください: mkdir gprs いま作ったディレクトリーの中に移ってください。 cd gprs

手順2

写真のように、GPRSモジュールにアンテナを接続し、SIMカードを挿しこんでください(SIMカードは当製品には含まれていません)。

手順3

ジャンパーピンが3.3Vと書かれたピンにつながっていることを確認して下さい。Externalと書かれたピンにつながっている場合は、ジャンパーピンを取り外し、3.3Vに繋ぎ直してください。

手順4

GPRS通信(gprs)モジュールをTesselのポートAに挿しこんでください。このとき、六角形のTesselロゴの面が裏側、電子部品が有る側を表側になるようにしてください。最後に、TesselとパソコンをUSBケーブルで接続してください。

手順5

以下のコマンドを入力して、パッケージをインストールしてください。npm install gprs-sim900

手順6

gprs.jsという名前のファイルを作成し、以下の内容を書き込んで保存してください。

// Any copyright is dedicated to the Public Domain.
// http://creativecommons.org/publicdomain/zero/1.0/

/*********************************************
Use the GPRS module to send a text to a phone
number of your choice.
*********************************************/

var tessel = require('tessel');
var hardware = tessel.port['A'];
var gprslib = require('gprs-sim900');

var phoneNumber = '##########'; // Replace the #s with the String representation of the phone number, including country code (1 for USA)
var message = 'Text from a Tessel!';

//  Port, callback
var gprs = gprslib.use(hardware); 
gprs.on('ready', function() {
  console.log('GPRS module connected to Tessel. Searching for network...')
  //  Give it 10 more seconds to connect to the network, then try to send an SMS
  setTimeout(function() {
    console.log('Sending', message, 'to', phoneNumber, '...');
    // Send message
    gprs.sendSMS(phoneNumber, message, function smsCallback(err, data) {
      if (err) {
        return console.log(err);
      }
      var success = data[0] !== -1;
      console.log('Text sent:', success);
      if (success) {
        // If successful, log the number of the sent text
        console.log('GPRS Module sent text #', data[0]);
      }
    });
  }, 10000);
});

//  Emit unsolicited messages beginning with...
gprs.emitMe(['NORMAL POWER DOWN', 'RING', '+']);

gprs.on('NORMAL POWER DOWN', function powerDaemon () {
  gprs.emit('powered off');
  console.log('The GPRS Module is off now.');
});

gprs.on('RING', function someoneCalledUs () {
  var instructions = 'Someone\'s calling!\nType the command \'ATA\' to answer and \'ATH\' to hang up.\nYou\'ll need a mic and headset connected to talk and hear.\nIf you want to call someone, type \'ATD"[their 10+digit number]"\'.';
  console.log(instructions);
});

gprs.on('+', function handlePlus (data) {
  console.log('Got an unsolicited message that begins with a \'+\'! Data:', data);
});

//  Command the GPRS module via the command line
process.stdin.resume();
process.stdin.on('data', function (data) {
  data = String(data).replace(/[\r\n]*$/, '');  //  Removes the line endings
  console.log('got command', [data]);
  gprs._txrx(data, 10000, function(err, data) {
    console.log('\nreply:\nerr:\t', err, '\ndata:');
    data.forEach(function(d) {
      console.log('\t' + d);
    });
    console.log('');
  });
});

//  Handle errors
gprs.on('error', function (err) {
  console.log('Got an error of some kind:\n', err);
});

手順7

上記のプログラム中の「##########」を、SMSを送りたい相手の電話番号(国識別番号付き)に変えてから、もういちど保存してください。

以下のコマンドを入力してください。tessel run gprs.js

10〜20秒したら、その電話機にSMSが届くはずです。

うまく行かない場合は、「NET LIGHT」とマークしてある緑色のランプをチェックしてください。もしも、3秒に1回よりも速く点滅している場合は、電波強度が弱くてSMSを送信できない事を意味しています。

おまけ:コマンドラインを使って、モジュールとやりとりしてみましょう。

Tesselからあなたの電話機にテキストを送るのに成功したら、返信してみましょう。すべてうまく動けば、Tesselがあなたの電話機からSMSを受け取るとコマンドラインで知らせてくれます。Tesselに送ったテキストを読むには、at+cmgr=xと入力してください。xにはコマンドラインに表示されたお知らせ文に書かれている数字を入れてください。

GPRS通信モジュールの機能についてもっと知りたい場合は、モジュールのドキュメントを参照してください。

手順8

GPRS通信モジュールは外部電源端子を使って外部から電源をとることができます。外部から電源をとるとより多くの電流が使えるので、正常に働く可能性が高くなります。もし、GPRS通信モジュールを使おうとしたらTesselが反応しなくなるようなことがあったら、外部電源に替えてみてください。

図の緑色で囲ったところのジャンパーピンを付け替えて、Externalと書かれたピンと3.3Vと書かれたピンをつなぎます。さらに、ピンクで囲まれた中にあるふたつの黒い矢印のうちどちらかに外部電源のグラウンド(マイナス側)を、ふたつの赤い矢印のうちひとつに外部電源のプラス側をつないでください。

手順9

あなたはこの gprs で他に何を行うことができますか コミュニティプロジェクトを試してみてください

あなたは何を作っている あなたの本を共有する

何か困ったことがあったら、GPRS通信モジュールの掲示板で聞いてみてください。

他のモジュールを試す

あるいは、ここを飛ばして無線LANに進んでください。

Fork on Github