ワイヤレス掲示板は、単なる掲示板ではなく、非常に広い範囲を持っているため、このプロジェクトでは非常に選択的な用語です。まず、このプロジェクトの目的を理解する必要があります。このシステムでは、LCDなどのディスプレイデバイスにメッセージや通知を表示できます。このメッセージは、お客様のSMS機能を使用するだけで、世界中のどこからでも簡単に設定または変更できます。携帯電話。表示したい通知が何であれ、プレフィックスとサフィックスを付けて、そのテキストのSMSを送信するだけです。
これはホテル、モール、大学、オフィスで非常に便利で、自宅でもどこでも使用できます。ホテルの部屋の門に「邪魔しないで」のようなメッセージを設定できるように、外出時に自宅の玄関先にメッセージを設定でき、もちろん学校、大学、映画館などの掲示板としても使用されます。はい、それは単なるメッセージボードではありません。このプロジェクトの有用性は、電話からSMSを送信するだけで、どこからでもメッセージや通知を設定または変更できることです。同様のプロジェクトを別のタイプのディスプレイで確認することもできます:屋外P10LEDマトリックスディスプレイを使用したArduinoスコアボード。
以前は、携帯電話のSMS機能をホームセキュリティに使用し、家電製品をリモートで制御していました。PIRセンサーとGSMベースのセキュリティシステム、およびArduinoを使用したGSMベースのホームオートメーションです。
作業説明:
このプロジェクトでは、Arduino UNOを使用してプロセス全体を制御し、GSMモジュール(SIM900A)を使用して携帯電話から送信されたSMS /メッセージを受信し、LCDを使用してメッセージを表示します。
SMSを介して、「#Circuit Digest *」、「#We WelcomesYou *」などのメッセージや通知を送信できます。ここでは、メッセージ文字列に「#」というプレフィックスを使用しています。このプレフィックスは、メッセージまたは通知の開始を識別するために使用されます。また、「*」は、メッセージまたは通知の終わりを示す接尾辞として使用されます。
携帯電話からGSMモジュールにSMSを送信すると、GSMはそのSMSを受信してArduinoに送信します。ArduinoはこのSMSを読み取り、受信した文字列から主な通知メッセージを抽出して、別の文字列に保存します。次に、適切なコマンドを使用して、抽出したメッセージを16x2LCDに送信します。
このシステムの詳細については、以下の「コードの説明」セクションで説明しています。プログラミングの詳細に入る前に、GSMモジュールについて知っておく必要があります。
GSMモジュール:
GSMモジュール は、GSM(Global System for Mobile Communications)テクノロジに基づく多くの通信デバイスで使用されています。これは、コンピューターを使用してGSMネットワークと対話するために使用されます。GSMモジュールはATコマンドのみを理解し 、それに応じて応答できます。最も基本的なコマンドは「AT」です。GSMがOKと応答した場合は正常に機能しており、そうでない場合は「ERROR」と応答します。通話に応答するためのATA、通話をダイヤルするためのATD、メッセージを読み取るためのAT + CMGR、SMSを送信するためのAT + CMGSなどのさまざまなATコマンドがあります。ATコマンドの後にはキャリッジリターン、つまり\ r(16進数で0D)を続ける必要があります。 )、「AT + CMGS \ r」のように。次のコマンドを使用してGSMモジュールを使用できます。
ATE0エコーオフ用
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS =”携帯電話番号”
>>これでメッセージを書くことができます
>>メッセージを書いた後
Ctrl + Zメッセージ送信コマンド(10進数で26)。
HEXでENTER = 0x0d
SIM900は 、完全なクワッドバンドである GSM / GPRSモジュールの 低消費電力で、音声、SMSおよびデータのためのGSM / GPRS 900分の850/1800 / 1900MHzのパフォーマンスを提供します。
回路の説明:
GSMとArduinoを使用したワイヤレス掲示板の接続は簡単で、次の図に示されています。ここでは、液晶ディスプレイ(LCD)を使用して、携帯電話からSMSとして送信される「通知」またはメッセージを表示します。LCDのデータピン、すなわちRS、EN、D4、D5、D6、D7はarduinoデジタルピン番号7、6、5、4、3、2に接続されています。GSMモジュールのRxピンとTxピンはTxとRxに直接接続されています。それぞれArduinoのピン。また、GSMモジュールは12ボルトのアダプターを使用して電力を供給されます。
コードの説明:
プログラムのコードは簡単に理解できます。ここで新しいのはGSN初期化関数gsm_init()で、これは最後に説明されています。
プログラムには、まず液晶ディスプレイ(LCD)のライブラリを含め、次にLCDのデータと制御ピンおよびいくつかの変数を定義します。
#include
この後、シリアル通信は9600 bpsで初期化され、使用されているピンに指示を与えます。そして、セットアップループでGSMモジュールを初期化します。
void setup(){lcd.begin(16,2); Serial.begin(9600); pinMode(led、OUTPUT); digitalWrite(led、HIGH); lcd.print( "GSM Initilizing…"); gsm_init(); lcd.setCursor(0,0); lcd.print( "ワイヤレス通知");
データをシリアルに受信するために、2つの関数を使用します。1つはシリアルデータが来るかどうかをチェックするSerial.availableで、もう1つはシリアルに来るデータを読み取るSerial.readです。
void serialEvent(){while(Serial.available()){char ch =(char)Serial.read(); str = ch; if(ch == '*'){temp = 1; lcd.clear(); lcd.print( "メッセージを受信しました"); delay(1000); }}}
データを連続して受信した後、それを文字列に格納し、この文字列の「#」と「*」をチェックして、通知またはメッセージの開始と終了を見つけます。そして最後に、通知はlcd.printを使用してLCDに印刷されます。
void loop(){for(unsigned int t = 0; t <60000; t ++){serialEvent(); if(temp == 1){x = 0、k = 0、temp = 0; while(x
ここでは、GSMの初期化関数「gsm_init()」が重要です。まず、GSMモジュールに「AT」コマンドを送信して、GSMモジュールが接続されているかどうかを確認します。応答OKを受信した場合は、準備ができていることを意味します。システムは、モジュールが準備ができるまで、または「OK」が受信されるまで、モジュールをチェックし続けます。次に、ATE0コマンドを送信してECHOをオフにします。オフにしないと、GSMモジュールがすべてのコマンドをエコーします。次に、最後に「AT + CPIN?」を介してネットワークの可用性がチェックされます。コマンド、挿入されたカードがSIMカードであり、PINが存在する場合、応答+ CPIN:READYを返します。これも、ネットワークが見つかるまで繰り返しチェックされます。これは、以下のビデオで明確に理解できます。
void gsm_init(){lcd.clear(); lcd.print( "Finding Module.."); ブール値at_flag = 1; while(at_flag){Serial.println( "AT"); while(Serial.available()> 0){if(Serial.find( "OK"))at_flag = 0; } delay(1000); }