99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

樹莓派Pico文件系統(tǒng)應(yīng)用:數(shù)據(jù)記錄器

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-10-24 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在前面的章節(jié)中,你一直在使用樹莓派 Pico 連接到樹莓派或其他電腦。不過,與所有微控制器一樣,沒有理由讓你的 Pico 必須以這種方式綁定。它是一個(gè)功能齊全的獨(dú)立系統(tǒng),具有處理能力、內(nèi)存和它自己工作所需的一切。

在本章中,你將學(xué)習(xí)如何使用文件系統(tǒng)來創(chuàng)建、寫入和讀取文件,允許你將 Pico 放在任何你喜歡的地方,并讓它記錄數(shù)據(jù)以供以后訪問——將其轉(zhuǎn)換為所謂的數(shù)據(jù)記錄器。

文件系統(tǒng)

文件系統(tǒng)是樹莓派 Pico 存儲(chǔ)所有程序的地方。它的功能相當(dāng)于樹莓派的 microSD 卡,或筆記本電腦的硬盤。它是一種非易失性存儲(chǔ),這意味著即使你拔掉 Pico 的 micro USB 線,你保存在那里的任何東西也不會(huì)丟失。

連接上樹莓派 Pico 到你的樹莓派上,啟動(dòng) Thonny。單擊「打開」圖標(biāo),然后在彈出的窗口中單擊 MicroPython 設(shè)備。你將看到到目前為止所編寫 的所有程序的列表,這些程序存儲(chǔ)在你的 Pico 文件系統(tǒng)中?,F(xiàn)在暫不選擇,所以單擊「取消」。

單擊 Shell 區(qū)域的底部,開始在交互模式下使用 Pico。鍵入代碼:

file = open("test.txt", "w")

這將打開一個(gè)名為 test.txt 的文件進(jìn)行寫入,指令的 “w” 參數(shù)代表寫入。鍵入回車之后,Shell 區(qū)域沒有任何內(nèi)容,因?yàn)楸M管你已經(jīng)打開了文件,但還沒有對(duì)它做任何操作。鍵入代碼:

file.write("Hello, File!")

鍵入回車之后,你會(huì)看到數(shù)字 12 出現(xiàn)。這是 MicroPython 向你確認(rèn)它已經(jīng)打開的文件寫入了 12 個(gè)字節(jié)。消息中字符的數(shù)量,包括字母、逗號(hào)、 空格和感嘆號(hào),共有 12 個(gè)字符(每個(gè)字符占一個(gè)字節(jié))。058efa4a-7215-11ee-939d-92fbcf53809c.jpg

當(dāng)你寫入文件后,你需要手動(dòng)關(guān)閉文件,這才能確保數(shù)據(jù)寫到文件系統(tǒng)。如果你不關(guān)閉文件,數(shù)據(jù)可能還沒有被正真寫入文件。鍵入代碼:

file.close()

你的文件現(xiàn)在安全地存儲(chǔ)在 Pico 的文件系統(tǒng)中。單擊 Thonny 工具欄上的「打開」圖標(biāo),單擊 MicroPython 設(shè)備,滾動(dòng)文件列表,直到找到 test.txt。點(diǎn)擊它,然后點(diǎn)擊確定打開它。你會(huì)看到文件的內(nèi)容。

要通過 MicroPython 讀取文件的話,回到 Shell 區(qū)域的底部,并鍵入代碼:

file = open("test.txt")

注意,這次沒有 “w” 參數(shù),這是因?yàn)橹皇亲x取文件,而不是寫入。你可以用 “r” 參數(shù)替代 “w” 參數(shù),但是 MicroPython 默認(rèn)以讀模式打開文件,所以可以省去這里的參數(shù)。鍵入代碼:

file.read()

你將看到寫入文件的內(nèi)容輸出到了 Shell 區(qū)域。祝賀你!你可以在你的樹莓派 Pico 上讀寫文件了!05a0c234-7215-11ee-939d-92fbcf53809c.jpg

在你讀完之后,同樣記得關(guān)閉文件。在讀取文件后關(guān)閉文件并不像在寫入文件時(shí)關(guān)閉文件那么重要,但無論如何這都是一個(gè)好習(xí)慣:

file.close()

記錄溫度

現(xiàn)在你知道了如何打開、寫入和讀取文件,你已經(jīng)具備了在 Pico 上構(gòu)建數(shù)據(jù)記錄器所需的一切。

