2017-06-21 1224 views
0

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

上的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); 
} 
+1

你接收数据通过串行端口在电脑上?你的Python代码在哪里读取? – stevieb

回答

1

您可以使用此python脚本作为您的接收器代码。 用你的Arduino端口改变'port'。

不要忘记下载序列库,如果它丢失: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()