//Test4b-WiFiServer_DHT11_LCD #include "WiFiS3.h" #include #include //I2C用ヘッダーファイル #include // R4対応I2C LCD // LCD LiquidCrystal_PCF8574 lcd(0x27); // (0x3F の場合もあり) // DHT11 #define DHTPIN 11 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); char ssid[] = "TP-Link_0E24";//WiFiルーターのSSID char pass[] = "76732485";//パスワード WiFiServer server(23); void setup() { pinMode(2, INPUT); // SW pinMode(3, OUTPUT); // LED Serial.begin(9600); while (!Serial); Serial.println("test4a-WiFiServer_DHT11"); // LCD Wire.begin(); lcd.begin(16, 2); lcd.setBacklight(255); lcd.print("Peripheral Ready"); // DHT init dht.begin(); int status = WL_IDLE_STATUS; while (status != WL_CONNECTED) { Serial.print("Connecting to "); Serial.println(ssid); status = WiFi.begin(ssid, pass); delay(2000); // 必須 //WiFi.begin() はコマンドを送るだけで接続完了を待っていない。 } Serial.println("Connected!"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.begin(); Serial.println("Server started on port 23");//ポート 23(Telnet) // SW ON 待ち (IP address を確認するため) while (digitalRead(2) == 0); } void loop() { WiFiClient client = server.available(); if(client){ Serial.println("new client"); client.println("new client"); while (client.connected()) { // loop while the client's connected if (client.available()) { // if there's bytes to read from the client, char c = client.read(); // read a byte, then //Serial.write(c); // print it out to the serial monitor Serial.print(c); if ( c=='1') { digitalWrite( 3, HIGH ); Serial.println("LED_ON"); client.println("LED_ON"); float h = dht.readHumidity(); float t = dht.readTemperature(); if (!isnan(t) && !isnan(h)) {// t と h が正常な値のときだけ送信する // Serial Serial.print("Temp: "); Serial.print(t, 1); Serial.print("℃ "); Serial.print("Humid: "); Serial.print(h, 1); Serial.println(" %"); //client client.print("Temp: "); client.print(t, 1); client.print("℃ "); client.print("Humid: "); client.print(h, 1); client.println(" %"); // LCD lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print("Temp="); lcd.print(t, 1); lcd.print((char)0xDF);//° lcd.print("C "); lcd.setCursor(0, 1); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("Humid="); lcd.print(h, 1); lcd.print("% "); } else { Serial.println("DHT read error"); } }else if ( c=='0') { digitalWrite( 3, LOW ); Serial.println("LED_OFF"); client.println("LED_OFF"); } } } // close the connection: client.stop(); Serial.println("client disconnected"); } }