1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi Pico Wでメール送信

Last updated at Posted at 2025-08-28

はじめに

外部からの接点を受けてメールで通知することができないかと考えていたらRaspberrypi Pico Wでできそうな気がしたので、試しにpico Wでメールを送信してみました。

基本的には下記のサイトを参考にしています。

使用するもの

・Raspberry Pi Pico W
・ISP契約時についてきたメールのアカウント

gmailを使用した作例はいくつか出てきますが、ここはあえてgmailを使用せず。ISP契約時についてきたメールアカウントを使ってみたいと思います。
Raspberry Pi Pico Wは大阪、日本橋の部品屋さんで買ってきたものを使用しました。1個1200円くらいで安価です。
Photo_25-08-28-12-36-34.175.jpg

Raspberry Pi Pico Wの初期化でつまずく

BOOTSELボタンを押してUSBを接続しUF2ファイルを書き込みますが、Wがつかない方のUF2ファイルを書き込んでしまいました。Lチカもうまくいかずかなり悩みましたが、Pico W用のUF2を書き込みするとあっさり動きました。
W無しのPicoしか使ったことがなかったためこの点は落とし穴でした。

umail.pyの作成

Lチカなどで動作確認ができたら下記のサイトからソースコードをコピーして
Thonnyで新規作成した画面に貼り付けます。

参考にしているサイトでは、
「コピペをしたらCtrl+Fで検索画面を開き「ussl」と検索、すべて「ssl」に置き換えてください。」と記載がありましたが書き換えなくても動作しました。

このファイルは「umail.py」というファイル名でPico Wの本体に保存しておきます。
Thonnyで「名前を付けて保存」を押して写真の画面で「Raspberry Pi Pico」を押すとPico Wの本体に保存されます。
スクリーンショット 2025-08-28 12.59.10.png

main.pyの作成

ここまできたら実際にメールを送るためのコードを書きます。
テストのためのコードのため、できる限りシンプルにしています。
下記のumailの例を参考に作成していきます。

WiFi接続の部分はこちらのQiitaの記事を参考にしています。
@IoriGunji(Iori Gunji)さんありがとうございます。

各パラメーターは下記の通りです。
main.pyの「***」の部分に実際のパラメーターをいれて使用してください。

wifiSSID : WiFiのSSIDを入力
wifiPW : WiFiのパスワードを入力
SMTPserver : 使用するメールアカウントのSMTPサーバー名を入力
uname : メールアカウントのユーザー名を入力
mailpass : メールアカウントのパスワードを入力
mailto : 送信するメールの宛先を入力

main.py
import umail
import network
import time

# WiFi 関係の設定
wifiSSID = '***'
wifiPW = '***'
# メール関係の設定
SMTPserver = '***'
uname='***'
mailpass='***'
mailto = '***'

# WiFi の接続
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(wifiSSID, wifiPW)

while wlan.isconnected() == False:
    print('Connecting to Wi-Fi router')
    time.sleep(1)

wlan_status = wlan.ifconfig()
print('Connected!')
print(f'IP Address: {wlan_status[0]}')
print(f'Netmask: {wlan_status[1]}')
print(f'Default Gateway: {wlan_status[2]}')
print(f'Name Server: {wlan_status[3]}')

# メールの送信
print('メール送信中...')
smtp = umail.SMTP(SMTPserver, 587, username = uname, password = mailpass)
smtp.to(mailto)
smtp.write("Subject: メールの送信テスト\n\n")
# メール本文
smtp.send("本日は晴天なり、本日は晴天なり\neメールの送信テストです。\n\nRaspberry Pi Pico Wから送信")
smtp.quit()
print('メール送信完了')

main.pyが作成できたら、pico Wの本体に保存します。
Thonnyで「現在のスクリプトを実行」を押すか、pico Wに再度通電するとメールが送信されるはずです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?