このチュートリアルでは、有名なWiFiモジュールESP8266を使用してPICマイクロコントローラーから電子メールを送信する方法を学びましょう。このチュートリアルでは、プログラミングにPIC16F877AICとMPLABXおよびXC8コンパイラを使用します。
このチュートリアルの最後に、Gmail、yahooなどの通常の電子メールIDから他の電子メールIDに電子メールを送信できるようになります。したがって、このチュートリアルは、ESP8266-01モジュールとPICマイクロコントローラーに関する基本的な知識があることを前提としています。そうでない場合は、次のチュートリアルが役立ちます
- ESP8266入門
- ESP8266とPICのインターフェース
それでは始めましょう…
EメールIDの準備:
メールを送信するメールIDを決定したら、次の手順に従います。
ステップ1:https://www.smtp2go.com/にアクセスし、新しいユーザーとしてサインアップします。メールの送信元となるメールIDの名前、メールアドレス、パスワードを入力してください。
このチュートリアルでは、メールID:aswinthcd @ gmail.comとパスワード:circuitdigestを使用します。
ステップ2:サインアップをクリックすると、入力したメールIDに確認メールが送信されます。この場合は[email protected]です。メールを開き、「アカウントのアクティブ化」をクリックします
ステップ3:以前のパスワードを入力するように求められた場合、再度パスワードを要求される場合があります。この場合は「circuitdigest」です。次に、SMPT2GOWebサイトにログインします。これで、ESP8266モジュールを使用して電子メールアドレスでメールを送信する準備が整いました。
ステップ4:最後のステップは、このWebサイトhttps://www.base64encode.org/を使用して、電子メールIDとパスワードをbase64形式にエンコードすることです。これをPICプログラムで使用します
この場合、エンコードされた値は次の表のようになります。
パラメータ |
通常の形式 |
Base64でエンコード |
メールID |
aswinthcd @ gmail.com |
YXN3aW50aGNkQGdtYWlsLmNvbQ == |
パスワード |
サーキットダイジェスト |
Y2lyY3VpdGRpZ2VzdA == |
ハードウェアの準備:
プロジェクトの完全な概略図を以下に示します。
LCDディスプレイは、ここではデバッグ目的で使用されます。これを接続する必要はありません。プログラムは、LCDディスプレイがなくても正常に動作します。回路図について詳しく知りたい場合は、このチュートリアルにアクセスしてください。(PICとESPのインターフェース)。
この回路をブレッドボードに組み立てて、プログラミングを進めるだけです。
電子メールを送信するようにPICをプログラミングする:
ESP8266から電子メールを送信するには、一連のATコマンドをESPモジュールに送信する必要があります。ESP8266から電子メールを送信するには、次の手順に従う必要があります。
- モジュールをAP + STA(アクセスポイントおよびステーション)モードに設定します
- アクセスポイントに接続してインターネットに接続します
- 複数の接続を有効にする
- 特定のポートでサーバーを起動します
- SMPT2GOWebサイトとのTCP接続を確立します
- Webサイトのログインセクションに移動します
- 電子メールIDとパスワードをbase64形式で入力します
- メールIDから入力
- メールIDに入力
- メールの件名を入力してください
- メールの本文を入力してください
- メールの終わりを示します
- メールを送る
- TCP接続を終了します
それは少し長くて退屈なプロセスですが、心配しないでください。ヘッダーファイルを作成することでプロセスを簡略化しました。このタスクを非常に簡単にするいくつかの関数(以下で説明)を呼び出すだけで直接使用できます。ヘッダーファイルと一緒に完全なコードはここからダウンロードできます。
注: 新しいプロジェクトでコードを使用している場合は、必ずヘッダーファイルをダウンロードしてプロジェクトに追加してください。
以下のコードのいくつかの重要な部分について説明しましたが、他の部分は自明です。ただし、疑問がある場合は、コメントセクションを使用してください。
/ * ESP_PIC通信が成功したかどうかを確認します* / do {Lcd_Set_Cursor(1,1); Lcd_Print_String( "ESPが見つかりません"); } while(!esp8266_isStarted()); // ESPが「OK」を送り返すまで待つLcd_Set_Cursor(1,1); Lcd_Print_String( "ESPが接続されています"); __delay_ms(1500); Lcd_Clear(); / *はいESP通信は成功しました-続行します* /
コードのこの部分は、PICとESP8266の間に適切な通信が確立されているかどうかを確認するために使用されます。両方がUSARTを介してデータを送受信できる場合にのみ、プログラムは次のステップに進みます。
esp8266_mode(3);
この機能により、ESP8266がモード3に設定されます。つまり、モジュールはアクセスポイントとしても、サーバーとしても機能できるようになります。
esp8266_connect( "BPASホーム"、 "cracksun");
この機能は、ESP8266モジュールをWifiルーターに接続するために使用されます。この場合、「BPAS home」は私のWifi信号の名前であり、「cracksun」は私のパスワードです。独自のWifi信号の詳細を使用する必要があります。
_esp8266_enale_MUX(); //複数の接続を有効にします_esp8266_create_server(); //ポート80にサーバーを作成します
これらの2つの機能は、複数の接続を有効にし、ポート80にサーバーを作成するために使用されます。
_esp8266_connect_SMPT2GO();
これで、この関数を使用して、SMPT2GOとのTCP接続を確立できます。接続が確立されると、この機能はWebサイトのログインページにも移動します。
_esp8266_login_mail( "YXN3aW50aGNkQGdtYWlsLmNvbQ =="、 "Y2lyY3VpdGRpZ2VzdA ==");
この機能を使用して、EメールIDとパスワードをbase64形式で入力します。ご覧のとおり、これらのエンコードされた値は上の表に示されているものと同じです。エンコードされた値は、電子メールIDとパスワードによって異なります。
_esp8266_mail_sendID( "aswinthcd @ gmail.com");
この関数は、送信者IDの名前を定義するために使用されます。このチュートリアルでは、Gmail ID aswinthcd @ gmail.comを使用してメールを送信しているため、パラメーターとして渡しました。
_esp8266_mail_recID( "mailtoaswinth @ gmail.com");
この関数は、受信者IDの名前を定義するために使用されます。私の別のGmailアカウントにメールを送信したいので、パラメータをmailtoasiwnth @ gmail.comとして渡しました。ご希望のメールIDをご利用いただけます
_esp8266_start_mail();
この関数は、メールの件名と本文をフィードすることをSMPT2GOサーバーに指示し、その準備をします。
_esp8266_mail_subject( "ESP8266からのメール");
この関数を使用して、メールの件名を定義できます。例として、メールの件名として「ESP8266からのメール」を使用しました。
_esp8266_mail_body( "テストの成功-CircuitDigest");
件名を入力した後、この機能を使用してメールの本文を入力できます。例として、メールの本文として「Testing Success –CircuitDigest」を設定しました。
_esp8266_End_mail();
メールの件名と本文を入力したので、メールに詳細を追加し終えたことをSMPT2GOサーバーに指示する必要があります。これは、関数を使用して実行できます
_esp8266_End_mail();
_esp8266_disconnect_SMPT2GO();
最後に、メールを送信した後、SMPT2GOサーバーとのTCP接続を終了する必要があります。これは、上記の関数を使用して実行されます。
ワーキング:
ハードウェアとプログラムを使い終わったら。コードをPICMCUにダンプするだけです。次に、回路の電源を入れます。すべてが期待どおりに進むと、LCDにプロセスのステータスが表示され、下のビデオに示すように、最終的に「メールが送信されました」と表示されます。ハードウェアは次のようになります。
LCDにメールが送信されたことが表示されたら、受信トレイとスパムフォルダで送信されたメールを確認します。以下のようなメールが届いているはずです。
これで、センサーデータを読み取り、メールIDに送信することで、独自のIOTプロジェクトを作成できるようになりました。メールでアラートをトリガーして、自宅や自動車のセキュリティアラートシステムを作成します。
ご不明な点がある場合や途中で行き詰まった場合は、コメントセクションをご利用ください。喜んでお手伝いさせていただきます。