如何將從傳感器獲取的數據保存到計算機上的文本文件中?
如何將從傳感器獲取的數據保存到計算機上的文本文件中?
您可以使用serial-lib將傳感器數據寫入串行端口,並編寫一個小型處理程序,該程序從串行端口讀取數據並將其寫入文件。 arduino代碼中的
使用設置方法
Serial.begin(9600);
初始化序列庫在處理端使用循環方法
Serial.println(value);
將傳感器值傳輸到串行接口使用PrintWriter將從串行端口讀取的數據寫入文件
導入processing.serial。*; Serial mySerial; PrintWriter輸出; void setup(){mySerial = new Serial(this, Serial.list()[0],9600);輸出= createWriter(“ data.txt”);} void draw(){if(mySerial.available()> 0){字符串值= mySerial.readString();如果(value!= null){output.println(value); }}} void keyPressed(){output.flush(); //將剩餘數據寫入文件output.close(); //完成文件exit(); //停止程序}
另一個選擇是使用SD卡讀取器/寫入器,然後將文件寫入SD卡。收集完數據後,請用工作站計算機換出SD卡。這種方法將使您可以在與計算機斷開連接的情況下運行項目,並為大量數據提供非易失性存儲。
程序 gobetwino將以最小的努力將來自Arduino的傳感器值記錄到文本文件或電子表格中。它還可以自動執行計算機上的操作,添加時間戳(因此您無需將其編程到arduino中)等。
最簡單的方法是使用串行庫並將其輸出。然後,您可以使用終端程序將輸出捕獲到文本文件中。超級終端在Windows,Linux上的Teraterm和OS X上的Z Term上可用。
Melanie
如果要直接將傳感器數據寫入計算機上的文件而不必復制並粘貼來自串行監視器窗口的輸出,請嘗試直接從串行端口讀取數據流(這是串行監視器的工作)無論如何,我懷疑)。在Mac / Linux上,請執行以下操作:
cat /dev/cu.usbmodem1d11
上帝知道Windows計算機上的等效功能。
您可以創建一個python腳本來讀取串行端口並將結果寫入文本文件:
###############
##腳本偵聽串行端口並將內容寫入文件
##############
##需要安裝pySerial
導入序列
serial_port ='/ dev / ttyACM0';
baud_rate = 9600;#在arduino中,Serial.begin(baud_rate)
write_to_file_path =“ output.txt”;
output_file = open(write_to_file_path,“ w +”);
ser = serial.Serial(串行端口,波特率)
而True:
行= ser.readline();
line = line.decode(“ utf-8”)#ser.readline返回二進制,轉換為字符串
打印(行);
output_file.write(line);
我發現使用Python腳本更容易,更安全。我通常基於串行庫使用此代碼。還要使用datetime模塊添加時間戳是很常見的:
導入序列
從datetime導入datetime
傳感器=“ DH11”
serial_port ='/ dev / ttyACM0'
baud_rate = 9600
路徑=“%s_LOG_%s.txt”%(str(datetime.now()),傳感器)
ser = serial.Serial(串行端口,波特率)
使用open(path,'w +')as f:
而True:
行= ser.readline()
f.writelines([line.strip(),“ t =%s \ n”%(datetime.now())])
下一步是使用以太網屏蔽或WIZ810MJ板之類的東西,並通過Internet啟用arduino。然後,您可以向其中寫入數據,並將其發送到網絡服務器進行整理。我在活體溫度監測器中完成此操作。