PR

【ESP8266】Webサーバー構築&データ取得の方法!

arduino

はじめに

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センサーの安定動作用
ブレッドボード配線を簡単にするため
ジャンパーワイヤー各部品の接続用

 

システムの概要

  1. ESP8266がWi-Fiに接続し、Webサーバーを起動
  2. DHTセンサーから温湿度データを取得
  3. HTMLページを生成し、データを表示
  4. ブラウザからアクセスし、リアルタイムで情報を確認

 

配線と回路図

ESP8266とDHTセンサーの接続

DHT ピンESP8266 ピン
VCC3.3V
GNDGND
DATAD4(GPIO2)
(プルアップ抵抗)4.7kΩ(DATAとVCC間に接続)
ESP8266 NodeMCU から DHT11/DHT22 センサーへの接続を示す図。GND は GND に、D4 GPIO2 は DATA に、3.3V は 4.7kΩ の抵抗を介して VCC に接続されます。ラベルは各接続ポイントを示しています。.

 

Arduino IDEのセットアップ

  1. ESP8266ボードを追加
    • Arduino IDEを開き、「ボードマネージャ」でESP8266を検索・インストール。
  2. 必要なライブラリをインストール
    • 「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の可能性を広げてみてください!

コメント

タイトルとURLをコピーしました