製作一個樹莓皮gmail通知燈

在這個快速簡單的Raspberry Pi專案中,您將學習如何製作Gmail電子郵件通知燈。如果您有任何未讀的電子郵件,Python指令碼會開啟指示燈。...

在這個快速簡單的Raspberry Pi項目中,您將學習如何**Gmail電子郵件通知燈。如果您有任何未讀的電子郵件,Python腳本會打開指示燈。這個項目需要很少的部分,可以在一個小時內完成!當然,你可以把你的LED打扮成任何你喜歡的樣子,比如MineCraft紅石塊,或者其他用透明塑料打印的3D物體。最終結果如下:

raspi-gmail-light-notification

你需要什麼

  • 1 x覆盆子皮
  • 1 x胸板
  • 1 x 220歐姆電阻器
  • 1 x 5mm LED
  • 1個Gmail帳戶
  • 公至母連接線

任何樹莓圓周率將為這個項目工作-甚至圓周率零!只需要一個GPIO引腳,而且它不是特別佔用CPU。如果你有一個Pi初學者工具包,你有足夠的部分來完成這一點。

建造計劃

Gmail-Notification-LED

這是一個非常簡單的項目。發光二極管(LED)連接到Pi上的GPIO(通用輸入輸出)引腳。一個非常簡單的Python腳本將定期運行以檢查未讀的電子郵件,並相應地打開或關閉LED。

硬件

Gmail-Notification-Circuit

將LED的正極(長腿)連接到電阻器,然後連接到GPIO引腳14。您可以使用任何GPIO引腳,但是請首先查看引腳,因為它們在不同型號之間略有不同。將負極(短腳平邊)接地。

pi設置

Gmail-Notification-Pi

如果Pi安裝了操作系統(OS),那麼就不需要太多的設置(不確定您需要什麼?學習如何在這裡安裝一個)。在Pi上打開一個新的終端(左上角>菜單>附件>終端)(簽出這些快捷方式,使您成為編碼忍者)。您需要創建一個新文件夾來存儲Python腳本。輸入以下命令:

pwd

這代表“打印工作目錄”,並將顯示您所在的文件夾(默認情況下為“/home/pi”)。導航到documents文件夾並創建一個名為“gmail\u python”的新目錄(文件夾):

cd Documents/sudo mkdir gmail_python

“mkdir”命令代表“makedirectory”。下面的任何內容都將用作目錄名。您現在應該可以看到您的目錄:

ls

如果犯了錯誤,可以輕鬆刪除此目錄:

sudo rm -r gmail_python

現在導航到新目錄:

cd gmail_python/

創建新的Python腳本:

sudo nano check_messages.py

這將創建腳本並打開它,以便在Nano中進行編輯。當然,你可以使用另一個程序,比如Vim,儘管這條tweet總結了我對此的感受:

別開玩笑了,看看這兩個之間的比較,全面崩潰。

按CTRL+X退出Nano並返回終端。

python設置

Gmail-Notification-Code

既然Pi已經設置好了,現在是編寫代碼的時候了。這個項目需要郭查理的優秀Gmail Python庫。從Github下載庫並提取內容。裡面應該有一個叫做“gmail”的文件夾。將整個文件夾複製到“/home/pi/Documents/gmail_upython”。

切換回命令行並再次打開腳本(如果按向上鍵,則可以滾動瀏覽以前輸入的命令):

sudo nano check_messages.py

請注意,這與創建文件時使用的命令是一樣的——如果文件已存在,則將打開它,否則將創建它。這是蟒蛇:

import gmail, RPi.GPIO as GPIO, time # import modulesGPIO.setwarnings(False)GPIO.setmode(GPIO.BCM) # tell the Pi what headers to useGPIO.setup(14, GPIO.OUT) # tell the Pi this pin is an outputg = gmail.login('[email protected]', 'YOUR PASSWORD')unread_messages = g.inbox().mail(unread=True)total_messages = 0for message in unread_messages:total_messages += 1if total_messages > 0:# there are unread emails, turn light onGPIO.output(14, True)else:# there are no unread emails, turn light offGPIO.output(14, False)

你需要輸入你的用戶名和密碼才能工作。如果您願意,可以查看gmail插件的完整源代碼。如果您覺得這樣做不舒服(或者您使用的是雙因素身份驗證),您將需要使用OAuth2連接到Gmail。這是一個有點涉及本教程,但谷歌有一個很好的入門指南。

讓我們把代碼分解一下。首先導入一些模塊。Python中的模塊是為特定目的編寫的代碼片段(類似於arduinoide中的庫)。RPi.GPIO文件是一個用於訪問GPIO的Pi特定模塊,gmail是您之前下載的模塊,time是Python中內置的一個提供計時功能的模塊。“現在”GPIO.setmode設置模式“和”GPIO.setup設置用於告訴Pi引腳14是一個輸出,並且您希望使用“Broadcom引腳編號”(有關BCM的更多信息)。

這條線連接到你的gmail帳戶。它創建一個名為“g”的對象,並調用以前導入的gmail模塊的登錄方法。不要忘記輸入你的gmail電子郵件和密碼。

g = gmail.login('[email protected]', 'YOUR PASSWORD')

現在檢索所有未讀消息並將它們存儲在一個名為“未讀消息”的變量中:

unread_messages = g.inbox().mail(unread=True)

注意“unread=True”是如何作為參數傳遞的——您可以更改它以基於不同參數(例如發送者或subject)檢索消息。查看應用程序編程接口(API)文檔以獲取更多信息。

接下來,使用for循環在每條消息上循環:

