はじめに
ESP8266はWi-Fi機能を備えたマイコンで、安価かつ高機能なためIoT開発に広く活用されています。本記事では、ESP8266を使ってWebサーバーを構築し、センサーから取得したデータをリアルタイムで表示する方法を解説します。温湿度センサー(DHT11/DHT22)を使用して、ブラウザ上で温度と湿度を確認できるシステムを作成します。
また、過去の記事で紹介した**ESP32でWi-Fi制御するスマートスイッチや温湿度センサーを使ったスマートハウス実験**と組み合わせることで、より高度なIoTシステムを構築することも可能です。
ESP8266をWebサーバーとして利用するメリット
- 低コスト・省電力:Wi-Fi機能を備えながらも安価で、低消費電力で動作。
- スタンドアロン動作が可能:ルーターを介さずに直接アクセスできる。
- リアルタイムデータの取得・表示:ブラウザからセンサーデータを確認可能。
- クラウド不要で簡単にIoT化:インターネットに依存せずローカルで完結できる。
必要な部品
部品名 | 用途 |
---|---|
ESP8266(NodeMCU、Wemos D1 mini など) | Wi-Fi機能を搭載したマイコンボード |
DHT11またはDHT22 温湿度センサー | 温度・湿度データを取得 |
4.7kΩ 抵抗 | DHTセンサーの安定動作用 |
ブレッドボード | 配線を簡単にするため |
ジャンパーワイヤー | 各部品の接続用 |
システムの概要
- ESP8266がWi-Fiに接続し、Webサーバーを起動
- DHTセンサーから温湿度データを取得
- HTMLページを生成し、データを表示
- ブラウザからアクセスし、リアルタイムで情報を確認
配線と回路図
ESP8266とDHTセンサーの接続
DHT ピン | ESP8266 ピン |
VCC | 3.3V |
GND | GND |
DATA | D4(GPIO2) |
(プルアップ抵抗) | 4.7kΩ(DATAとVCC間に接続) |

Arduino IDEのセットアップ
- ESP8266ボードを追加
- Arduino IDEを開き、「ボードマネージャ」でESP8266を検索・インストール。
- 必要なライブラリをインストール
- 「DHT sensor library」
- 「Adafruit Unified Sensor」
- 「ESP8266WiFi」
ESP8266のWebサーバープログラム
以下のコードをESP8266に書き込むことで、センサーデータを取得し、Webページに表示できます。
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
ESP8266WebServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
server.on("/", handleRoot);
server.begin();
dht.begin();
}
void loop() {
server.handleClient();
}
void handleRoot() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
String html = "<html><body>";
html += "<h1>ESP8266 温湿度モニター</h1>";
html += "<p>温度: " + String(temp) + " °C</p>";
html += "<p>湿度: " + String(hum) + " %</p>";
html += "</body></html>";
server.send(200, "text/html", html);
}
システムの応用
1. スマートホームとの連携
このWebサーバーを**温湿度センサーを使ったスマートハウス実験**と組み合わせることで、エアコンや加湿器の自動制御が可能になります。
2. スマートフォン通知機能(LINE/Twitter連携)
Wi-Fiを活用して、温度が一定の閾値を超えた場合にLINE通知を送ることもできます。これは**ESP32でWi-Fi制御するスマートスイッチ**と同様の仕組みで実装可能です。
3. クラウドデータ保存(Firebase/AWS)
測定データをGoogle FirebaseやAWSに保存し、遠隔監視することも可能です。
よくあるトラブルと解決策
1. Wi-Fiに接続できない
- SSIDとパスワードが正しく入力されているか確認
- 2.4GHzのWi-Fiを使用しているか確認(ESP8266は5GHz非対応)
- ルーターとの距離が近いかチェック
2. Webページが表示されない
- ESP8266のIPアドレスを確認(シリアルモニターで出力)
- ルーターのファイアウォール設定を確認
- ESP8266のメモリが不足していないか確認(コードの最適化)
まとめ
本記事では、ESP8266を使ってWebサーバーを構築し、センサーデータを取得・表示する方法を解説しました。
学んだこと
- ESP8266を使ったWebサーバー構築
- 温湿度センサーのデータ取得
- HTMLを動的に生成してブラウザに表示
- IoT応用(スマートホーム・クラウド連携)
ESP8266のWebサーバー機能を活用すれば、スマートハウスや遠隔監視システムの基盤を簡単に構築できます。次のステップとして、ESP32とカメラモジュールで監視カメラを作る の記事も参考にしながら、IoTの可能性を広げてみてください!
コメント