毕设笔记05-使用python读取Arduino端口温湿度数据并保存到本地
程序员文章站
2022-03-22 12:43:16
...
今天来实践将串口数据保存到本地,通过串口读取DHT11温湿度传感器所检测的值,方便之后上传数据。
1、Arduino代码
该代码已经预先装好了DHT11所需要的库文件,如果不会装库文件可以参考之前发的帖子毕设笔记04
#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4
void setup(){
Serial.begin(9600);
Serial.println("DHT TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT11LIB_VERSION);
Serial.println();
Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}
void loop(){
int chk;
Serial.print("DHT11, \t");
chk = DHT.read(DHT11_PIN);
switch (chk){
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
default:
Serial.print("Unknown error,\t");
break;
}
Serial.print(DHT.humidity,1);
Serial.print(",\t");
Serial.println(DHT.temperature,1);
delay(1000);
}
将代码编译并下载到Arduino开发板,DHT11温湿度传感器与Arduino接线如下表:
DHT11 | Arduino |
---|---|
VCC | 3.3V |
DATA | DIGITAL 4 |
GND | GND |
2、安装 pyserial模块
pyserial模块封装了对串口的访问,系统要求:python 2.3及以上版本。
在电脑命令提示符窗口切换到python的安装路径,执行如下命令:
pip install pyserial
自动安装等待即可,如下图就表明安装成功:
3、python代码
import time
import serial
ser = serial.Serial(
port='COM4', #端口号
baudrate=9600,
parity=serial.PARITY_ODD, # 校验位
stopbits=serial.STOPBITS_TWO, # 停止位
bytesize=serial.SEVENBITS # 数据位
)
data = ''
while True:
data = ser.readline()
t = time.time()
ct = time.ctime(t)
print(ct, ':')
print(data)
f = open('D:/test.txt', 'a')#数据保存的路径
f.writelines(ct)
f.writelines(':\n')
f.writelines(data.decode('utf-8'))
f.close()
注:端口号在Arduino连接电脑后在设备管理器中查看,自己的是COM几就修 改为COM几
在自己想要保存数据的文件夹新建 .txt文件,命令随意,在代码上修改数据保存的路径
在python自身提供的IDLE集成开发环境执行如上代码,或者直接在命令提示符窗口下执行,执行结果如下(cmd中运行):
打开保存数据的 test.txt 文件,即可看到温湿度数据已经保存到文件之中。
上一篇: 前端之json,ajax和jsonp