「ESP32ってよく聞くけど、何ができるの?」「MicroPythonって普通のPythonと何が違うの?」そんな疑問を持っている方、多いんじゃないでしょうか。
実はESP32 × MicroPythonの組み合わせ、IoT入門として最高に相性がいいんです。Wi-Fi機能が最初から内蔵されていて、Pythonに近い文法で書けるので、「マイコンって難しそう…」を「これならできそう!」に変えてくれる存在です。
今回はESP32にMicroPythonをセットアップして、Wi-Fi接続 → データ取得 → Webサーバー公開まで、一気に体験できる手順を解説します。ぜひ一緒に試してみましょう! 🚀
📌 この記事の対象読者・難易度

- ✅ PythonをなんとなくさわったことがあるPython初〜中級者
- ✅ マイコンやIoTに興味はあるけど何から始めればいいか迷っている方
- ✅ ArduinoよりPythonで書きたい派の方
難易度は★★☆☆☆(初〜中級)です。Pythonの基礎(変数・関数・if文)がわかれば問題なく読み進められます。
🔧 ESP32とMicroPythonって何者?
ESP32とは
ESP32は、中国の Espressif Systems が開発した超小型マイコンモジュールです。イメージとしては「Wi-FiとBluetoothが最初から入っている、手のひらサイズの小さなコンピューター」です。
値段は1枚500〜1000円程度とかなりお手頃で、IoTデバイスの自作に世界中で使われています。
MicroPythonとは
MicroPythonは、マイコン向けに最適化された軽量なPython実装です。つまり「メモリが少ないマイコンでもPythonっぽくコードが書けるようにしたもの」です。
Arduinoだと書き方が独特ですが、MicroPythonはPythonに慣れている方なら構文がほぼそのまま使えます。これがとても大きなメリットです 😊
🛠️ 事前準備:必要なもの
- ESP32開発ボード(例:ESP32-DevKitC、秋月電子やAmazonで購入可能)
- USBケーブル(データ通信対応のもの)
- PC(Windows / Mac / Linux どれでもOK)
- Python 3.x(インストール済みであること)
esptool(ファームウェア書き込みツール)mpremoteまたは Thonny IDE(ファイル転送・実行ツール)
今回はThonny IDEを使う方法を中心に進めます。初心者の方にとって一番とっつきやすい環境です。
⚙️ STEP 1:MicroPythonファームウェアをESP32に書き込む
まず、ESP32にMicroPythonを動かすためのファームウェアを書き込みます。ざっくりとした流れがつかめるはずです 👇
①esptoolをインストール
pip install esptool
②MicroPythonのファームウェアをダウンロード
MicroPython公式サイト(micropython.org/download/ESP32_GENERIC/)からESP32用の最新 .bin ファイルをダウンロードします。
③フラッシュをクリアして書き込む
# まずフラッシュをクリア
esptool.py --chip esp32 --port COM3 erase_flash
# ファームウェアを書き込む(COMポートはご自身の環境に合わせて変更)
esptool.py --chip esp32 --port COM3 --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-20240602-v1.23.0.bin
⚠️ Windowsでは COM3、MacやLinuxでは /dev/tty.usbserial-xxxx のような形式になります。デバイスマネージャー(Windows)やターミナルの ls /dev/tty.*(Mac)で確認しておきましょう。
📡 STEP 2:Wi-Fiに接続してみよう
ファームウェアが入ったら、いよいよコードを書きます!まずはWi-Fi接続から始めましょう。
ThonnyのエディタでESP32に接続して、以下のコードを実行してみてください。
import network # Wi-Fi制御モジュール
import time
# Wi-Fiの接続情報
SSID = "あなたのSSID"
PASSWORD = "あなたのパスワード"
def connect_wifi(ssid, password):
wlan = network.WLAN(network.STA_IF) # ステーションモード(子機として接続)
wlan.active(True) # Wi-Fiを有効化
if not wlan.isconnected():
print("Wi-Fi接続中...")
wlan.connect(ssid, password)
# 接続されるまで待機(最大10秒)
timeout = 10
while not wlan.isconnected() and timeout > 0:
time.sleep(1)
timeout -= 1
print(f"残り待機時間: {timeout}秒")
if wlan.isconnected():
print("✅ Wi-Fi接続成功!")
print("IPアドレス:", wlan.ifconfig()[0])
else:
print("❌ 接続失敗。SSIDとパスワードを確認してください。")
connect_wifi(SSID, PASSWORD)
ポイントをまとめるとこんな感じです 👇
- network.STA_IF はステーションモード。スマホがWi-Fiに繋がる感覚と同じです
wlan.ifconfig()[0]で取得できるIPアドレスを控えておいてください。後で使います- 接続に10秒以上かかる場合はSSID・パスワードの確認を 🔍
🌐 STEP 3:ESP32でシンプルなWebサーバーを立ててみよう
Wi-Fi接続ができたら、次はESP32自体をWebサーバーにしてみましょう!ブラウザからアクセスすると、センサーの値などが見られるようになります。「むずかしそう」と思うかもしれませんが、コードは意外とシンプルですよ 😄
import network
import socket
import time
SSID = "あなたのSSID"
PASSWORD = "あなたのパスワード"
# --- Wi-Fi接続 ---
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(0.5)
print("IPアドレス:", wlan.ifconfig()[0])
# --- Webサーバー起動 ---
addr = socket.getaddrinfo("0.0.0.0", 80)[0][-1] # ポート80でリッスン
s = socket.socket()
s.bind(addr)
s.listen(1)
print("Webサーバー起動中...ブラウザでアクセスしてみてください")
while True:
conn, addr = s.accept() # クライアントの接続を待つ
print("接続元:", addr)
request = conn.recv(1024) # リクエストを受信
# ダミーのセンサー値(実際はセンサーから読み取る)
temperature = 25.3
humidity = 60.1
# レスポンスHTMLを作成
html = f"""
<html>
<head><meta charset='utf-8'><title>ESP32 IoTデバイス</title></head>
<body>
<h1>🌡️ ESP32 センサーダッシュボード</h1>
<p>温度: <strong>{temperature} ℃</strong></p>
<p>湿度: <strong>{humidity} %</strong></p>
</body>
</html>"""
# HTTPレスポンスを送信
conn.send("HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n")
conn.send(html)
conn.close() # 接続を閉じる
ここが重要です 👇
- socket モジュールを使うことで、ESP32が「Webサーバー」として機能します
- ブラウザから
http://(先ほど控えたIPアドレス)にアクセスするとページが表示されます - 温度・湿度はダミー値ですが、DHT11などのセンサーを繋げばリアルな値が表示できます 🌡️
💡 応用アイデア:IoTデバイスとして発展させよう
ここまでできてしまえば、あとは応用するだけです!アイデアをいくつか挙げておきますね。
- 🌡️ 温湿度モニター:DHT11 / DHT22センサーと組み合わせて部屋の環境をブラウザで確認
- 💡 スマートLED:Webページのボタンでリモートから照明をON/OFF
- 📊 データロガー:センサー値を定期的にサーバーやGoogle Sheetsに送信
- 🔔 アラート通知:値が閾値を超えたらLINE NotifyやSlack Webhookで通知
MicroPythonの urequests モジュールを使えばHTTPリクエストも簡単に送れるので、外部APIとの連携も一気に解決できるかもしれません!
📝 まとめ
今回はESP32 × MicroPythonで、Wi-Fi接続からシンプルなWebサーバー公開までの流れを解説しました。
- ✅ ESP32はWi-Fi内蔵の小型マイコン。IoT入門に最適
- ✅ MicroPythonでPythonライクな構文がそのまま使える
- ✅
networkモジュールでWi-Fi接続、socketモジュールでWebサーバーが実現できる - ✅ センサーを組み合わせれば本格的なIoTデバイスに発展できる
「マイコンって難しそう…」と思っていた方も、Pythonの知識を活かしてここまでできてしまうんですよね 😊 まずはESP32を1枚手に入れて、ぜひ試してみてください!一緒に手を動かしながら学んでいきましょう。
📡 Arduinoをもっと深く学ぼう!
Arduino・ラズパイ・ロボットプログラミングを体系的に学びたい方へ。おすすめのUdemyコースや電子部品もまとめています。





