題:
將Arduino傳感器數據保存到文本文件
desNotes
2009-10-31 17:58:12 UTC
view on stackexchange narkive permalink

如何將從傳感器獲取的數據保存到計算機上的文本文件中?

八 答案:
Nikolaus Gradwohl
2009-11-01 22:38:24 UTC
view on stackexchange narkive permalink

您可以使用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(); //停止程序}  
“處理方”代碼應該放在哪裡-使用相同的arduino代碼或單獨的C腳本?
在單獨的處理腳本中-處理未編譯為C,而是編譯為Java
@UladKasach“處理”是一個多平台編程環境。實際上,這是世界上最愚蠢的名稱的編程環境。
Craig Trader
2009-11-03 22:36:40 UTC
view on stackexchange narkive permalink

另一個選擇是使用SD卡讀取器/寫入器,然後將文件寫入SD卡。收集完數據後,請用工作站計算機換出SD卡。這種方法將使您可以在與計算機斷開連接的情況下運行項目,並為大量數據提供非易失性存儲。

endolith
2011-01-21 21:20:29 UTC
view on stackexchange narkive permalink

程序 gobetwino將以最小的努力將來自Arduino的傳感器值記錄到文本文件或電子表格中。它還可以自動執行計算機上的操作,添加時間戳(因此您無需將其編程到arduino中)等。

alt text

Cyberspice
2009-10-31 20:17:14 UTC
view on stackexchange narkive permalink

最簡單的方法是使用串行庫並將其輸出。然後,您可以使用終端程序將輸出捕獲到文本文件中。超級終端在Windows,Linux上的Teraterm和OS X上的Z Term上可用。

Melanie

so-user
2011-11-17 01:57:31 UTC
view on stackexchange narkive permalink

如果要直接將傳感器數據寫入計算機上的文件而不必復制並粘貼來自串行監視器窗口的輸出,請嘗試直接從串行端口讀取數據流(這是串行監視器的工作)無論如何,我懷疑)。在Mac / Linux上,請執行以下操作:

  cat /dev/cu.usbmodem1d11  

上帝知道Windows計算機上的等效功能。

您可能還希望將時間戳與每個傳感器的讀數相關聯,在這種情況下,您可能需要用某種腳本替換該“ cat”命令。
Ulad Kasach
2017-04-16 23:01:00 UTC
view on stackexchange narkive permalink

您可以創建一個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);
 
G M
2018-06-26 17:56:35 UTC
view on stackexchange narkive permalink

我發現使用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())])
 
Cyberspice
2009-10-31 20:20:31 UTC
view on stackexchange narkive permalink

下一步是使用以太網屏蔽或WIZ810MJ板之類的東西,並通過Internet啟用arduino。然後,您可以向其中寫入數據,並將其發送到網絡服務器進行整理。我在活體溫度監測器中完成此操作。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...