ArduinoとESP32を使った大気質モニタリングアプリケーションの作成 (4)-WiFi

作成者:カランカラン
💡

質問やフィードバックがありましたら、フォームからお願いします

本文は台湾華語で、ChatGPT で翻訳している記事なので、不確かな部分や間違いがあるかもしれません。ご了承ください

本記事はシリーズの第四篇です:

  1. センサー紹介篇 - DHT11 と MH-Z14A
  2. データ通信篇 - UART(実装は UART を使用するので、UART のみを語ります)
  3. Arduino の落とし穴篇
  4. WiFi 篇:デバッグの時間を節約するために、私は ESP32 開発ボードを追加で購入しました。これには WiFi と Bluetooth 機能が内蔵されています。
  5. (未公開)MQTT 篇:データを他のデバイスに送信するために、MQTT という軽量な通信プロトコルを使用しました。
  6. (未公開)Grafana / Web 篇:データがデータベースに存在するなら、もちろんそれを魅力的に表示する必要があります!ここでは Grafana + Prometheus と Svelte を使用してデータを表示します。

前言

一般的に Arduino で WiFi 機能を実装するには他の拡張モジュールが必要で、よく使われるチップは ESP8266 です。しかし、ESP8266 のみを購入すると、全てのピンを自分でハンダ付けし、Datasheet を読み込む必要があります。WiFi の基礎的な動作を理解したい場合には素晴らしい練習ですが、今回はアイデアを実現することが目的なので、私はすでに WiFi と Bluetooth 機能を内蔵した ESP32 開発ボードを購入しました。

ESP32 開発ボードは WiFi 機能だけでなく、GPIO ピン、Serial インターフェース、UART も備えており、Arduino IDE でコードをアップロードすることも可能です。開発も非常に便利ですので、実際には Arduino を使わなくても、ESP32 のみで全ての機能を実現できます。

WiFi 接続

#include "WiFi.h"

WiFiClient client;

void setup()
{
  WiFi.mode(WIFI_STA);
  WiFi.begin(SSID, PASSWORD);

  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.println("WiFi に接続中..");
  }

  Serial.println("WiFi が接続されました!");
}

void loop()
{
}

WiFi ライブラリを使うと、WiFi 接続の設定は非常に簡単です。setup 内で WiFi.modeWiFi.begin を呼び出すだけで接続できます。ここでは再接続のメカニズムを設定していないため、失敗した場合は Arduino を再起動する必要があるかもしれません。

WiFi に接続した後は、できることがたくさんあります!例えば、HTTP サーバーを動かしたり、API をサーバーに送信したり、センサーからのデータをデータベースに送信したり、リアルタイムで監視したりできます。

ここで私たちがやりたいのは、MQTT を通じてセンサーのデータ(温湿度、二酸化炭素濃度)をサーバーに送信し、残りのロジックはすべてサーバーに処理させることです。MQTT に関する部分は次回の記事で紹介します!

この記事が役に立ったと思ったら、下のリンクからコーヒーを奢ってくれると嬉しいです ☕ 私の普通の一日が輝かしいものになります ✨

Buy me a coffee