#include <ESP8266WiFi.h>
#include <dht11.h>
#define DHT11PIN 5 //定义温湿度针脚为5号引脚
dht11 DHT11;
const char* ssid = "8266-WiFi"; //WiFi名词
const char* password = "12345678"; //WiFi密码
WiFiServer server(8080); //端口
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password); //开启WiFi
server.begin(); //启动server
server.setNoDelay(true); //关闭小包合并包功能,不会延时发送数据
pinMode(4, OUTPUT); //用8266的管脚输出
}
void loop()
{
int chk = DHT11.read(DHT11PIN);
int tempH = DHT11.humidity;
int tempT = DHT11.temperature;
/***
char buffer[10];
//将浮点数转换为String类型,以便直接输出
String temph = dtostrf(tempH, 4, 1, buffer);
String tempt = dtostrf(tempT, 4, 1, buffer);
String cmd = "";
cmd = "Humidity: " + temph + " Temparature: " + tempt;
***/
WiFiClient client = server.available(); //尝试建立对象
if (client) { //如果当前对象可用
Serial.println("[Client connected]");
//String readBuff;
// String read;
while (client.connected()) //如果处于连接状态
{
if (client.available()) //如果接收到数据
{
int Hum=(float)DHT11.humidity; //将湿度值赋给hum
Serial.print("Hum:");
Serial.print(Hum);
Serial.print("%");
int temp=(float)DHT11.temperature; //将温度值赋给tem
Serial.print("temp:");
Serial.print(temp);
Serial.print("℃");
Serial.println();
delay(2000);
char c = client.read();//读取到变量char c
Serial.write(temp);
// client.print(cmd);
Serial.println(temp); //串口监视打印该数据
if(c=='1'){ //收到1时开
digitalWrite(4,HIGH);
}
else if(c=='0'){ //收到0时关
digitalWrite(4,LOW);
}
}
}
}
}
esp8266发送TCP数据进行控制,能够控制灯,就是手机接收不到温湿度