基本信息
文件名称:Espressif 系列:ESP8266 系列_(6).ESP8266与传感器连接.docx
文件大小:28.35 KB
总页数:31 页
更新时间:2025-06-17
总字数:约1.72万字
文档摘要

PAGE1

PAGE1

ESP8266与传感器连接

1.引言

在物联网(IoT)项目中,ESP8266作为一款低成本、高性能的Wi-Fi模块,广泛用于各种传感器数据采集和传输任务。本节将详细介绍如何将ESP8266与常见的传感器连接,并通过示例代码展示如何读取传感器数据并通过Wi-Fi传输。

2.硬件连接

2.1常见传感器类型

ESP8266可以连接多种类型的传感器,包括但不限于:

温度传感器(如DHT11、DHT22)

光照传感器(如LDR)

气体传感器(如MQ-2、MQ-135)

加速度传感器(如MPU6050)

水位传感器(如浮子开关)

2.2连接方法

2.2.1DHT11温度湿度传感器

DHT11是一款常用的温湿度传感器,适用于室内环境监测。它通过一个数字信号引脚与ESP8266连接。

硬件连接图:

DHT11|ESP8266

VCC|3.3V

GND|GND

DATA|GPIO2

示例代码:

#includeDHT.h

#includeESP8266WiFi.h

#defineDHTPIN2//DHT11数据引脚连接到ESP8266的GPIO2

#defineDHTTYPEDHT11//使用DHT11传感器

DHTdht(DHTPIN,DHTTYPE);

constchar*ssid=yourSSID;

constchar*password=yourPassword;

constchar*server=yourServerAddress;//例如/data

voidsetup(){

Serial.begin(115200);

dht.begin();

//连接Wi-Fi

WiFi.begin(ssid,password);

Serial.print(Connectingto);

Serial.print(ssid);

while(WiFi.status()!=WL_CONNECTED){

delay(1000);

Serial.print(.);

}

Serial.println(connected);

//连接服务器

Serial.print(Connectingto);

Serial.print(server);

client.connect(server,80);

Serial.println(connected);

}

voidloop(){

//读取温湿度数据

floathumidity=dht.readHumidity();

floattemperature=dht.readTemperature();

//检查读取是否成功

if(isnan(humidity)||isnan(temperature)){

Serial.println(FailedtoreadfromDHTsensor!);

return;

}

//打印读取的数据

Serial.print(Humidity:);

Serial.print(humidity);

Serial.print(%\t);

Serial.print(Temperature:);

Serial.print(temperature);

Serial.println(*C);

//将数据发送到服务器

Stringurl=http://yourServerAddress/data?humidity=+String(humidity)+temperature=+String(temperature);

if(client.connect(server,80)){

Serial.println(Connectedtoserver);

client.print(GET+url+HTTP/1.1\r\n+

Host:+server+\r\n+

Connection:close\r\n\r\n);

delay(1000);

client.st