« ガイガーカウンタ GC10(5)放射線量データロガー(2) | トップページ | Arduinoで作ろう(42) WeMos D1で温度・湿度・気圧のWebサーバ »

2020年3月31日 (火)

Arduinoで作ろう(41) WeMos D1で温度・湿度のWebサーバ

Wemos_d1_dht11

 WeMos D1というESP8266を搭載したArduino準互換ボードで遊んでます。
とりあえず温度・湿度センサDHT11をつないで,Webブラウザから温度・湿度を見られるWebサーバを作ってみました。
WeMos D1用のスケッチをArduino IDEで書けるようにする手順はWeb上にたくさんあるから省略します。僕は,ココとかココを参考にしました。

20200331

// WeMos D1(ESP8266)+DHT11による温度湿度Webserver

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <DHT.h>
#define DHTTYPE DHT11
#define DHTPIN 0
const char* ssid = "あなたの無線LANのSSID";
const char* password = "あなたのパスワード";
ESP8266WebServer server(80);
DHT dht(DHTPIN, DHTTYPE, 11);
float temp,humidity;
String webString="";

void setup(void){
 Serial.begin(9600);
 dht.begin();
 WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
  delay(500);
  Serial.print(".");
  }
 Serial.println("");
 Serial.print("Connected to ");
 Serial.println(ssid);
 Serial.print("IP address: ");
 Serial.println(WiFi.localIP());
 server.on("/", handle_root);
 server.begin();
 Serial.println("HTTP server started");
}

void loop(void){
 server.handleClient();
}

void getdata() {
 humidity = dht.readHumidity();
 temp = dht.readTemperature(false);
}

void handle_root() {
 getdata();
 String message = "\
 <html>\n\
 <meta charset=\"utf-8\">\n\
 <body>\n\
 <h4>WeMos D1 (ESP8266)+DHT11 Webserver</h4>\n\
 現在の気温は " + String((int)temp) + "℃です。<br>\
 現在の湿度は " + String((int)humidity) + "%です。\n\
 </body>\n\
 </html>\n";
 server.send(200, "text/html", message);
}

 上のスケッチを書き込んで,シリアルモニタでローカルIPアドレスを確認します。この場合は,192.168.0.33でした。
20200331_20200331142101

 で,Webブラウザで http://192.168.0.33/を見てみると ↓こうなるわけです。
202003311

このマイコンボード,面白いですね。まだいろいろと遊べそうです。

| |

« ガイガーカウンタ GC10(5)放射線量データロガー(2) | トップページ | Arduinoで作ろう(42) WeMos D1で温度・湿度・気圧のWebサーバ »

Arduino」カテゴリの記事

ESP8266 , ESP32」カテゴリの記事