1

センサーがトリガーされたときに特定の通知を通信し、SMSを介してコマンドを受信するために、ArduinoとインターフェイスするGSMモジュールを使用するプロジェクトのコードを書いています。そのようなコマンドの1つは、SMSを介して「コールアウト」番号を設定することです。IE「Set」という単語をGSMモジュールに送信すると、メッセージを受信した番号が、センサーがトリガーされたときにGSMモジュールが呼び出す新しい番号になります。

コードでデフォルトの電話番号を初期化する必要があります。

char ph_number[]="+35387914xxxx";

次に、私のプログラム内に、「Set」コマンドを含むSMSをチェックするコードがあります。その場合は、ph_number=を送信者番号に設定します。

次に、Arduinoがリセットされた場合でも、新しいSetコマンドを受信するまで、その新しい番号を永続的に保存してデフォルトのコールアウト番号にする必要があります。これを行う方法はありますか?それも可能ですか?

4

2 に答える 2

2

FLASHまたはEEPROMの特別な場所に保存し、起動時にそこから読み取ることができます。

于 2013-03-26T12:37:39.597 に答える
1

Arduino EEPROMライブラリを使用して、EEPROMの読み取り/書き込みを行うことができます。これにより、一度にメモリ内の1つのポイントにアクセスできます。スケッチの例は、次のようになります。

#include <EEPROM.h>

int a = 0;
int value;

void setup()
{
  a = EEPROM.read(0); //reads from point 0 in the memory (the first point)
}

void loop()
{
   value = analogRead(A0);
   if(value != a){
       a = value;
       EEPROM.write(0, a);
   }
}

文字を保存する場合、保存する前に最初に同等の10進数に変換され、後で再度変換する必要があります。また、メモリ内の各ポイントは最大値が255の1バイトのデータしか格納できず、EEPROMの読み取り/書き込みの数は限られていることを覚えておくことも重要です。工場出荷時に指定された最大値は100000ですが、おそらくそれより高くなる可能性があります。

于 2013-04-10T22:22:59.180 に答える