Arduino未読受信トレイ通知

こんにちは



最近、私はArduinoプラットフォームに興味を持ちました。 Arduino Mega 2560ボードが新年の贈り物として受け取られた後、私はまともな初心者のロボット愛好家として、ボタンを介してダイオードを点滅させました(ちなみに、コンピューターの古い分解されたマウスから削除されました)。



このような標準的な実験の後、私は何か役に立つことをする必要があると決めました。 私はyoutubeのさまざまなビデオに触発され、Gmailボックスへの新しいメールの受信に関するArduino + Python(誰かのライトが点滅し、誰かのフラグがオンになっている)を使用して物理通知が実装される方法を示しました。

画像

この記事では、このような「通知」を作成した私の経験についてお話したいと思います。 「鉄」からはほとんど必要ありませんが、ここに私が使用したものがあります:



-Arduino Mega 2560ボード-1個

-Arduinoをコンピューターに接続するためのUSBケーブル-1個

-LED-1個



C#でソフトウェア部分を実装しました。 コンピューターで実行されているプログラムは次のことを行います。



タイマーによって、メールボックスのステータスが10秒ごとにチェックされ、未読の文字がある場合、値「1」がCOMポート経由で送信され、新しい文字がない場合、値「2」が送信されます。 C#プログラムとArduinoとの通信には、SerialPortコンポーネントが使用されます。これは、Visual Studio 2010のC#Windows Formsプロジェクトの標準ツールボックス要素です。タイマーもあります。



Mail.dllは、Gmailメールボックスに接続し、www.lesnikowski.comにある未読メールを検索するために使用されます (広告とは呼ばず、著作権と著者に感謝します)。 DLLは十分に文書化されているため、この点については詳しく説明しません。 「文字を読む」コードを考えてみましょう。



using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Lesnikowski.Client.IMAP; //       Mail.dll using Lesnikowski.Mail; using Lesnikowski.Mail.Headers; using Lesnikowski.Mail.Headers.Constants; namespace Arduino_Mail_Notification { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) //   { using (Imap imap = new Imap()) { imap.ConnectSSL("imap.gmail.com"); //  IMAP- imap.Login("__e-mail", ""); //   imap.SelectInbox(); //      List<long> uids = imap.SearchFlag(Flag.Unseen); //    serialPort1.PortName = "COM15"; //  COM-,    Arduino serialPort1.Open(); // COM- if (uids.Count > 0) //    serialPort1.Write("1"); //  Arduino  "1" else //   serialPort1.Write("2"); //  Arduino  "2" serialPort1.Close(); // COM- imap.Close(); //   IMAP- } } } }
      
      







コードによると、質問を予想して、すぐにそれらのいくつかに答えます。 はい、10秒ごとにタイマーを使用するのではなく、ポートを開いてサーバーに1回接続することができます。 はい、私はこのプロジェクトで他の人のdllを使用し、クラスを書きません。 この理由は、この段階での目標は理想的なC#コードを作成することではなく、C#でメールをチェックする方法を説明することではなく、このコードが正常に対処する新しい文字の通知を機能させることであるためです。



COMポートを介して数字「1」または「2」がArduinoに到達すると、Arduinoで何が起こりますか? そして、次のことが起こります。



 int ledPin=13; //     13    int ser=0; //       C# "1"( )  "2" ( ) void setup() { pinMode(ledPin,OUTPUT); //13       Serial.begin(9600);//  COM-   9600 / (      ) } void loop () { ser = Serial.read();//   if (ser == '1') //  1 { digitalWrite(ledPin,HIGH); //  } if (ser =='2') // 2 { digitalWrite(ledPin, LOW);//  } }
      
      





つまり Arduinoでは、「物理的な通知」を実際に扱うかなり単純なプログラムが書かれています-私の場合、メールボックスに未読のメッセージが表示されると、LEDが点灯します。 ユーザーがメールボックスに入って手紙を読んだ場合、タイマーの次の10秒以内にダイオードがオフになり、未読メッセージがないことを示します。



例として、私自身の「通知」を作成するきっかけとなった多くのビデオの1つを紹介します。







これが、私のArduinoの開発の始まりです。 このプロジェクトが、いつか私の手の中だけでなく、実用的なアプリケーションを見つけることを願っています。



頑張って!



All Articles