工程筆記本 / IOT物聯網

IOT物聯網

[Wio Terminal ]透過microSD卡或PuTTy 儲存感測器數值

CAVEDU 阿吉 - 雜工📅 2023-06-27👁 20

前言

Wio Terminal 開發板支援自家的 Grove 接頭感測器,要讀取各種數值是很方便的,還能把結果直接呈現在本體上的彩色 LCD 小螢幕上,但別忘了 Wio 還有一個 SD 卡插槽,方便您定期寫入資料後進行後續應用 (data logger)。本文章將會介紹兩種方法供讀者選擇。
撰寫/攝影 邱柏憲
時間  30分鐘 材料表  
難度  1(滿分5)

本文

本文將分別介紹如何使用 micro SD 記憶卡來儲存資料,以及透過 pyTTY 小軟體直接把資料丟回電腦,請根據您的需求來選擇喜歡的做法喔!如果您才剛取得 Wio Terminal 的話,請參考相關文章以及阿吉老師錄製的 tinyML 小教室喔! [embedyt] https://www.youtube.com/watch?v=sGpRnlGPapY[/embedyt]

方法一:利用microSD儲存數值

Wio Terminal 的 micro SD 卡插槽位於側面 (開關下方)。安裝microSD卡時須注意方向,切記不可硬塞否則可能造成損壞。Seeed 原廠提供了 microSD卡的函式庫,更多資訊請點我Wio Terminal 發展板 本程式的流程為按下按鈕A (Wio Terminal 上緣的中間按鈕)後,便會讀取光感測器的數值並寫入 SD 卡中的 .csv 檔。.csv是相當常見的結構化資料儲存方式,後續用 python pandas 函式庫來處理非常方便。 請將以下程式碼透過 Arduino IDE 燒錄到Wio Terminal。註解為程式碼的簡單介紹。注意:此程式需要於Wio Terminal側邊安裝SD卡 (當然啦!) 才可正常執行 [pastacode lang="cpp" manual="%23include%20%3CSPI.h%3E%0A%23include%20%3CSeeed_FS.h%3E%0A%23include%20%22SD%2FSeeed_SD.h%22%0A%0AFile%20myFile%3B%0Achar%20str%5B4%5D%3B%0A%0A%2F%2F%E8%A8%AD%E5%AE%9A%E6%AA%94%E6%A1%88%E5%90%8D%E7%A8%B1%C2%A0%0Aconst%20char*%20data_file%20%3D%20%22test.csv%22%3B%0A%0Avoid%20setup()%20%7B%0A%C2%A0%20pinMode(WIO_KEY_A%2C%20INPUT_PULLUP)%3B%0A%C2%A0%20pinMode(WIO_LIGHT%2C%20INPUT)%3B%0A%C2%A0%20Serial.begin(9600)%3B%0A%C2%A0%20Serial.print(%22Initializing%20SD%20card...%22)%3B%0A%0A%C2%A0%20%2F%2F%E8%A8%AD%E5%AE%9ASD%E5%8D%A1%E7%9A%84%E9%80%A3%E6%8E%A5%E8%A8%AD%E5%AE%9A%0A%C2%A0%20if%20(!SD.begin(SDCARD_SS_PIN%2C%20SDCARD_SPI))%20%7B%0A%C2%A0%20%C2%A0%20Serial.println(%22initialization%20failed!%22)%3B%0A%C2%A0%20%7D%0A%7D%0A%0Avoid%20loop()%20%7B%0A%C2%A0%20int%20light%20%3D%20analogRead(WIO_LIGHT)%3B%0A%C2%A0%20%2F%2F%E6%8C%89%E4%B8%8B%E6%8C%89%E9%88%95A%E5%BE%8C%E6%89%8D%E6%9C%83%E5%84%B2%E5%AD%98%0A%C2%A0%20if%20(digitalRead(WIO_KEY_A)%20%3D%3D%20LOW)%20save_data_to_SD_Card(String(light))%3B%0A%7D%0A%0Avoid%20save_data_to_SD_Card(String%20light)%20%7B%0A%C2%A0%20%2F%2F%E9%96%8B%E5%95%9FSD%E5%8D%A1%E4%B8%AD%E7%9A%84test.csv%EF%BC%8C%E5%A6%82%E6%9C%AA%E6%9C%89%E6%AD%A4%E6%AA%94%E6%A1%88%E5%89%87%E6%9C%83%E6%96%B0%E5%A2%9E%EF%BC%8C%E5%A6%82%E6%9C%89%E5%89%87%E6%9C%83%E7%94%B1%E8%B3%87%E6%96%99%E6%9C%AB%E7%AB%AF%E6%8E%A5%E7%BA%8C%0A%C2%A0%20myFile%20%3D%20SD.open(data_file%2C%20FILE_APPEND)%3B%0A%C2%A0%20if%20(myFile)%0A%C2%A0%20%7B%0A%C2%A0%20%C2%A0%20%2F%2F%E5%B0%87%E7%B4%80%E9%8C%84%E8%A6%8F%E6%A0%BC%E8%A8%AD%E8%A8%88%E6%88%90.csv%E7%9A%84%E6%A0%BC%E5%BC%8F%EF%BC%8C%E5%89%8D%E9%9D%A2%E7%9A%84light%E7%82%BA%E5%85%89%E6%84%9F%E6%87%89%E5%99%A8%E7%9A%84%E6%95%B8%E5%80%BC%EF%BC%8C%E5%BE%8C%E9%9D%A2%E7%9A%841%E6%98%AF%E7%82%BA%E4%BA%86%E7%A4%BA%E7%AF%84%E6%A0%BC%E5%BC%8F%EF%BC%8C%E5%85%A9%E5%80%8B%E6%95%B8%E5%80%BC%E9%96%93%E5%89%87%E7%94%A8%E9%80%97%E8%99%9F%E9%9A%94%E9%96%8B%E3%80%82%E9%80%99%E9%82%8A%E9%A0%88%E6%B3%A8%E6%84%8F%E8%BC%B8%E5%85%A5%E7%9A%84%E9%A1%9E%E5%88%A5%E9%9C%80%E8%A6%81%E7%82%BAString(%E5%AD%97%E4%B8%B2)%0A%C2%A0%20%C2%A0%20String%20data_record%20%3D%20light%20%2B%20%22%2C%22%20%2B%20%221%22%3B%0A%C2%A0%20%C2%A0%20myFile.println(data_record)%3B%0A%C2%A0%20%C2%A0%2F%2F%E9%97%9C%E9%96%89%E6%AA%94%E6%A1%88%C2%A0%0A%C2%A0%20%C2%A0myFile.close()%3B%0A%C2%A0%20%C2%A0%20Serial.println(data_record)%3B%0A%C2%A0%20%C2%A0%20Serial.println(%22Data%20saved%20successfully!%5Cn%22)%3B%0A%C2%A0%20%7D%0A%C2%A0%20delay(1000)%3B%0A%7D" message="" highlight="" provider="manual"/] 執行時,可在 Serial mointor 看到相關訊息:   接著將 SD 卡退出並用電腦讀取。此時會發現 SD 卡找到一個 test.csv 檔,使用 Excel 或合適的文字編輯器開啟後就會看到剛剛所紀錄的資料了!

