在树莓派上用DHT11采集温湿度把数据通过TCP服务端端发送到客服端用python
时间: 2023-12-11 07:05:06 浏览: 61
好的,我可以帮你解答这个问题。
首先,你需要安装 DHT11 传感器的相关库,可以使用 Adafruit_DHT 库。你可以通过以下命令安装该库:
```
sudo pip3 install Adafruit_DHT
```
然后,你需要编写采集温湿度并发送数据的 Python 脚本。可以参考以下代码:
```python
import socket
import Adafruit_DHT
# 设置 TCP 服务器的 IP 地址和端口号
TCP_IP = '192.168.1.100'
TCP_PORT = 5005
# 初始化 DHT11 传感器
DHT_SENSOR = Adafruit_DHT.DHT11
DHT_PIN = 4
# 创建 TCP 客户端
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((TCP_IP, TCP_PORT))
# 循环采集温湿度并发送数据
while True:
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
# 将温湿度数据转换为字符串并发送到服务器
data = f"Temperature={temperature:.1f}C, Humidity={humidity:.1f}%"
client_socket.send(data.encode())
```
在这个代码中,我们先设置了 TCP 服务器的 IP 地址和端口号。然后,通过 Adafruit_DHT 库初始化了 DHT11 传感器,并在循环中采集温湿度数据。最后,将采集到的数据转换为字符串并通过 TCP 客户端发送到服务器。
需要注意的是,该脚本是一个无限循环的程序,可以通过 Ctrl+C 终止。另外,你需要将 IP 地址和端口号替换为你自己的服务器地址和端口号。
希望这个回答能够帮助到你。如果有任何问题,欢迎随时向我提问。