在 Thonny 上點(diǎn)擊 New 圖標(biāo)創(chuàng)建一個(gè)新的程序,并鍵入代碼:

import machine
import utime
sensor_temp = machine.ADC(machine.ADC.CORE_TEMP)
conversion_factor = 3.3 / (65535)
reading = sensor_temp.read_u16() * conversion_factor temperature = 27 - (reading - 0.706)/0.001721

你可能見過這段代碼,它與之前「使用樹莓派 Pico 內(nèi)置的溫度傳感器(https://pico.nxez.com/2023/09/10/how-to-use-the-temperature-sensor-built-into-the-raspberry-pi-pico.html)」的代碼相同。

來自傳感器的讀數(shù)是要記錄到文件系統(tǒng)的數(shù)據(jù),所以你不希望像以前那樣簡(jiǎn)單地將它們打印出來。打開一個(gè)要寫的文件,在底部添加以下一行。

file = open("temps.txt", "w")

如果文件系統(tǒng)中不存在該文件,則創(chuàng)建該文件;如果它這樣做了,它就會(huì)覆蓋它——清空它的內(nèi)容,以便你寫入新數(shù)據(jù)。

現(xiàn)在,你需要向文件寫入從溫度傳感器讀到的數(shù)值:

file.write(str(temperature))

和前面一樣,為了確保數(shù)據(jù)被寫入,你需要關(guān)閉文件:

file.close()

單擊 Run 圖標(biāo)并將程序保存到 MicroPython 設(shè)備 datallogger.py 中。這個(gè)程序只需要幾秒鐘就可以運(yùn)行完成。當(dāng) >>> 示符重新出現(xiàn)在 Shell 區(qū)域,點(diǎn)擊進(jìn)入它,并輸入以下內(nèi)容來打開和讀取你的新文件:

file = open("temps.txt")
file.read()
file.close()

你將看到程序讀取的溫度顯示在 Shell 區(qū)域。恭喜!你的數(shù)據(jù)記錄器可以正常工作了!05bb674c-7215-11ee-939d-92fbcf53809c.jpg

為了使數(shù)據(jù)記錄器更強(qiáng)大,修改它,讓它支持處理大量的讀數(shù)。單擊 Run,并再次讀取文件:

file = open("temps.txt")
file.read()
file.close()

請(qǐng)注意,文件中仍然只有一個(gè)讀取。當(dāng)程序再次打開文件進(jìn)行寫入時(shí),它會(huì)自動(dòng)刪除先前的內(nèi)容——這意味著每次程序運(yùn)行時(shí),它都會(huì)刪除文件并存儲(chǔ)一次讀取。

要解決這個(gè)問題,你需要修改程序。如果你像以前那樣關(guān)閉文件,你將無法再次寫入它,除非重新打開它并刪除它的內(nèi)容。如果不關(guān)閉文件,數(shù)據(jù)將永遠(yuǎn)不會(huì)寫入文件系統(tǒng)。解決方式是使用 file.flush() 刷新文件,而不是關(guān)閉它。

當(dāng)你寫入一個(gè)文件,但數(shù)據(jù)實(shí)際上并沒有寫入文件系統(tǒng)時(shí),它被存儲(chǔ)在所謂的緩沖區(qū)中——一個(gè)臨時(shí)存儲(chǔ)區(qū)域。當(dāng)你關(guān)閉文件時(shí),緩沖區(qū)將以稱為刷新的進(jìn)程寫入文件。使用 file.flush() 等價(jià)于 file.close(),它會(huì)將緩沖區(qū)的內(nèi)容刷新到文件中——但與 file.close() 不同的是,文件保持打開狀態(tài),以便以后寫入更多數(shù)據(jù)。

完整的程序如下:

import machine
import utime
sensor_temp = machine.ADC(machine.ADC.CORE_TEMP)
conversion_factor = 3.3 / (65535)
file = open("temps.txt", "w")
while True:
  reading = sensor_temp.read_u16() * conversion_factor
  temperature = 27 - (reading - 0.706)/0.001721
  file.write(str(temperature))
  file.flush()
  utime.sleep(10)

點(diǎn)擊 Run 圖標(biāo)并數(shù)到 60,然后點(diǎn)擊停止圖標(biāo)?,F(xiàn)在在腳本區(qū)域打開并讀取你的文件:

file = open("temps.txt")
file.read()
file.close()

好消息是你的程序已經(jīng)工作了,并且你在一個(gè)文件中記錄了多個(gè)讀數(shù)——大約 6 個(gè),根據(jù)你的計(jì)數(shù)速度有幾個(gè)誤差。壞消息是,它們都混在一起在一條線上——這使得閱讀起來很困難。

要解決這個(gè)問題,你需要在數(shù)據(jù)寫入文件時(shí)對(duì)其進(jìn)行格式化。回到程序中的 file.write() 行,并修改它,使其看起來像:05c5d394-7215-11ee-939d-92fbcf53809c.jpg

file.write(str(temperature) + "
")

加號(hào)(+)告訴 MicroPython 你想要追加后面的內(nèi)容,將兩個(gè)字符串連接在一起。” ” 是一個(gè)被稱為控制字符的特殊字符串——它的作用相當(dāng)于按下回車鍵,這意味著數(shù)據(jù)日志中的每一行都應(yīng)該是單獨(dú)的一行。

單擊 Run 圖標(biāo),再次數(shù)到 60,然后單擊停止。打開并讀取你的文件:

file = open("temps.txt")
file.read()
file.close()

你已經(jīng)取得了進(jìn)展,但它仍然不正確: 控制字符的行為不像一個(gè)按鍵輸入,但打印為兩個(gè)空格字符。這是因?yàn)?file.read() 引入了文件的原始內(nèi)容,而沒有嘗試為屏幕格式化它。05ce4498-7215-11ee-939d-92fbcf53809c.jpg


要解決格式問題,你需要用 print() 函數(shù)包裝讀取的文件:

file = open("temps.txt")
print(file.read())
file.close()

這一次,你將看到每一份閱讀材料都被打印出來,格式整齊,易于閱讀。05d1f796-7215-11ee-939d-92fbcf53809c.jpg


你已經(jīng)構(gòu)建了一個(gè)數(shù)據(jù)記錄器,它可以進(jìn)行多次讀取并將它們存儲(chǔ)在你的 Pico 的文件系統(tǒng)中!

文件存儲(chǔ)

樹莓派 Pico 的文件系統(tǒng)的大小是 1.375MiB,這意味著它可以容納 1,441,792 字節(jié)的數(shù)據(jù)。保存在 Pico 上的每個(gè)文件,包括數(shù)據(jù)記錄器的存儲(chǔ)文件,都會(huì)占用空間。填滿存儲(chǔ)需要多長(zhǎng)時(shí)間取決于你有多少其他文件以及你的數(shù)據(jù)記錄器節(jié)省一次讀取的頻率:每 10 秒讀取 9 個(gè)字節(jié),你將在大約 18.5 天內(nèi)填滿 1.375MiB;如果你每分鐘讀取一次數(shù)據(jù),你的數(shù)據(jù)記錄器可以運(yùn)行 111 天左右;如果你每小時(shí)只讀一次,你的數(shù)據(jù)記錄器可以運(yùn)行 18 年以上!

無論是否連接到樹莓派或其他電腦,樹莓派 Pico 文件系統(tǒng)都能正常工作。如果你有一個(gè) micro USB 充電器或 USB 充電寶,你可以把數(shù)據(jù)記錄器放在任何地方,并讓它自己運(yùn)行。但你需要一種方法,讓你的程序運(yùn)行,而不必點(diǎn)擊 Thonny 的 Run 圖標(biāo)。

在不連接計(jì)算機(jī)的情況下使用,你可以將程序保存在一個(gè)特殊的文件名 main.py 下。當(dāng) MicroPython 在它的文件系統(tǒng)中發(fā)現(xiàn)一個(gè)名為 main.py 的文件時(shí),它會(huì)在每次上電或重置時(shí)自動(dòng)運(yùn)行這個(gè)文件。

現(xiàn)在,斷開樹莓派 Pico 和你的樹莓派,把它帶到另一個(gè)房間,連接到充電器或電池組上。把它放在那里十分鐘,然后回來把插頭拔掉。

放回你的樹莓派,插上電源,再讀一遍你的文件。你會(huì)看到來自另一個(gè)房間的讀數(shù),證明你的 Pico 可以沒有樹莓派的幫助也能運(yùn)行得很好。

恭喜你!你的數(shù)據(jù)記錄器現(xiàn)在是完全功能和完全便攜,準(zhǔn)備好了你可以隨時(shí)隨地記錄你需要的數(shù)據(jù)!

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    296

    瀏覽量

    20392
  • Pico
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    17646
  • 數(shù)據(jù)記錄器

    關(guān)注

    0

    文章

    54

    瀏覽量

    12953
  • 樹莓派
    +關(guān)注

    關(guān)注

    121

    文章

    2007

    瀏覽量

    107463

原文標(biāo)題:樹莓派 Pico 文件系統(tǒng)應(yīng)用:數(shù)據(jù)記錄器

文章出處:【微信號(hào):趣無盡,微信公眾號(hào):趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于ALIENTEK STM32制作的串口記錄器

    基于ALIENTEK STM32制作的串口記錄器(fatfs文件系統(tǒng),串口通訊速率在sd卡文件中可調(diào),)插入一張格式化好的sd卡。會(huì)在卡中自動(dòng)生成config文件夾和config
    發(fā)表于 07-20 06:34

    基于樹莓pico的火箭飛行計(jì)算機(jī)設(shè)計(jì)方案

    樹莓 Pico 火箭飛行計(jì)算機(jī)由樹莓驅(qū)動(dòng)的火箭飛行數(shù)據(jù)采集和監(jiān)控
    發(fā)表于 10-09 11:25

    樹莓pico如何入門?

    樹莓pico如何入門?
    發(fā)表于 10-13 08:11

    樹莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通
    發(fā)表于 11-03 08:44

    樹莓Pico的相關(guān)資料推薦

    1月22日,樹莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 02-07 07:37

    請(qǐng)教大神樹莓pico項(xiàng)目創(chuàng)建后,rtthread文件夾沒有文件是何原因?

    請(qǐng)教大神樹莓pico項(xiàng)目創(chuàng)建后,rtthread文件夾沒有文件是何原因?
    發(fā)表于 09-28 09:56

    采用FAT16文件系統(tǒng)的嵌入式溫度記錄器

    采用FAT16文件系統(tǒng)的嵌入式溫度記錄器  以ARM7TDMIS為內(nèi)核的32/16位微控制LPC2148與SD卡相結(jié)合,實(shí)現(xiàn)在SD卡上建立FAT16文件系統(tǒng)。采集的溫度
    發(fā)表于 03-29 15:10 ?911次閱讀
    采用FAT16<b class='flag-5'>文件系統(tǒng)</b>的嵌入式溫度<b class='flag-5'>記錄器</b>

    基于FAT16文件系統(tǒng)的嵌入式溫度記錄器

    基于FAT16文件系統(tǒng)的嵌入式溫度記錄器.
    發(fā)表于 01-22 14:03 ?8次下載

    樹莓也出MCU了?樹莓Pico來了!

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通
    發(fā)表于 10-28 10:36 ?11次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>來了!

    樹莓Pico:僅4美元的MCU

    1月22日,樹莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通樹莓
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    樹莓pico入門學(xué)習(xí)筆記(一)

    樹莓pico入門學(xué)習(xí)筆記選擇自己熟悉的編程語言樹莓pico提供C/C++和micropyth
    發(fā)表于 12-17 18:42 ?21次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>pico</b>入門學(xué)習(xí)筆記(一)

    PicoBoy帶有Wii遙控樹莓Pico

    電子發(fā)燒友網(wǎng)站提供《PicoBoy帶有Wii遙控樹莓Pico.zip》資料免費(fèi)下載
    發(fā)表于 11-08 11:16 ?0次下載
    PicoBoy帶有Wii遙控<b class='flag-5'>器</b>的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>

    基于樹莓pico的可編程游戲手柄設(shè)計(jì)

    方案介紹組件12x12x7.3mm 瞬時(shí)觸覺按鈕按鈕樹莓Pico通用 D1286464 OLED 顯示屏操縱桿模塊 PS210 歐姆電阻?組裝將樹莓
    發(fā)表于 12-26 15:10 ?4次下載

    樹莓Pico物理編程指南

    樹莓 Pico 的 RP2040 微控制在設(shè)計(jì)時(shí)考慮到了物理計(jì)算。它的眾多通用輸入/輸出(GPIO)引腳讓它與一系列組件交互,允許你建立項(xiàng)目,從照明 LED 到
    的頭像 發(fā)表于 08-17 09:42 ?1874次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>物理編程指南

    樹莓Pico Flash驅(qū)動(dòng)踩坑記錄

    樹莓 pico 帶有 2MB 的 Flash 資源,以下是我基于官方 Pico C/C++ SDK 對(duì)接 Flash 驅(qū)動(dòng)時(shí)踩到的一些坑和解決辦法。
    的頭像 發(fā)表于 10-20 11:44 ?2100次閱讀