我想使用串口将数据从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);
}
答案 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报告。 您还可以突出显示文本以使其更加醒目。