質問やフィードバックがありましたら、フォームからお願いします
本文は台湾華語で、ChatGPT で翻訳している記事なので、不確かな部分や間違いがあるかもしれません。ご了承ください
本記事はシリーズの第四篇です:
- センサー紹介篇 - DHT11 と MH-Z14A
- データ通信篇 - UART(実装は UART を使用するので、UART のみを語ります)
- Arduino の落とし穴篇
- WiFi 篇:デバッグの時間を節約するために、私は ESP32 開発ボードを追加で購入しました。これには WiFi と Bluetooth 機能が内蔵されています。
- (未公開)MQTT 篇:データを他のデバイスに送信するために、MQTT という軽量な通信プロトコルを使用しました。
- (未公開)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.mode
と WiFi.begin
を呼び出すだけで接続できます。ここでは再接続のメカニズムを設定していないため、失敗した場合は Arduino を再起動する必要があるかもしれません。
WiFi に接続した後は、できることがたくさんあります!例えば、HTTP サーバーを動かしたり、API をサーバーに送信したり、センサーからのデータをデータベースに送信したり、リアルタイムで監視したりできます。
ここで私たちがやりたいのは、MQTT を通じてセンサーのデータ(温湿度、二酸化炭素濃度)をサーバーに送信し、残りのロジックはすべてサーバーに処理させることです。MQTT に関する部分は次回の記事で紹介します!
この記事が役に立ったと思ったら、下のリンクからコーヒーを奢ってくれると嬉しいです ☕ 私の普通の一日が輝かしいものになります ✨
☕Buy me a coffee