从arduino读取数据并添加时间戳

时间:2017-06-21 23:46:17

标签: python arduino pyserial

我想使用串口将数据从arduino发送到计算机。然后我想根据当前时间戳记录时间,并将其保存在txt文件中。我该怎么办?你的建议对我非常有用。

这是我在arduino上的代码:

#include <DHT.h>

#define DHTPIN 2   
#define DHTTYPE DHT11  

DHT dht(DHTPIN, DHTTYPE);

void setup(){
    Serial.begin(9600);
    dht.begin();
}
void loop(){
    float hum = dht.readHumidity();
    float temp= dht.readTemperature();

    Serial.print("Humidity: ");
    Serial.print(hum);
    Serial.print(" %, Temp: ");
    Serial.print(temp);
    Serial.println(" Celsius");
    delay(2000);
}

2 个答案:

答案 0 :(得分:2)

您可以将此python脚本用作接收器代码。 改变端口&#39;用你的Arduino端口。

如果缺少序列库,请不要忘记:https://pypi.python.org/pypi/pyserial

import serial
import time
import datetime

ser = serial.Serial(
    port='COM5',\
    baudrate=9600,\
    parity=serial.PARITY_NONE,\
    stopbits=serial.STOPBITS_ONE,\
    bytesize=serial.EIGHTBITS,\
        timeout=0)

print("connected to: " + ser.portstr)

while True:
    line = ser.readline()
    timestamp = str(time.time())
    #timestamp = str(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))
    with open('output.txt', 'a') as pyfile:
        pyfile.write(line + ' ' + timestamp +'\n')

ser.close()

答案 1 :(得分:0)

如果您使用的是Windows,则可以尝试以下免费控制台应用程序: https://hiterminallogger.sourceforge.io/ 只需在bash控制台模拟器中下载并运行exe

$./HiTerminalLogger.exe COM<portnumber> 9600

您将获得带有时间戳的日志以及html报告。 您还可以突出显示文本以使其更加醒目。

enter image description here