方法二:藉由PuTTY與Arduino IDE將資料直接儲存於電腦中

Wio Terminal 可藉由PuTTY 與電腦進行溝通,我們便可利用此功能將資料儲存於電腦中。請由本連結來下載對應版本的PuTTY 請將以下程式碼透過 Arduino IDE 燒錄到Wio Terminal。註解為程式碼的簡單介紹: [pastacode lang="cpp" manual="%23include%20%3CSPI.h%3E%0A%0Avoid%20setup()%20%7B%0A%C2%A0%20pinMode(WIO_KEY_A%2C%20INPUT_PULLUP)%3B%0A%C2%A0%20pinMode(WIO_LIGHT%2C%20INPUT)%3B%0A%C2%A0%20Serial.begin(9600)%3B%0A%0A%7D%0A%0A%0Avoid%20loop()%20%7B%0A%C2%A0%20%2F%2F%E8%AE%80%E5%8F%96%E5%85%89%E6%84%9F%E6%87%89%E5%99%A8%E7%9A%84%E6%95%B8%E5%80%BC%0A%C2%A0%20int%20light%20%3D%20analogRead(WIO_LIGHT)%3B%0A%C2%A0%20%2F%2F%E6%8C%89%E4%B8%8B%E6%8C%89%E9%88%95A%E5%9F%B7%E8%A1%8C%0A%C2%A0%20if%20(digitalRead(WIO_KEY_A)%20%3D%3D%20LOW)%20putty_read(String(light))%3B%0A%7D%0A%0A%C2%A0%20%C2%A0%0Avoid%20putty_read(String%20light)%0A%7B%0A%C2%A0%20%2F%2F%E5%89%8D%E9%9D%A2%E7%9A%84light%E7%82%BA%E5%85%89%E6%84%9F%E6%87%89%E5%99%A8%E7%9A%84%E6%95%B8%E5%80%BC%EF%BC%8C%E5%BE%8C%E9%9D%A2%E7%9A%841%E6%98%AF%E7%82%BA%E4%BA%86%E7%A4%BA%E7%AF%84%E6%A0%BC%E5%BC%8F%EF%BC%8C%E5%85%A9%E5%80%8B%E6%95%B8%E5%80%BC%E9%96%93%E5%89%87%E7%94%A8%E9%80%97%E8%99%9F%E9%9A%94%E9%96%8B%E3%80%82%E9%80%99%E9%82%8A%C2%A0%C2%A0%0A%C2%A0%20%E9%A0%88%E6%B3%A8%E6%84%8F%E8%BC%B8%E5%85%A5%E7%9A%84%E9%A1%9E%E5%88%A5%E9%9C%80%E8%A6%81%E7%82%BAString(%E5%AD%97%E4%B8%B2)%0A%C2%A0%20String%20data_record%20%3D%20light%20%2B%20%22%2C%22%20%2B%20%221%22%3B%0A%C2%A0%20Serial.println(data_record)%3B%0A%C2%A0%20delay(1000)%3B%0A%7D" message="" highlight="" provider="manual"/] PuTTY 軟體端也要進行一些設定。開啟PuTTY後於左側點擊 Session->Logging (下圖紅框),將Session logging 模式選為 Printable output,之後點擊Browse選擇存檔的位置與檔案名稱,並將副檔名設定為.csv (下圖藍框)。完成後回到Session頁面。(此步驟需注意,操作時需關閉Arduino IDE中的Serial Monitor視窗頁面,否則 com port 會被佔住而無法操作)   如下圖,將連線方式改為 Serial (下圖紅框),接著輸入Wio Terminal的COM Port 與鮑率9600 (下圖藍框)。設定完成後按下最下方的 Save 按鈕儲存,之後再次開啟便可以不用再次設定。確認前面步驟已完成後,按下底下的Open按鈕,即可開始蒐集資料。 按下 Wio Terminal 的按鈕A後,就會把讀取的光感測器數值顯示於PuTTY中,如下圖: 也可以在您所指定的路徑找到 .csv檔,當然一樣開起來看看囉!   本文介紹了兩種資料儲存方式,請根據您的實際情境選一種吧。取得資料後要進行分析處理就容易許多了。希望這次的分享對大家在做作品時有所幫助,如果有其他的資料儲存方式也歡迎分享!  

相關文章 📎

留言 💬 (0)

還沒有留言,來當第一個。