前回のNodeMCU入門チュートリアルで は、NodeMCU と は何か 、および ArduinoIDE を 使用してそれをプログラムする方法を説明しました 。NodeMCUにはWi-Fiチップが内蔵されているので、インターネットに接続することもできます。IoTプロジェクトを構築することは非常に便利です。以前はThingSpeakとArduinoを使用してIoT温度計を作成しましたが、ここでは、温度を表示する独自のWebページを作成します。
このチュートリアルでは、この興味深いMCUについて詳しく説明し、NodeMCUをインターネットに接続して、モノのインターネットの世界にゆっくりと飛び込みます。ここでは、このモジュールを使用してWebブラウザーで室温を取得します。つまり、LM35を温度センサーとして使用して温度を表示するWebサーバーを作成します。
必要なコンポーネント:
- NodeMCU-ESP12
- LM35温度センサー
- ブレッドボード
- オス-メスコネクタ
LM35温度センサー:
LM35 はアナログ線形温度センサーです。その出力は温度(摂氏)に比例します。動作温度範囲は-55°Cから150°Cです。出力電圧はすべてのに応答して10mVの変化によって 入出力C上昇または温度に落ちます。5Vおよび3.3V電源で動作可能で、スタンバイ電流は60uA未満です。
注LM35、すなわち3つの系列変化LM35A、LM35CとLM35Dシリーズで利用可能であること。主な違いは、温度測定の範囲にあります。LM35Dシリーズは摂氏0〜100度を測定するように設計されていますが、LM35Aシリーズは摂氏-55〜155度のより広い範囲を測定するように設計されています。LM35Cシリーズは、摂氏-40度から110度まで測定するように設計されています。
温度を測定するために、他の多くのマイクロコントローラーでLM35をすでに使用しています。
- LM35および8051マイクロコントローラーを使用したデジタル体温計
- LM35とAVRマイクロコントローラーを使用した温度測定
- ArduinoとLM35温度センサーを使用したデジタル温度計
- RaspberryPiを使用した室温測定
LM35とNodeMCUの接続:
LM35をNodeMCUに接続するための回路図を以下に示します。
LM35はアナログセンサーであるため、このアナログ出力をデジタルに変換する必要があります。このために、A0として定義されているNodeMCUのADCピンを使用します。LM35の出力をA0に接続します。
NodeMCUのピンの出力電圧は3.3Vです。したがって、LM35のVccとして3.3Vを使用します。
コードの説明:
デモンストレーションビデオを含む完全なコードは、記事の最後に記載されています。ここでは、コードのいくつかの部分について説明します。ArduinoIDEを使用してMCUにコードをアップロードする方法についてはすでに説明しました。
まず、Wi-Fi機能にアクセスするためにESP8266wifiライブラリを含める必要があります。
#include
次に、Wi-Fi名とパスワードを[ ssid と パスワード] フィールドに 入力し ます。また、変数を初期化し、ポート80でボーレート115200でサーバーを起動します。
const char * ssid = "*********"; // ssid const char * password = "***********"; //パスワード floattemp_celsius = 0; float temp_fahrenheit = 0; WiFiServerサーバー(80); void setup(){ Serial.begin(115200);
Wi-Fiの接続は、これらの関数を呼び出すことによって確立されます。
Serial.println(); Serial.println(); Serial.print( "接続中"); Serial.println(ssid); WiFi.begin(ssid、password);
接続の確立には数秒かかることがあるため、接続が確立されなくなるまで「…」を表示し続けます。その後、システムはクライアントが接続するのを待ち、チェックし続けます…
while(WiFi.status()!= WL_CONNECTED){ delay(500); Serial.print( "。"); } Serial.println( ""); Serial.println( "WiFiが接続されています"); server.begin(); Serial.println( "サーバーが起動しました"); Serial.println(WiFi.localIP()); }
では ループ セクション、センサ値を読み込み、摂氏と華氏に変換し、シリアルモニターにこれらの値を表示します。
void loop(){ temp_celsius =(analogRead(A0)* 330.0)/ 1023.0; //アナログ値を摂氏に変換するにはボードには3.3Vがあり、LM35の出力電圧は摂氏の上昇/下降ごとに10mVずつ変化することがわかっています。したがって、(A0 * 3300/10 )/ 1023 = celsius temp_fahrenheit = celsius * 1.8 + 32.0; Serial.print( "温度="); Serial.print(temp_celsius); Serial.print( "摂氏、");
Webページに温度を表示するHTMLコード:
インターネットを介して世界中のどこからでもアクセスできるように、温度をWebページに表示しています。HTMLコードは非常に単純です。 client.println 関数を使用してHTMLコードの各行をエコーし、ブラウザーがそれを実行できるようにする必要があります。
この部分は、温度値を表示するWebページを作成するためのHTMLコードを示しています。
WiFiClientクライアント= server.available(); client.println( "HTTP / 1.1 200 OK"); client.println( "Content-Type:text / html"); client.println( "接続:閉じる"); //応答の完了後に接続が閉じられます client.println( "Refresh:10"); // 10秒後にページを更新します client.println(); client.println( ""); client.println( ""); client.print( "
デジタル体温計
"); client.print("温度(* C)= "); client.println(temp_celsius); client.print("
温度(F)= "); client.println(temp_fahrenheit); client.print("
"); client.println(" "); delay(5000); }ワーキング:
Arduino IDEを使用してコードをアップロードした後、シリアルモニターを開き、NodeMCUのリセットボタンを押します。
これで、ボードがコードで定義したWi-Fiネットワークに接続され、IPを取得したことがわかります。このIPをコピーして、任意のWebブラウザーに貼り付けます。Webブラウザを実行しているシステムが同じネットワークに接続されていることを確認してください。
デジタル体温計の準備が整い、10秒ごとにWebブラウザで温度が自動的に更新されます。
このWebページにインターネットからアクセスできるようにするには、ルーター/モデムでポート転送を設定する必要があります。以下の完全なコードとビデオを確認してください。
また、チェックしてください:
- Raspberry Pi Weather Station:インターネットを介した湿度、温度、圧力の監視
- ArduinoとThingSpeakを使用したインターネット経由のライブ温度と湿度の監視