毕设笔记05-使用python读取Arduino端口温湿度数据并保存到本地

今天来实践将串口数据保存到本地,通过串口读取DHT11温湿度传感器所检测的值,方便之后上传数据。
1、Arduino代码
该代码已经预先装好了DHT11所需要的库文件,如果不会装库文件可以参考之前发的帖子毕设笔记04

#include 
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

自动安装等待即可,如下图就表明安装成功:
毕设笔记05-使用python读取Arduino端口温湿度数据并保存到本地_第1张图片
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中运行):
毕设笔记05-使用python读取Arduino端口温湿度数据并保存到本地_第2张图片
打开保存数据的 test.txt 文件,即可看到温湿度数据已经保存到文件之中。
毕设笔记05-使用python读取Arduino端口温湿度数据并保存到本地_第3张图片

你可能感兴趣的:(Arduino)