for message in unread_messages:total_messages += 1

For循環非常有用。它們將一個代碼塊重複幾次,每次的值往往略有不同。這個for循環遍歷未讀消息中的每條消息,並遞增“total \u messages”變量。

最後,使用一些簡單的“if”語句。如果有未讀信息,請打開LED,否則請關閉。

請記住,Python區分大小寫,並且使用白色間距。如果在運行代碼時遇到問題,請嘗試此網站。粘貼Python並按“validate above Python code”按鈕。這將告訴您Python中存在哪些錯誤(如果有的話)。

切換到終端並運行腳本:

python check_messages.py

此命令將運行您的腳本。嘗試手動將收件箱中的一些電子郵件更改為“未讀”狀態,然後再次運行腳本——您會看到LED燈亮起或熄滅,以反映您的收件箱。

cron設置

既然腳本可以工作了,是時候讓它自動化了。最簡單的方法是通過cron作業。Cron作業用於計劃任務和腳本,例如自動備份。打開Crontab(計劃任務列表):

crontab -e

如果尚未設置計劃任務,則此文件將為空(它可能包含文檔或註釋,前面加“\”)。如果您已經在這裡有條目,只需在新行中輸入新命令:

* * * * * python ~/pi/Documents/gmail_python/check_messages.py

五個“星”(“****”)指定運行任務的頻率(您可以在這裡獲得真正的幻想,例如每兩個星期三2:00)。這五顆星指定任務應該每分鐘運行一次。這是允許的最小間隔(瞭解有關作業調度的更多信息)。接下來,“python”告訴調度器將腳本作為python文件執行。最後,“~/pi/Documents/gmail\u python/check_消息.py“是腳本的絕對文件路徑--相對路徑不起作用。

你現在應該有自己的Gmail通知燈了!修改它以根據不同的需求或過濾器查找消息(在這裡學習如何使用過濾器)或執行不同的代碼段非常簡單——也許您可以創建一個基於電子郵件的Twitter bot(瞭解有關構建Pi Twitter bot的更多信息)。

不管你最終如何編寫你的通知框,我很想知道它在評論中是怎麼回事!

  • 發表於 2021-03-17 17:32
  • 閱讀 ( 56 )
  • 分類:DIY

你可能感興趣的文章

12個樹莓皮聖誕專案,你可以在一天內

聖誕節會有樹莓派嗎?有一個(或多個)躺在那裡等著採取行動嗎?也許有點聖誕主題?一天能做十幾個樹莓派專案怎麼樣? ...

  • 發佈於 2021-03-17 19:30
  • 閲讀 ( 48 )

7種最佳樹莓皮4例

... 即使樹莓皮4是小的,這並不意味著你不應該給它一個適當的家。有幾個優秀的樹莓皮4案件提供。一些覆盆子皮4案件來與自動風扇,而其他人是堅固耐用。 ...

  • 發佈於 2021-03-18 09:54
  • 閲讀 ( 56 )

如何用樹莓皮製作android電視盒

想**一個基於Raspberry Pi的media center,但發現基本的Kodi安裝沒有提供足夠的功能?別擔心,有一個經過考驗的替代品:Android電視! ...

  • 發佈於 2021-03-18 23:14
  • 閲讀 ( 62 )

如何建立一個樹莓皮遊戲男孩和哪裡買一個工具包

想要你自己的樹莓皮動力遊戲男孩,一個手持行動式復古遊戲機,你可以帶到任何地方? ...

  • 發佈於 2021-03-19 13:29
  • 閲讀 ( 59 )

適合初學者的11個最佳樹莓圓周率專案

樹莓圓周率是一個偉大的小機器-它的負擔得起,高度便攜,使用者友好。但是,當你第一次得到一個,它可能是棘手的,以找出哪些專案,你應該首先承擔。 ...

  • 發佈於 2021-03-19 13:42
  • 閲讀 ( 61 )

建立一個樹莓皮復古遊戲機與此免費電子書!

你有興趣建立一個復古遊戲機與覆盆子皮?這是你需要的電子書! ...

  • 發佈於 2021-03-19 23:31
  • 閲讀 ( 48 )

如何在一個樹莓圓周率主持自己的網站

需要經營一個網站,但不能承擔託管費用? ...

  • 發佈於 2021-03-21 14:29
  • 閲讀 ( 58 )

2017年度最佳樹莓皮13個專案

... 在這個例子中,匿名開發團隊使用了1500多個樹莓pi和定製作業系統以及RFID閱讀器來記錄紡織廠生產過程的每一步。您可以在工作站上看到其中一個完成的盒子: ...

  • 發佈於 2021-03-26 12:05
  • 閲讀 ( 54 )

用樹莓皮做一個led指示燈(用於電子郵件、天氣或任何東西)

覆盆子圓周率是一個很好的緊湊的平臺,以附加一個指示燈,為各種專案的天氣通知,新的電子郵件等閱讀,因為我們告訴你如何連線一個LED模組到你的圓周率和設定一些基本的通知。 我為什麼要這麼做? 因為這很有趣。與...

  • 發佈於 2021-04-12 00:46
  • 閲讀 ( 40 )

洗完衣服後用樹莓皮零來通知你

建立一個小的通知系統來提醒你洗衣完畢是一個由來已久的DIY電子專案。如果你想用一個樹莓圓周率0為一,GitHub使用者Shmoopty分享他的專案。使用振動感測器,Pi監控振動,併在裝置開始或停止振動時向您傳送警報。通知可以透...

  • 發佈於 2021-05-16 07:17
  • 閲讀 ( 39 )
m9222791
m9222791

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