💻

ESP32で始めるIoT

2025/03/05に公開

ESP32で始めるIoT

この記事では、低コスト、低消費電力、Wi-Fi & Bluetooth内蔵という特徴を持つESP32を使い、IoTシステム開発の基礎をステップバイステップで解説します。実践的な例を通して、読者が実際に動作するIoTシステムを構築できるよう、具体的なコードサンプルと詳細な説明を提供します。この記事は、『現場で役立つ!ESP32ではじめる実践IoT開発:環境構築からデータ分析、ビジネス活用まで』の内容に基づいています。

1. ESP32とは?

ESP32は、Espressif Systemsが開発した低コストでパワフルなマイクロコントローラです。Wi-FiとBluetoothの両方の通信機能を備えており、IoTデバイスの開発に最適です。Arduino IDEやESP-IDFなどの開発環境を使用してプログラミングできます。

2. 開発環境の構築

まずは、ESP32の開発環境を構築します。ここでは、Arduino IDEを利用した方法を紹介します。

  1. Arduino IDEのインストール: Arduinoの公式サイトから最新版をダウンロードし、インストールします。
  2. ESP32ボードの追加: Arduino IDEにESP32ボードを追加するために、ボードマネージャにESP32のURLを追加します。「ファイル」>「環境設定」>「追加のボードマネージャのURL」にhttps://dl.espressif.com/dl/package_esp32_index.jsonを入力します。
  3. ボードのインストール: 「ツール」>「ボード:」>「ボードマネージャ」を開き、「esp32」を検索してインストールします。
  4. ドライバのインストール: ESP32開発ボードをUSBケーブルでPCに接続し、必要なドライバをインストールします。

3. Lチカで動作確認

開発環境が整ったら、Lチカ(LEDチカチカ)で動作確認を行います。

#define LED_PIN 2

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
  delay(1000);
}

このコードをArduino IDEに書き込み、ESP32にアップロードします。LEDが1秒ごとに点滅すれば成功です。

4. Wi-Fiへの接続

ESP32のWi-Fi機能を使ってネットワークに接続してみましょう。

#include <WiFi.h>

const char* ssid = "YOUR_SSID"; // Wi-FiのSSID
const char* password = "YOUR_PASSWORD"; // Wi-Fiのパスワード

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  // ここに処理を追加
}

YOUR_SSIDYOUR_PASSWORDを自身のWi-Fi情報に置き換えてください。

5. センサーデータの取得

温度センサーDHT11を使って、温度と湿度データを取得してみましょう。

#include <DHT.h>

#define DHTPIN 4
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" *C ");
  delay(2000);
}

6. データのクラウドへの送信

取得したセンサーデータをクラウドに送信する方法として、MQTTプロトコルを使った方法を紹介します。ここでは、MQTTブローカーとしてAdafruit IOを利用します。

(Adafruit IOの設定とライブラリのインストールについては、書籍を参照ください。)

// Adafruit IOとMQTTに関するコード (書籍を参照)

7. 実践的なIoTシステムの例:スマート農業

上記の要素を組み合わせ、土壌水分センサーと連携した自動散水システムを構築することができます。土壌水分が一定値以下になったら、ESP32からクラウド経由でポンプを制御し、自動的に散水を行います。

(具体的なコードとシステム構成図は、書籍を参照ください。)

8. セキュリティの考慮事項

IoTシステムを構築する際には、セキュリティに十分配慮する必要があります。ファームウェアのアップデート、セキュアな通信プロトコルの利用、適切な認証方法の導入などを検討しましょう。

9. 結論と次のステップ

この記事では、ESP32を使ったIoTシステム開発の基本を解説しました。Lチカからセンサーデータのクラウド送信まで、具体的な例を通してESP32の可能性を体感いただけたと思います。

次のステップとして、より高度なIoTシステムの構築、クラウドサービスとの連携、データ分析などを学ぶことをお勧めします。

書籍情報

  • 書籍タイトル:現場で役立つ!ESP32ではじめる実践IoT開発:環境構築からデータ分析、ビジネス活用まで
  • 書籍スラッグ:book-20250305-064249
  • チャプター数:20
  • 主なトピック:ESP32の概要、開発環境構築、Wi-Fi/Bluetooth通信、センサー連携、クラウド連携、データ分析、セキュリティ、ビジネス活用事例
GitHubで編集を提案

Discussion