chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

Adafruit數(shù)據(jù)記錄儀防護(hù)板的說明

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-27 10:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

Adafruit數(shù)據(jù)記錄儀防護(hù)板的說明

這是一個(gè)方便的Arduino防護(hù)板:我們有很多人在尋找專用且設(shè)計(jì)良好的數(shù)據(jù)記錄防護(hù)板。我們努力設(shè)計(jì)出價(jià)格低廉但功能全面的設(shè)計(jì)。此防護(hù)罩可輕松為您的Arduino添加具有千兆字節(jié)存儲(chǔ)空間的“硬盤”!

此流行防護(hù)罩的最新版本具有流行原始防護(hù)罩的所有功能,并且與“ R3”兼容,因此您幾乎可以將其與任何Arduino或兼容產(chǎn)品一起使用。您可以在不到15分鐘的時(shí)間內(nèi)啟動(dòng)并運(yùn)行它-將數(shù)據(jù)保存到任何FAT16或FAT32格式的SD卡上的文件中,以供任何繪圖,電子表格或分析程序讀取。本教程還將向您展示如何使用兩個(gè)免費(fèi)軟件程序來繪制數(shù)據(jù)。隨附的RTC(實(shí)時(shí)時(shí)鐘)可用于以當(dāng)前時(shí)間為所有數(shù)據(jù)添加時(shí)間戳,以便您確切地了解何時(shí)發(fā)生了什么!

數(shù)據(jù)記錄器是可靠,全面且通用的設(shè)計(jì)。它易于擴(kuò)展或修改,并得到在線文檔和庫的很好支持

功能:

SD卡接口可用于FAT16或FAT32格式的卡。內(nèi)置的3.3v電平轉(zhuǎn)換器電路使您可以超快地讀取或?qū)懭霐?shù)據(jù),并防止損壞SD卡

即使在拔下Arduino的情況下,實(shí)時(shí)時(shí)鐘(RTC)仍可以保持時(shí)間。紐扣電池備份可以持續(xù)多年

包含的庫以及用于SD和RTC的示例代碼,這意味著您可以快速上手

用于焊接連接器,電路或傳感器的原型區(qū)域。

li》

兩個(gè)可配置指示燈LED

板載3.3v穩(wěn)壓器既是可靠的參考電壓,又可可靠地運(yùn)行需要大量功率才能運(yùn)行的SD卡

使用“ R3布局”的I2C和ICSP/SPI端口,因此與各種Arduino和Arduino兼容產(chǎn)品兼容

在此新版本中,您可以將其與:

兼容Arduino UNO或ATmega328-4個(gè)模擬通道,分辨率為10位,如果不使用RTC,則為6個(gè)

Arduino Leonardo或ATmega32u4兼容-12個(gè)模擬通道,分辨率為10位分辨率

兼容Arduino Mega或ATmega2560-16個(gè)模擬輸入(10位)

兼容Arduino零或ATSAMD21-6個(gè)模擬輸入(12位)

兼容Arduino Due-12個(gè)模擬輸入(12位)

當(dāng)然,您可以記錄任何您喜歡的東西,包括具有Arduino庫,串行數(shù)據(jù),位時(shí)序等等的數(shù)字傳感器!

安裝接頭連接器

Adafruit Data Logger防護(hù)板經(jīng)過測(cè)試,已組裝好所有組件和SD插槽,但是您仍然需要安裝接頭連接器,以便可以將其插入Arduino

,因?yàn)橛袃蓚€(gè)選項(xiàng),所以我們不會(huì)預(yù)先組裝接頭!您可以使用普通的0.1英寸公頭(包括在屏蔽中)或Arduino Shield Stacking頭。這兩個(gè)選項(xiàng)還需要焊接一個(gè)2x3母頭。

帶公頭的組裝

大多數(shù)人都會(huì)對(duì)他與公頭的屏蔽罩組裝感到滿意。使用它們的好處是不要在項(xiàng)目的高度上添加任何東西,它們會(huì)建立良好的牢固連接。但是,您將無法在頂部堆疊另一個(gè)盾牌。權(quán)衡取舍!

翻轉(zhuǎn)并焊接另一側(cè)以及2x3接頭

將標(biāo)頭切成一定長度:

將標(biāo)頭條與在標(biāo)頭邊緣上的孔對(duì)齊屏蔽并切下標(biāo)題欄的4個(gè)部分以適合。

放置插頭:

將插頭部分(長針向下)插入Arduino/Metro的母頭中。另外,將2x3母頭插入USB另一側(cè)的相應(yīng)插針中。

放置防護(hù)罩:

將防護(hù)罩與排針對(duì)齊,然后按下。

然后焊接!

焊接每個(gè)引腳以確保良好的電接觸。有關(guān)焊接的技巧,請(qǐng)參閱《 Adafruit優(yōu)秀焊接指南》。

使用堆棧頭進(jìn)行組裝:堆棧頭為您的數(shù)據(jù)記錄儀提供了更大的靈活性。您可以將其與其他防護(hù)罩(例如RGB/LCD顯示器防護(hù)罩)結(jié)合使用,以使緊湊型測(cè)井儀具有用戶界面。您還可以將其與一個(gè)或多個(gè)Proto-Shield堆疊在一起,以增加更多的原型空間來與傳感器接口。

堆疊接頭安裝在板的頂部而不是底部,因此該過程與安裝簡(jiǎn)單的公頭。

定位頭:

從屏蔽層頂部插入頁眉,然后將屏蔽層翻轉(zhuǎn)并將其放置在平坦的表面上。調(diào)整標(biāo)題以使其垂直。

請(qǐng)確保從屏蔽層的頂部插入插頭,以便可以將其與底部。

將板子放在Metro上并焊接2x3接頭

然后焊接!

將每個(gè)引腳焊接成固體電氣連接。

提示:從每個(gè)插頭部分焊接一個(gè)引腳。如果其中任何一個(gè)彎曲,只需重新加熱一個(gè)焊點(diǎn)并用手將其拉直即可。一旦所有接頭都直了,繼續(xù)焊接其余的引腳。

翻轉(zhuǎn)并焊接另一面

放置2x3母頭Arduino/Metro上的標(biāo)題

防護(hù)罩概述

數(shù)據(jù)記錄器防護(hù)罩有幾件事使其成為跟蹤數(shù)據(jù)的絕佳方法。這是盾牌的大致圖:

我們的最新版本為5V,3.3V和地面添加了電源軌:

div》 SD卡

大的SD卡夾可容納最大32G和最小32MB的SD/MMC存儲(chǔ)(任何格式的FAT16或FAT32)。如果您有MicroSD卡,則可以使用低成本的適配器SD卡比MicroSD更難丟失,并且有足夠的空間容納標(biāo)準(zhǔn)尺寸的存儲(chǔ)卡。

只需按一下即可插入,或拉出即可從該插槽中取出卡

SD活動(dòng)LED 連接到時(shí)鐘引腳,當(dāng)數(shù)據(jù)經(jīng)過SPI時(shí)它將閃爍,這可以幫助您確定何時(shí)可以移除或插入SD卡或電源。

電平轉(zhuǎn)換器將所有信號(hào)從3.3V或5V DOW移動(dòng)n至3.3V,因此您可以安全地將此屏蔽罩與 any Arduino一起使用,而不會(huì)損壞卡。便宜的屏蔽層使用電阻器進(jìn)行電平轉(zhuǎn)換,但這在高速或在所有電壓電平下均無法正常工作!

實(shí)時(shí)時(shí)鐘

這是計(jì)時(shí)設(shè)備。它包括一個(gè)8針芯片,一個(gè)矩形的32KHz晶體和一個(gè)電池座

電池座必須包含一個(gè)電池,以便RTC能夠跟蹤從Arduino斷開電源時(shí)的時(shí)間!使用任何與CR1220兼容的紐扣電池

CR1220 12mm直徑-3V鋰幣電池 strong》

產(chǎn)品ID:380

這些是最高質(zhì)量的產(chǎn)品。容量的電池,與iCufflinks,iNecklace,Datalogging和GPS Shields,GPS HAT等產(chǎn)品隨附的電池相同。每筆訂購一個(gè)電池。..

$ 0.95

入庫

添加到購物車

3.3V電源

板載3.3V LDO(低壓降)穩(wěn)壓器可保持屏蔽的3V零件運(yùn)行平穩(wěn)。一些舊的Arduinos沒有完整的3.3V穩(wěn)壓器,寫入SD卡可能會(huì)導(dǎo)致Arduino重新啟動(dòng)。為了保持兼容性,我們只需將其保留在那里。右側(cè)還有一個(gè)綠色的PWR(電源)良好LED指示燈

用戶LED

我們有兩個(gè)用戶可配置的LED。將任何Arduino引腳上的電線連接到標(biāo)記有 L1 或 L2 的焊盤,并拉高以打開 LED1 或 LED2

LED右側(cè)的重置按鈕將重置整個(gè)Arduino,方便您在要重新啟動(dòng)電路板時(shí)使用

原型開發(fā)區(qū)域

大的中間部分充滿了0.1“網(wǎng)格原型孔,因此您可以自定義您的

頂部和底部?jī)尚性涂资请娫磳?dǎo)軌。

突破墊

上面在分支板區(qū)域附近還顯示了一些額外的分支。

在SD卡持有者的右側(cè):

CD -這是SD卡上的卡檢測(cè)墊。將其接地后,將插入SD卡。它是漏極開路,使用上拉電阻(物理電阻或在軟件中啟用)

WP-這是SD卡上的寫保護(hù)板,您可以使用它來通過檢查此引腳來檢測(cè)卡上的寫保護(hù)選項(xiàng)卡。它是漏極開路,使用上拉電阻(物理電阻器或在軟件中啟用)

SQ -這是RTC的可選方波輸出。您必須發(fā)送命令將其打開,但這是選擇獲取精確方波的一種方法。我們主要將其用于測(cè)試。輸出是開漏輸出,因此具有上拉電阻(物理電阻或在軟件中啟用)

3V -這是穩(wěn)壓器輸出的3V。它是高質(zhì)量的3.3V參考電壓,您可能希望為傳感器供電。高達(dá)50mA可用

數(shù)字10號(hào)附近

CS -這是芯片選擇 SD卡的引腳。如果由于沖突而需要將跡線切割到引腳10,可以將該焊盤焊接到任何數(shù)字引腳上,并重新上載軟件

在數(shù)字3和#4附近 p》

L2 和 L1 -這些是可選的用戶LED。連接到任何數(shù)字引腳,將其拉高以打開相應(yīng)的LED。這些LED已經(jīng)串聯(lián)了470歐姆電阻。

接線和配置

從Datalogger屏蔽的B版本開始,我們不再使用數(shù)字引腳10、11、12、13用于SPI和A4,A5用于I2C?,F(xiàn)在,我們使用2x3 ICSP標(biāo)頭,這意味著您不需要特殊的自定義I2C或SPI庫即可與Mega,Leonardo或Zero(或其他任何將來的類型)的Arduino一起使用!

我具有哪個(gè)版本?

這是較舊的Datalogger屏蔽。特別要注意的是,原型區(qū)域完全充滿了0.1“間隔的孔

這是“與R3兼容”的數(shù)據(jù)記錄器。它具有較小的原型區(qū)域,并且在右側(cè)有一個(gè)2x3 SPI頭點(diǎn)

較舊的屏蔽插腳

在較舊的屏蔽上,插腳固定為固定 :

數(shù)字#13- SPI時(shí)鐘

數(shù)字#12- SPI MISO

數(shù)字#11- SPI MOSI

數(shù)字#10- SD卡芯片選擇(可以切割痕跡以重新分配)

SDA 已連接至 A4

SCL 已連接至 A5

RTC(DS13 07)I2C邏輯電平固定為5V

修訂版B屏蔽引腳排列

ICSP SCK- SPI時(shí)鐘

ICSP MISO- SPI MISO

ICSP MOSI- SPI MOSI

數(shù)字#10- SD卡芯片選擇(可以切割痕跡以重新分配)

SDA 不 連接到 A4

SCL not 連接到 A5

RTC(PCF8523)邏輯電平可以是3V或5V

在UNO上,請(qǐng)注意,數(shù)字#13與ICSP SCK相同,#12是ICSP MISO,#11是ICSP MOSI,SDA連接到A4,SCL連接到A5。但是,這僅適用于UNO!其他Arduino具有不同的連接。由于屏蔽不再假設(shè)它位于UNO上,因此它是最兼容的屏蔽。

在Rev B屏蔽的底部,您可以看到,如果您有一個(gè)較舊的Arduino,沒有ICSP 2x3接頭連接器,也沒有SDA/SCL引腳,則可以使焊接跳線短路。

如果您將屏蔽與3.3V邏輯Arduino配合使用,則可能需要更改 Vio 跳線。這就是I2C的10K上拉電阻。老實(shí)說,上拉非常弱,所以如果您忘記了,這沒什么大不了的。但是,如果可以的話,請(qǐng)?jiān)?a target="_blank">中心焊盤和5V之間切一條小線,然后焊接另一側(cè),以便將Vio連接到3V

較舊的數(shù)據(jù)記錄器Shield Leonardo&Mega Library

僅當(dāng)您有沒有SPI端口連接的較舊的Datalogger屏蔽。

僅當(dāng)您使用帶有舊版Datalogger防護(hù)罩的Leonardo或Mega時(shí)才需要!

如果您的屏蔽罩如上所示,并且在右側(cè)具有2x3引腳頭,請(qǐng)?zhí)^此頁面!

如果您的屏蔽罩沒有2x3引腳頭部分,并且您使用的是Mega或Leonardo(例如,不兼容UNO),那么您可以繼續(xù)閱讀!/p》

如果您使用的Leonardo或Mega帶有較舊的數(shù)據(jù)記錄屏蔽,則必須替換現(xiàn)有的SD卡庫以添加“任何引腳上的SD卡”支持。 如果您擁有Uno/Duemilanove/Diecimila,則不需要這樣做。如果您使用的是B版防護(hù)罩,那么也不需要這樣做!

首先,找到“核心庫”文件夾-如果您使用的是Windows或Linux,它將位于包含 Arduino 可執(zhí)行文件,查找 libraries 文件夾。在內(nèi)部,您會(huì)看到一個(gè) SD 文件夾(其中將是 SD.cpp SD.h 等)

在庫文件夾中,新建一個(gè)名為 SDbackup 的文件夾。然后將 SD 文件夾拖到 SDbackup 中,這將“隱藏”舊的 SD 庫而不刪除它。 請(qǐng)注意,SDBackup必須位于庫文件夾的外部之外,以便有效地“隱藏” SD庫。

現(xiàn)在,我們將獲取新的SD庫,請(qǐng)?jiān)L問https://github。 com/adafruit/SD ,然后單擊 ZIP 下載按鈕,或單擊下面的按鈕

下載SD庫壓縮文件

解壓縮并重命名未壓縮的文件夾 SD 。檢查 SD 文件夾中是否包含 SD.cpp 和 SD.h

放置 SD 庫文件夾,即寫生簿庫文件夾。如果您是第一個(gè)庫,則可能需要?jiǎng)?chuàng)建庫子文件夾。有關(guān)如何安裝庫的更多詳細(xì)信息,請(qǐng)查看我們的超詳細(xì)教程,網(wǎng)址為http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

使用Mega和Leonardo的SD庫因?yàn)镸ega和Leonardo如果沒有相同的硬件SPI引腳分配,則需要指定將用于與卡進(jìn)行SPI通信的引腳。對(duì)于數(shù)據(jù)記錄器屏蔽,它們將是引腳10、11、12和13。在草圖中找到調(diào)用SD.begin()的位置(如下所示):

下載:文件

復(fù)制代碼

// see if the card is present and can be initialized:

if (!SD.begin(chipSelect)) {

// see if the card is present and can be initialized:

if (!SD.begin(chipSelect)) {

并對(duì)其進(jìn)行更改,以添加這些引腳號(hào),如下所示:

下載:文件

復(fù)制代碼

// see if the card is present and can be initialized:

if (!SD.begin(10, 11, 12, 13)) {

// see if the card is present and can be initialized:

if (!SD.begin(10, 11, 12, 13)) {

cardinfo cardinfo草圖使用較低級(jí)別的庫直接與卡對(duì)話,因此調(diào)用card.init()而不是SD.begin()。

下載:file

復(fù)制代碼

// we‘ll use the initialization code from the utility libraries

// since we’re just testing if the card is working!

while (!card.init(SPI_HALF_SPEED, chipSelect)) {

// we‘ll use the initialization code from the utility libraries

// since we’re just testing if the card is working!

while (!card.init(SPI_HALF_SPEED, chipSelect)) {

在調(diào)用card.init()時(shí),必須更改調(diào)用以指定SPI引腳,如下所示:

下載:文件

復(fù)制代碼

// we‘ll use the initialization code from the utility libraries

// since we’re just testing if the card is working!

while (!card.init(SPI_HALF_SPEED, 10, 11, 12, 13)) {

// we‘ll use the initialization code from the utility libraries

// since we’re just testing if the card is working!

while (!card.init(SPI_HALF_SPEED, 10, 11, 12, 13)) {

使用實(shí)時(shí)時(shí)鐘

是實(shí)時(shí)時(shí)鐘嗎?

記錄數(shù)據(jù)時(shí),通常非常有用的是帶有時(shí)間戳記!這樣一來,您可以每隔一分鐘(通過檢查時(shí)鐘)或記錄一天中的什么時(shí)間記錄數(shù)據(jù)。

Arduino確實(shí)有一個(gè)稱為 millis()的內(nèi)置計(jì)時(shí)器。 ,并且該芯片還內(nèi)置了計(jì)時(shí)器,可以跟蹤更長的時(shí)間段,例如分鐘或幾天。那么,為什么要有單獨(dú)的RTC芯片呢?好吧,最大的原因是 millis()只跟蹤時(shí)間,因?yàn)锳rduino上次通電是- ,這意味著何時(shí)通電打開后,毫秒計(jì)時(shí)器將設(shè)置為0。Arduino不知道它的“星期二”或“ 3月8日”,只能告訴我“自上次打開以來已經(jīng)過了14,000毫秒”。

好的,如果您想在Arduino上設(shè)置時(shí)間怎么辦?您必須編程日期和時(shí)間,從那時(shí)起您就可以算上它了。但是,如果失去電源,則必須重新設(shè)置時(shí)間。就像非常便宜的鬧鐘一樣:每次斷電時(shí),它們都會(huì)閃爍 12:00

盡管某些項(xiàng)目可以使用這種基本的計(jì)時(shí)功能,但數(shù)據(jù)記錄器需要具有一致的計(jì)時(shí)功能,當(dāng)Arduino電池耗盡或重新編程時(shí),計(jì)時(shí)不會(huì)重置。因此,我們包括一個(gè)單獨(dú)的RTC! RTC芯片是一種專門的芯片,可以跟蹤時(shí)間。它可以計(jì)算leap年,并且知道一個(gè)月中有多少天,但是它不考慮夏時(shí)制(因?yàn)樗诓煌牡胤接兴煌?/p>

此圖顯示了具有實(shí)時(shí)功能的計(jì)算機(jī)主板時(shí)鐘稱為DS1387。

我們要使用的RTC是 PCF8523 或 DS1307 》。

如果您擁有Adafruit Datalogger Shield B版,則將使用PCF8523 -該RTC較DS1307更新且更好??匆幌缕帘握?,看看是否在芯片上方寫有 PCF8523 。

如果您使用的是較舊的Datalogger保護(hù)罩,則將使用DS1307 -沒有文本,因此您只需記住,如果不是 說是PCF8523,那就是DS1307

備用電池

只要有一個(gè)紐扣電池可以運(yùn)行,即使在

使用任何CR1220 3V鋰金屬紐扣電池:

CR1220直徑12毫米-3V鋰紐扣電池

產(chǎn)品ID:380

這些是最高質(zhì)量的產(chǎn)品,容量的電池,與iCufflinks,iNecklace,Datalogging和GPS Shields,GPS HAT等產(chǎn)品隨附的電池相同。每筆訂購一個(gè)電池。..

$ 0.95

入庫

添加到購物車

您必須安裝紐扣電池才能使RTC正常工作,如果沒有紐扣電池,它將表現(xiàn)得很奇怪,并可能在您嘗試使用Arduino時(shí)將其掛起,因此始終確保已安裝電池,即使電池沒電了。

RTC

RTC是一種i2c設(shè)備,這意味著它使用2條線進(jìn)行通信。這兩條線用于設(shè)置時(shí)間并進(jìn)行檢索。在Arduino UNO上,這些引腳還連接到模擬4 和 5 引腳。這有點(diǎn)煩人,因?yàn)槲覀儺?dāng)然希望最多有6個(gè)模擬輸入來讀取數(shù)據(jù),而現(xiàn)在我們已經(jīng)丟失了2個(gè)。

對(duì)于RTC庫,我們將使用JeeLab卓越的分叉器可以在GitHub上找到RTC庫 。您可以通過訪問github存儲(chǔ)庫并手動(dòng)下載來實(shí)現(xiàn)此目的,或者只需單擊此按鈕即可下載zip

下載RTC庫

重命名未壓縮的文件夾 RTClib ,并檢查 RTClib 文件夾是否包含 RTClib 。 cpp 和 RTClib 。h

將 RTClib 庫文件夾放在 arduinosketchfolder/libraries/文件夾。

如果您是第一個(gè)庫,則可能需要?jiǎng)?chuàng)建庫子文件夾。重新啟動(dòng)IDE。

我們還提供了有關(guān)Arduino庫安裝的出色教程,網(wǎng)址為:

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

完成后,重新啟動(dòng)IDE

第一次RTC測(cè)試

我們將演示的第一件事是一個(gè)測(cè)試草圖,它將每秒從RTC讀取一次時(shí)間。我們還將顯示如果您卸下電池并更換電池會(huì)發(fā)生什么,因?yàn)檫@會(huì)導(dǎo)致RTC停止。因此,要開始使用,請(qǐng)?jiān)谖唇oArduino供電或未將其插入U(xiǎn)SB的情況下從電池座中取出電池。等待3秒鐘,然后更換電池。這將重置RTC芯片?,F(xiàn)在,為您的RTC加載匹配的草圖

對(duì)于Adafruit Datalogger盾牌版本B,打開示例-》 RTClib-》 pcf8523

較舊的Adafruit數(shù)據(jù)記錄器,請(qǐng)使用示例-》 RTClib-》 ds1307

在數(shù)據(jù)記錄器防護(hù)罩打開的情況下將其上傳到Arduino!

如果遇到問題,請(qǐng)確保運(yùn)行正確的示例! PCF8523和DS1307 RTC芯片不相同,因此它們有單獨(dú)的示例!

現(xiàn)在打開串行控制臺(tái),并確保將波特率正確設(shè)置為 57600波特,您應(yīng)該會(huì)看到以下內(nèi)容:

每當(dāng)RTC芯片失去所有電源(包括備用電池)時(shí),它將重置為較早的日期,并將時(shí)間報(bào)告為0:0:0或類似時(shí)間。 DS1307甚至不會(huì)數(shù)秒(已停止)。無論何時(shí)設(shè)置時(shí)間,這都會(huì)啟動(dòng)時(shí)鐘的滴答聲。

因此,基本上,這里的結(jié)果是,您永遠(yuǎn)不要卸下電池您已設(shè)定時(shí)間。您不需要,電池座也非常貼合,因此除非面板被壓碎,否則電池不會(huì)“掉落”

設(shè)置時(shí)間

在加載了相同草圖的情況下,取消注釋以 RTC開頭的行。/strong》,例如:

下載:文件

復(fù)制代碼

if (! rtc.initialized()) {

Serial.println(“RTC is NOT running!”);

// following line sets the RTC to the date & time this sketch was compiled

rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); if (! rtc.initialized()) {

Serial.println(“RTC is NOT running!”);

// following line sets the RTC to the date & time this sketch was compiled

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

這行很可愛,它的作用是根據(jù)您使用的計(jì)算機(jī)獲取日期和時(shí)間(編譯時(shí)正確)代碼)并將其用于RTC編程。如果您的計(jì)算機(jī)時(shí)間設(shè)置不正確,則應(yīng)首先解決該問題。然后,您必須按上傳按鈕進(jìn)行編譯,然后立即上傳。如果您先編譯然后再上傳,則該時(shí)間將關(guān)閉時(shí)鐘。

然后打開“串行”監(jiān)視器窗口以顯示時(shí)間已設(shè)置

從現(xiàn)在開始,您不會(huì)必須再次設(shè)置時(shí)間:電池將使用5年或以上

讀取時(shí)間

現(xiàn)在,RTC快活了,我們想查詢一下時(shí)間。讓我們?cè)俅慰匆幌虏輬D,看看如何完成

下載:文件

復(fù)制代碼

void loop () {

DateTime now = rtc.now();

Serial.print(now.year(), DEC);

Serial.print(‘/’);

Serial.print(now.month(), DEC);

Serial.print(‘/’);

Serial.print(now.day(), DEC);

Serial.print(“ (”);

Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);

Serial.print(“) ”);

Serial.print(now.hour(), DEC);

Serial.print(‘:’);

Serial.print(now.minute(), DEC);

Serial.print(‘:’);

Serial.print(now.second(), DEC);

Serial.println(); void loop () {

DateTime now = rtc.now();

Serial.print(now.year(), DEC);

Serial.print(‘/’);

Serial.print(now.month(), DEC);

Serial.print(‘/’);

Serial.print(now.day(), DEC);

Serial.print(“ (”);

Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);

Serial.print(“) ”);

Serial.print(now.hour(), DEC);

Serial.print(‘:’);

Serial.print(now.minute(), DEC);

Serial.print(‘:’);

Serial.print(now.second(), DEC);

Serial.println();

使用RTClib獲取時(shí)間的方法幾乎只有一種,即調(diào)用 now(),此函數(shù)返回一個(gè)DateTime對(duì)象,該對(duì)象描述了調(diào)用 now()時(shí)的年,月,日,時(shí),分和秒。

有一些RTC庫可以代替您調(diào)用 RTC.year()和 RTC.hour()之類的東西來獲取當(dāng)前的年份和小時(shí)。但是,存在一個(gè)問題,如果您碰巧在下一分鐘滾動(dòng)之前在 3:14:59 詢問分鐘,然后在分鐘滾動(dòng)之后詢問第二分鐘(所以在 3:15:00 ),您會(huì)看到時(shí)間為 3:14:00 ,該時(shí)間需要一分鐘。如果您以其他方式進(jìn)行操作,則可能會(huì)得到 3:15:59 -在另一方向上間隔一分鐘。

因?yàn)檫@不是特別不可能發(fā)生的情況-特別是如果您經(jīng)常查詢時(shí)間-我們會(huì)一次從RTC中獲取時(shí)間的“快照”,然后將其拆分為 day()或 second() (如上所示)。付出了更多的努力,但是我們認(rèn)為避免錯(cuò)誤是值得的!

我們還可以通過調(diào)用 unixtime 來從DateTime對(duì)象中獲取“時(shí)間戳”,該計(jì)數(shù)會(huì)計(jì)數(shù)自1970年1月1日午夜以來的秒數(shù)(不計(jì)算leap秒)

下載:文件

復(fù)制代碼

Serial.print(“ since 2000 = ”);

Serial.print(now.unixtime());

Serial.print(“s = ”);

Serial.print(now.unixtime() / 86400L);

Serial.println(“d”); Serial.print(“ since 2000 = ”);

Serial.print(now.unixtime());

Serial.print(“s = ”);

Serial.print(now.unixtime() / 86400L);

Serial.println(“d”);

由于一天中有60 * 60 * 24 = 86400秒,因此我們可以輕松計(jì)算天數(shù)從那以后。當(dāng)您想要跟蹤自上次查詢以來已經(jīng)過去了多少時(shí)間,使一些數(shù)學(xué)變得容易得多時(shí)(例如檢查是否過了5分鐘,只需查看 unixtime()),這可能會(huì)很有用。增加了300,您不必?fù)?dān)心小時(shí)的變化)

使用SD卡

數(shù)據(jù)記錄器防護(hù)板的另一半是SD卡。 SD卡是我們存儲(chǔ)長期數(shù)據(jù)的方式。盡管Arduino芯片具有永久的EEPROM存儲(chǔ),但只有幾百個(gè)字節(jié)-與2 gig SD卡相比很小。 SD卡非常便宜且易于獲得,它是長期存儲(chǔ)的明顯選擇,因此我們將其用作屏蔽。

SD卡不附帶屏蔽套件,但我們可以在其中隨身攜帶SD卡。保證工作的商店。幾乎所有SD卡都可以使用,但要注意一些廉價(jià)的卡是“假貨”,并且會(huì)引起頭痛。

4GB空白SD/MicroSD存儲(chǔ)卡

產(chǎn)品ID:102

使用此4GB micro-SD卡可以輕松添加大型存儲(chǔ)。它帶有SD適配器,因此您可以將其與我們的任何屏蔽罩或適配器一起使用!預(yù)格式化為FAT,因此無法使用。..

缺貨

缺貨

您還需要一種從SD卡進(jìn)行讀寫的方法。有時(shí)您可以使用相機(jī)和MP3播放器-插入相機(jī)后,您就可以將其視為磁盤?;蛘吣赡苄枰猄D卡讀卡器。 屏蔽 不 能夠?qū)D卡顯示為“硬盤”,例如某些MP3播放器或游戲,而Arduino沒有該硬件,因此您將需要一個(gè)外部讀取器!

USB MicroSD卡讀取器/寫入器-microSD/microSDHC/microSDXC

產(chǎn)品ID:939

這是最可愛的小型microSD卡讀/寫器-但不要被它的可愛性所迷惑!它速度快,可支持多達(dá)64 GB的SDXC卡!只需將卡滑入。..

$ 5.95

進(jìn)貨

添加到購物車

格式化在Windows/Mac操作系統(tǒng)

如果您購買了SD卡,則可能已經(jīng)使用FAT文件系統(tǒng)對(duì)其進(jìn)行了預(yù)格式化。但是,您可能對(duì)工廠格式化卡的方式有疑問,或者如果它是舊卡,則需要重新格式化。我們使用的Arduino SD庫支持 FAT16 和 FAT32 文件系統(tǒng)。如果您的SD卡非常小,例如說8-32 MB,您可能會(huì)發(fā)現(xiàn)它的格式為 FAT12 ,該格式不受支持。您必須重新格式化這些卡。無論哪種方式,即使使用新的總是格式化存儲(chǔ)卡的好主意!請(qǐng)注意,格式化會(huì)刪除卡,因此請(qǐng)先保存您想要的任何內(nèi)容

我們強(qiáng)烈建議您使用的是官方SD卡格式化程序?qū)嵱贸绦?由SD協(xié)會(huì)編寫,它解決了格式錯(cuò)誤帶來的許多問題!

https上提供了官方SD格式化程序://www.sdcard.org/downloads/formatter_4/

下載并在您的計(jì)算機(jī)上運(yùn)行,該頁面上還有一個(gè)手冊(cè)鏈接供使用

下載適用于Windows的官方SD Formatter軟件

獲取卡信息

Arduino SD卡庫有一個(gè)內(nèi)置示例,可以幫助您測(cè)試屏蔽和連接

如果您使用的是較舊的沒有SPI頭連接的數(shù)據(jù)記錄屏蔽 ,并且您使用的是 Leonardo,Mega 或UNO以外的任何其他產(chǎn)品,則需要安裝規(guī)格SD庫的正式版本

在 SD 庫中打開文件 CardInfo 示例草圖:

該草圖不會(huì)向卡中寫入任何數(shù)據(jù),只會(huì)告訴您它是否能夠識(shí)別它,以及一些有關(guān)它的信息。嘗試確定是否支持SD卡時(shí),這可能非常有用。在試用新卡之前,請(qǐng)先試用此草圖!

轉(zhuǎn)到草圖的開頭,并確保 chipSelect 行正確,這是因?yàn)閿?shù)據(jù)記錄器屏蔽了我們的‘重新使用數(shù)字引腳10,因此將其更改為10!

如果您具有Datalogger Shield的pre-reB版本,并且您正在使用Mega或Leonardo,請(qǐng)?jiān)诖颂庍M(jìn)行檢查以調(diào)整引腳設(shè)置

好的,現(xiàn)在將SD卡插入Arduino并上傳草圖

打開串行監(jiān)視器,并在出現(xiàn)提示時(shí)在文本框中鍵入一個(gè)字符(并點(diǎn)擊發(fā)送)。您可能會(huì)得到類似以下的內(nèi)容:

它主要是亂碼,但查看卷類型為FAT16 部分以及卡的大小(大約2 GB,這應(yīng)該是有用的)很有用是)等。

如果您的卡片質(zhì)量較差(好品牌的盜版版本似乎更多),您可能會(huì)看到:

卡大部分響應(yīng),但是數(shù)據(jù)都很差。請(qǐng)注意,產(chǎn)品ID 為“不適用” ,并且沒有制造商ID 或 OEM ID 。該卡返回了一些SD錯(cuò)誤。它基本上是一個(gè)壞場(chǎng)景,我只保留這張卡作為壞卡的例子!如果您收到類似這樣的消息(有響應(yīng)但它已損壞),則應(yīng)該扔掉卡

最后,嘗試取出SD卡并再次運(yùn)行草圖,您將得到以下內(nèi)容,

它甚至無法初始化SD卡。如果出現(xiàn)焊接錯(cuò)誤或卡確實(shí)損壞

,也可能發(fā)生這種情況。如果您遇到SD卡問題,建議您使用上述SD格式化器首先確??ㄇ鍧嵅⒖梢允褂茫?/p>

光和溫度記錄器

簡(jiǎn)介

已經(jīng)介紹了RTC和SD卡,并驗(yàn)證了它們是否可以正常工作,我們可以繼續(xù)進(jìn)行日志記錄!

我們將使用一個(gè)非常好的詳細(xì)演示來展示這些最出色的數(shù)據(jù)的功能。測(cè)井屏蔽:我們將記錄溫度和相對(duì)光照水平,以確定:

隨著壓縮機(jī)的開啟和關(guān)閉,冰箱中的溫度變化多少?

保持門打開是否會(huì)導(dǎo)致溫度大幅下降?冷卻需要多長時(shí)間?

真的里面的燈在關(guān)門時(shí)會(huì)熄滅嗎?

構(gòu)建它!

您的項(xiàng)目會(huì)需要:

Arduino(當(dāng)然?。┳詈檬茿tmega328類型的-我們始終建議使用正式的“經(jīng)典” Arduino,例如Uno。

Adafruit數(shù)據(jù)記錄器防護(hù)罩-組裝的

SD卡,已格式化為FAT,并使用示例草圖進(jìn)行了測(cè)試

CdS光電管和匹配的10K下拉電阻

溫度傳感器,具有模擬輸出,例如TMP36

電池組,例如6-AA’brick‘和2.1mm DC插孔。

或,您可以將9V夾子用于一個(gè)電源,但一個(gè)9V供電的記錄儀將僅持續(xù)幾個(gè)小時(shí),因此我們建議使用6xAA的

一些22 AWG導(dǎo)線,烙鐵,焊料等。

您可以在Adafruit商店中以折扣價(jià)獲得該列表中的大部分商品

i》

rs

我們將使用兩個(gè)基本傳感器來記錄數(shù)據(jù),一個(gè)CdS光電管來跟蹤光(這將告訴我們門何時(shí)打開),以及一個(gè)半導(dǎo)體溫度傳感器來記錄冰箱的周圍溫度。

我們的站點(diǎn)上針對(duì)這些傳感器有兩個(gè)很棒的教程,如果您以前從未使用過它們或需要一些刷新,請(qǐng)立即閱讀!

Photocell教程

TMP36教程

我們將如下圖所示對(duì)傳感器進(jìn)行接線。

請(qǐng)注意,我們連接了 ARef,溫度傳感器的電源引腳和 3.3V 不是5.0V 的光傳感器-我們這樣做是因?yàn)?V線路噪聲很大,而3.3V穩(wěn)壓器是更好地過濾。在實(shí)際的電路板上,我們使用了數(shù)據(jù)記錄器穩(wěn)壓器提供的3.3V線,請(qǐng)參見下圖-理論上與Arduino相同,但我們更信任我們。

接線板上的原型區(qū)域是帶有焊墊的簡(jiǎn)單孔陣列。下面的步驟說明了我們?nèi)绾螛?gòu)建此電路,并說明了一些基本的電路原型技術(shù)。為了清楚起見,我們將使用與上面電路圖中所示相同的色線:

傳感器的位置傳感器可以放置在原型區(qū)域的任何位置,但是我們選擇這種布置以簡(jiǎn)化組件之間的連接。

準(zhǔn)備一些跳線測(cè)量一根電線(紅色)的長度足以從3v插孔延伸到溫度傳感器上方的1/2英寸處。從一端剝?nèi)ゴ蠹s3/4英寸,從另一端剝?nèi)ゴ蠹s1/4英寸。

測(cè)量另一端(黃色)從AREF引腳到達(dá)兩個(gè)傳感器之間的孔的長度足夠長。一端剝?nèi)?/2英寸,另一端剝?nèi)?/4英寸。

安裝跳線如圖所示放置跳線,長條形的末端靠近傳感器。

由于在原型制作區(qū)域的孔之間沒有信號(hào)跡線,因此我們將使用長的剝?nèi)サ哪┒藖磉B接電路板上組件的支腳。

建立連接

將第一個(gè)跳線(紅色)焊接到3v孔中。

彎曲電線的剝皮末端,使其緊靠光傳感器,溫度傳感器和AREF跳線的末端。

將傳感器支腳和AREF支腳折疊在3v跳線上并焊接以形成連接。

為傳感器添加更多跳線

從模擬引腳0到光傳感器和電阻器附近的孔。 (白色)

從GND到電阻另一端旁邊的孔(黑色)

從模擬引腳1到電阻旁邊的孔。溫度傳感器的中心引腳(綠色)

以及LED指示燈

從L1到數(shù)字引腳2(黃色)

從L2到數(shù)字引腳3(黃色)

焊接并修剪所有內(nèi)容連接使用相同的方法將組件支腿折疊在跳線上-進(jìn)行所有連接,如接線圖所示。

確保所有連接均已焊接。還要將電線和組件腳焊接到穿過孔的板上。

準(zhǔn)備電池組

將連接器上的黑色塑料套圈放在電池組電線上。

將紅色電線從電池組焊接到中心銷

將黑色電線焊接到外部槍管。

壓接以牢固地保持電線

擰緊黑色塑料套圈

現(xiàn)在,您的Light Temp Logger已連接好并可以進(jìn)行測(cè)試了!/div》

使用它!

Sensor test

我們現(xiàn)在將使用此草圖來測(cè)試傳感器,這是本教程中兩個(gè)示例的混搭

下載:文件

復(fù)制代碼

#include

#include

/* Sensor test sketch

for more information see http://www.ladyada.net/make/logshield/lighttemp.html

*/

#define aref_voltage 3.3 // we tie 3.3V to ARef and measure it with a multimeter!

int photocellPin = 0; // the cell and 10K pulldown are connected to a0

int photocellReading; // the analog reading from the analog resistor divider

//TMP36 Pin Variables

int tempPin = 1; //the analog pin the TMP36’s Vout (sense) pin is connected to

//the resolution is 10 mV / degree centigrade with a

//500 mV offset to allow for negative temperatures

int tempReading; // the analog reading from the sensor

void setup(void) {

// We‘ll send debugging information via the Serial monitor

Serial.begin(9600);

// If you want to set the aref to something other than 5v

analogReference(EXTERNAL);

}

void loop(void) {

photocellReading = analogRead(photocellPin);

Serial.print(“Light reading = ”);

Serial.print(photocellReading); // the raw analog reading

// We’ll have a few threshholds, qualitatively determined

if (photocellReading 《 10) {

Serial.println(“ - Dark”);

} else if (photocellReading 《 200) {

Serial.println(“ - Dim”);

} else if (photocellReading 《 500) {

Serial.println(“ - Light”);

} else if (photocellReading 《 800) {

Serial.println(“ - Bright”);

} else {

Serial.println(“ - Very bright”);

}

tempReading = analogRead(tempPin);

Serial.print(“Temp reading = ”);

Serial.print(tempReading); // the raw analog reading

// converting that reading to voltage, which is based off the reference voltage

float voltage = tempReading * aref_voltage / 1024;

// print out the voltage

Serial.print(“ - ”);

Serial.print(voltage); Serial.println(“ volts”);

// now print out the temperature

float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset

//to degrees ((volatge - 500mV) times 100)

Serial.print(temperatureC); Serial.println(“ degrees C”);

// now convert to Fahrenheight

float temperatureF = (temperatureC * 9 / 5) + 32;

Serial.print(temperatureF); Serial.println(“ degrees F”);

delay(1000);

} #include

#include

/* Sensor test sketch

for more information see http://www.ladyada.net/make/logshield/lighttemp.html

*/

#define aref_voltage 3.3 // we tie 3.3V to ARef and measure it with a multimeter!

int photocellPin = 0; // the cell and 10K pulldown are connected to a0

int photocellReading; // the analog reading from the analog resistor divider

//TMP36 Pin Variables

int tempPin = 1; //the analog pin the TMP36‘s Vout (sense) pin is connected to

//the resolution is 10 mV / degree centigrade with a

//500 mV offset to allow for negative temperatures

int tempReading; // the analog reading from the sensor

void setup(void) {

// We’ll send debugging information via the Serial monitor

Serial.begin(9600);

// If you want to set the aref to something other than 5v

analogReference(EXTERNAL);

}

void loop(void) {

photocellReading = analogRead(photocellPin);

Serial.print(“Light reading = ”);

Serial.print(photocellReading); // the raw analog reading

// We‘ll have a few threshholds, qualitatively determined

if (photocellReading 《 10) {

Serial.println(“ - Dark”);

} else if (photocellReading 《 200) {

Serial.println(“ - Dim”);

} else if (photocellReading 《 500) {

Serial.println(“ - Light”);

} else if (photocellReading 《 800) {

Serial.println(“ - Bright”);

} else {

Serial.println(“ - Very bright”);

}

tempReading = analogRead(tempPin);

Serial.print(“Temp reading = ”);

Serial.print(tempReading); // the raw analog reading

// converting that reading to voltage, which is based off the reference voltage

float voltage = tempReading * aref_voltage / 1024;

// print out the voltage

Serial.print(“ - ”);

Serial.print(voltage); Serial.println(“ volts”);

// now print out the temperature

float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset

//to degrees ((volatge - 500mV) times 100)

Serial.print(temperatureC); Serial.println(“ degrees C”);

// now convert to Fahrenheight

float temperatureF = (temperatureC * 9 / 5) + 32;

Serial.print(temperatureF); Serial.println(“ degrees F”);

delay(1000);

}

確定上傳此草圖,然后再次檢查串行監(jiān)視器

在我的工作室中,我的溫度約為24攝氏度,“光度”約為400-請(qǐng)記住,盡管溫度傳感器以C或F給出“絕對(duì)”讀數(shù),但光傳感器為

一旦您確認(rèn)傳感器已正確連接并運(yùn)行其時(shí)間來記錄日志,就無法精確地給出讀數(shù)!

測(cè)井草圖

從Git下載光和溫度測(cè)井草圖轂。插入SD卡。

在該部分的草圖頂部查找,并取消注釋任何相關(guān)的行。如果您不確定自己擁有哪一個(gè),請(qǐng)查看RTC頁面以獲取詳細(xì)信息。

下載:文件

復(fù)制代碼

/************** if you have a DS1307 uncomment this line **************/

//RTC_DS1307 RTC; // define the Real Time Clock object

/************** if you have a PCF8523 uncomment this line **************/

//RTC_PCF8523 RTC; // define the Real Time Clock object

/**********************************************************************/ /************** if you have a DS1307 uncomment this line **************/

//RTC_DS1307 RTC; // define the Real Time Clock object

/************** if you have a PCF8523 uncomment this line **************/

//RTC_PCF8523 RTC; // define the Real Time Clock object

/**********************************************************************/

將草圖上傳到Arduino?,F(xiàn)在,我們將在仍“綁定”到計(jì)算機(jī)上的情況下對(duì)其進(jìn)行測(cè)試

在Arduno仍保持連接,閃爍并通電的情況下,將您的手放在光電管上幾秒鐘,然后將閃光燈照在它上面。您還應(yīng)該用手指擠壓溫度傳感器以對(duì)其加熱

使用電子表格繪制

當(dāng)您準(zhǔn)備檢查數(shù)據(jù)時(shí),請(qǐng)拔下Arduino并將SD卡放入計(jì)算機(jī)的讀卡器中。您將至少看到一個(gè)文件,或者可能是幾個(gè)文件,每次記錄器最終運(yùn)行時(shí)都一個(gè)文件

我們將打開最新的一個(gè)。如果要使用圖形演示中使用的相同日志文件,請(qǐng)單擊此處下載。

查看數(shù)據(jù)的最快方法是使用OpenOffice或Excel之類的文件,您可以在其中打開.csv文件并將其直接導(dǎo)入電子表格

然后您可以通過選擇數(shù)據(jù)列來執(zhí)行一些繪圖操作

點(diǎn)擊圖表 按鈕并使用線條(我們認(rèn)為它們最適合此類圖表)

設(shè)置第一列作為標(biāo)簽

這將生成此圖

您可以清楚地看到我如何遮蔽傳感器,然后在其上照手電筒。

您可以使圖形顯示兩者都具有不同的軸(因?yàn)闇囟茸兓且唤M不同的單位。選擇臨時(shí)線(紅色),右鍵單擊并選擇格式化數(shù)據(jù)系列。在選項(xiàng)標(biāo)簽中,將數(shù)據(jù)系列與次要Y軸對(duì)齊。

或者您也可以僅使用 temp 數(shù)據(jù)

現(xiàn)在可以清楚地看到如何通過將其握在手指之間來對(duì)其進(jìn)行加熱

使用Gnuplot

Gnuplot是一個(gè)免費(fèi)的(但不是開源的?)超強(qiáng)大的繪圖程序。使用起來也很痛苦!但是,如果您買不起Mathematica或Matlab等專業(yè)的數(shù)學(xué)/繪圖軟件包,則Gnuplot可以做很多!

我們不足以提供有關(guān)gnuplot的完整教程,這里有一些我們發(fā)現(xiàn)方便的鏈接。 Google一定會(huì)幫助您找到更多的教程和鏈接。也是最好的老師。

http://www.cs.hmc.edu/~vrable/gnuplot/using-gnuplot.html

http://www.duke.edu/~hpgavin/gnuplot.html

http://www.ibm.com/developerworks/library/l-gnuplot/

我們發(fā)現(xiàn)按順序執(zhí)行以下命令將生成此數(shù)據(jù)的漂亮圖形,請(qǐng)確保將LOGTEST.CSV與 wgnuplot.exe 放在同一目錄中(或者,如果您知道如何引用目錄,則可以可以放在其他位置)

下載:文件

復(fù)制代碼

set xlabel “Time” # set the lower X-axis label to ’time‘

set xtics rotate by -270 # have the time-marks on their side

set ylabel “Light level (qualitative)” # set the left Y-axis label

set ytics nomirror # tics only on left side

set y2label “Temperature in Fahrenheit” # set the right Y-axis label

set y2tics border # put tics no right side

set key box top left # legend box

set key box linestyle 0

set xdata time # the x-axis is time

set format x “%H:%M:%S” # display as time

set timefmt “%s” # but read in as ’unix timestamp‘

plot “LOGTEST.CSV” using 2:4 with lines title “Light levels”

replot “LOGTEST.CSV” using 2:5 axes x1y2 with lines title “Temperature (F)”

set xlabel “Time” # set the lower X-axis label to ’time‘

set xtics rotate by -270 # have the time-marks on their side

set ylabel “Light level (qualitative)” # set the left Y-axis label

set ytics nomirror # tics only on left side

set y2label “Temperature in Fahrenheit” # set the right Y-axis label

set y2tics border # put tics no right side

set key box top left # legend box

set key box linestyle 0

set xdata time # the x-axis is time

set format x “%H:%M:%S” # display as time

set timefmt “%s” # but read in as ’unix timestamp‘

plot “LOGTEST.CSV” using 2:4 with lines title “Light levels”

replot “LOGTEST.CSV” using 2:5 axes x1y2 with lines title “Temperature (F)”

這是這樣的:

請(qǐng)注意超酷的雙面y軸刻度!您也可以輕松放大內(nèi)容。

其他繪圖儀

我們的朋友約翰還建議將Live-Graph作為免費(fèi)的繪圖程序-我們還沒有嘗試過,但是如果您需要進(jìn)行大量繪圖,它值得一看!/p》

便攜式日志記錄

當(dāng)然,有一個(gè)數(shù)據(jù)記錄器鏈接到臺(tái)式計(jì)算機(jī)并不是那么方便。我們可以通過增加電池組來制造便攜式記錄儀。獲得大量電量的最便宜方法是使用6節(jié)AA電池。我在這里用可充電電池和6xAA電池座制作了一個(gè)。它每秒運(yùn)行Arduino日志一次,持續(xù)18.5小時(shí)。如果您使用堿,則可以輕松獲得24小時(shí)或更長時(shí)間。

冰箱日志記錄

準(zhǔn)備好我的便攜式記錄儀之后,該做一些冰箱Loggin了!兩者都放在冰箱的中間架子中央。

我將其放置在晚上10點(diǎn)左右,然后第二天中午將其移除。如果您沒有冰箱,則可以從此zip文件中獲取數(shù)據(jù)并使用它。

以下是記錄的數(shù)據(jù):

您可以在中間看到并結(jié)束溫度和光照水平很高,因?yàn)橛涗泝x在冰箱外面。綠線是溫度,因此您可以看到溫度緩慢升高,然后每半小時(shí)左右啟動(dòng)壓縮機(jī)。紅線表示門何時(shí)打開。今晚比平常更殘酷!

在大約12:40 AM放大圖,我們可以看到門打開時(shí)溫度是如何上升的,即使在幾秒鐘內(nèi)溫度也可以很快上升4度!

結(jié)論!

好的,這是一個(gè)詳細(xì)的項(xiàng)目,但是它是測(cè)試數(shù)據(jù)記錄的一個(gè)好項(xiàng)目的能力,尤其是因?yàn)樗y以修復(fù)現(xiàn)場(chǎng)的錯(cuò)誤。通常,我們建議嘗試其他傳感器,并在可能的情況下在家進(jìn)行測(cè)試。記錄比所需更多的數(shù)據(jù),并使用軟件程序過濾不需要的內(nèi)容也是一個(gè)好主意。例如,我們不使用VCC日志,但是如果您的傳感器行為異常,它可能會(huì)為您提供電池壽命是否在影響它的線索。

代碼演練

簡(jiǎn)介

這是“光和溫度記錄”草圖的演練。它冗長而詳盡,因此我們將其放在此處以供您細(xì)讀。我們強(qiáng)烈建議您仔細(xì)閱讀它,該代碼具有非常多的用途,并且我們的文字描述應(yīng)清楚說明其中為什么存在所有內(nèi)容!

在此處下載完整文件:

包含并定義

下載:文件

復(fù)制代碼

#include “SD.h”

#include

#include “RTClib.h” #include “SD.h”

#include

#include “RTClib.h”

確定這是文件的頂部,其中我們包括三個(gè)將要使用的庫:用于與卡對(duì)話的 SD 庫,可幫助Arduino的 Wire 庫使用i2c和 RTClib 與實(shí)時(shí)時(shí)鐘聊天

下載:文件

復(fù)制代碼

// A simple data logger for the Arduino analog pins

#define LOG_INTERVAL 1000 // mills between entries

#define ECHO_TO_SERIAL 1 // echo data to serial port

#define WAIT_TO_START 0 // Wait for serial input in setup()

// the digital pins that connect to the LEDs

#define redLEDpin 3

#define greenLEDpin 4

// The analog pins that connect to the sensors

#define photocellPin 0 // analog 0

#define tempPin 1 // analog 1 // A simple data logger for the Arduino analog pins

#define LOG_INTERVAL 1000 // mills between entries

#define ECHO_TO_SERIAL 1 // echo data to serial port

#define WAIT_TO_START 0 // Wait for serial input in setup()

// the digital pins that connect to the LEDs

#define redLEDpin 3

#define greenLEDpin 4

// The analog pins that connect to the sensors

#define photocellPin 0 // analog 0

#define tempPin 1 // analog 1

接下來都是“定義” -常量和可調(diào)整項(xiàng)。

LOG_INTERVAL是傳感器讀數(shù)之間的毫秒數(shù)。 1000是1秒,這不是一個(gè)不好的起點(diǎn)。

ECHO_TO_SERIA L確定是否將寫入卡的內(nèi)容也發(fā)送到串行監(jiān)視器。這會(huì)使記錄器更加緩慢,您可能需要串行監(jiān)視器來查看其他內(nèi)容。另一方面,它的使用很有用。我們將其設(shè)置為 1 以保持打開狀態(tài)。將其設(shè)置為 0 將其關(guān)閉

WAIT_TO_START意味著您必須向Arduino的串行端口發(fā)送一個(gè)字符才能啟動(dòng)記錄。如果您啟用了此功能,則基本上無法使其脫離計(jì)算機(jī),因此我們暫時(shí)將其保持關(guān)閉狀態(tài)(設(shè)置為 0 )。如果要打開它,請(qǐng)將其設(shè)置為 1

其他定義更容易理解,因?yàn)樗鼈冎皇且_定義

redLEDpin是您連接到記錄儀護(hù)罩上紅色LED的一切

greenLEDpin是您連接到記錄儀護(hù)罩上綠色LED的一切

photocellPin是CdS單元連接到的模擬輸入

tempPin是TMP36連接到的模擬輸入

對(duì)象和錯(cuò)誤()

下載:文件

復(fù)制代碼

RTC_DS1307 RTC; // define the Real Time Clock object

// for the data logging shield, we use digital pin 10 for the SD cs line

const int chipSelect = 10;

// the logging file

File logfile;

void error(char *str)

{

Serial.print(“error: ”);

Serial.println(str);

// red LED indicates error

digitalWrite(redLEDpin, HIGH);

while(1);

} RTC_DS1307 RTC; // define the Real Time Clock object

// for the data logging shield, we use digital pin 10 for the SD cs line

const int chipSelect = 10;

// the logging file

File logfile;

void error(char *str)

{

Serial.print(“error: ”);

Serial.println(str);

// red LED indicates error

digitalWrite(redLEDpin, HIGH);

while(1);

}

接下來,我們已經(jīng)有了RTC的所有對(duì)象以及SD卡芯片選擇引腳。對(duì)于我們所有的屏蔽,我們將 pin 10 用于SD卡芯片選擇線

接下來是error()功能,這對(duì)我們來說只是一個(gè)快捷方式,我們?cè)谝韵虑闆r下使用它發(fā)生了一件非常糟糕的事情,例如我們無法寫入SD卡或?qū)⑵浯蜷_。它將錯(cuò)誤輸出到串行監(jiān)視器,打開紅色錯(cuò)誤LED,然后永遠(yuǎn)處于while(1);循環(huán),也稱為 halt

設(shè)置

下載:文件

復(fù)制代碼

void setup(void)

{

Serial.begin(9600);

Serial.println();

#if WAIT_TO_START

Serial.println(“Type any character to start”);

while (!Serial.available());

#endif //WAIT_TO_START

void setup(void)

{

Serial.begin(9600);

Serial.println();

#if WAIT_TO_START

Serial.println(“Type any character to start”);

while (!Serial.available());

#endif //WAIT_TO_START

K現(xiàn)在我們進(jìn)入代碼。我們首先以9600波特初始化串口。如果我們將WAIT_TO_START設(shè)置為除 0 之外的任何值,則Arduino將等待直到用戶鍵入內(nèi)容為止。否則,它將進(jìn)入下一部分

下載:文件

復(fù)制代碼

// initialize the SD card

Serial.print(“Initializing SD card.。.”);

// make sure that the default chip select pin is set to

// output, even if you don’t use it:

pinMode(10, OUTPUT);

// see if the card is present and can be initialized:

if (!SD.begin(chipSelect)) {

Serial.println(“Card failed, or not present”);

// don‘t do anything more:

return;

}

Serial.println(“card initialized.”);

// create a new file

char filename[] = “LOGGER00.CSV”;

for (uint8_t i = 0; i 《 100; i++) {

filename[6] = i/10 + ’0‘;

filename[7] = i%10 + ’0‘;

if (! SD.exists(filename)) {

// only open a new file if it doesn’t exist

logfile = SD.open(filename, FILE_WRITE);

break; // leave the loop!

}

}

if (! logfile) {

error(“couldnt create file”);

}

Serial.print(“Logging to: ”);

Serial.println(filename); // initialize the SD card

Serial.print(“Initializing SD card.。.”);

// make sure that the default chip select pin is set to

// output, even if you don‘t use it:

pinMode(10, OUTPUT);

// see if the card is present and can be initialized:

if (!SD.begin(chipSelect)) {

Serial.println(“Card failed, or not present”);

// don’t do anything more:

return;

}

Serial.println(“card initialized.”);

// create a new file

char filename[] = “LOGGER00.CSV”;

for (uint8_t i = 0; i 《 100; i++) {

filename[6] = i/10 + ‘0’;

filename[7] = i%10 + ‘0’;

if (! SD.exists(filename)) {

// only open a new file if it doesn‘t exist

logfile = SD.open(filename, FILE_WRITE);

break; // leave the loop!

}

}

if (! logfile) {

error(“couldnt create file”);

}

Serial.print(“Logging to: ”);

Serial.println(filename);

現(xiàn)在代碼開始與SD卡通信,它將嘗試初始化SD卡并找到FAT16/FAT32分區(qū)。

接下來它將嘗試創(chuàng)建日志文件。我們?cè)谶@里做了一些棘手的事情,我們基本上希望將文件命名為 LOGGERnn 。 csv ,其中 nn 是一個(gè)數(shù)字。通過開始嘗試創(chuàng)建 LOGGER00.CSV 并在文件已經(jīng)存在時(shí)每次遞增,直到我們到達(dá) LOGGER99.csv ,我們基本上每次創(chuàng)建一個(gè)新文件Arduino啟動(dòng)

要?jiǎng)?chuàng)建文件,我們使用一些Unix風(fēng)格的命令標(biāo)志,您可以在logfile.open() 過程中看到這些標(biāo)志。 FILE_WRITE 表示創(chuàng)建文件并向其中寫入數(shù)據(jù)。

假設(shè)我們成功創(chuàng)建了文件,則將名稱打印到串行端口。

下載:文件

復(fù)制代碼

Wire.begin();

if (!RTC.begin()) {

logfile.println(“RTC failed”);

#if ECHO_TO_SERIAL

Serial.println(“RTC failed”);

#endif //ECHO_TO_SERIAL

}

logfile.println(“millis,time,light,temp”);

#if ECHO_TO_SERIAL

Serial.println(“millis,time,light,temp”);

#if ECHO_TO_SERIAL// attempt to write out the header to the file

if (logfile.writeError || !logfile.sync()) {

error(“write header”);

}

pinMode(redLEDpin, OUTPUT);

pinMode(greenLEDpin, OUTPUT);

// If you want to set the aref to something other than 5v

//analogReference(EXTERNAL);

} Wire.begin();

if (!RTC.begin()) {

logfile.println(“RTC failed”);

#if ECHO_TO_SERIAL

Serial.println(“RTC failed”);

#endif //ECHO_TO_SERIAL

}

logfile.println(“millis,time,light,temp”);

#if ECHO_TO_SERIAL

Serial.println(“millis,time,light,temp”);

#if ECHO_TO_SERIAL// attempt to write out the header to the file

if (logfile.writeError || !logfile.sync()) {

error(“write header”);

}

pinMode(redLEDpin, OUTPUT);

pinMode(greenLEDpin, OUTPUT);

// If you want to set the aref to something other than 5v

//analogReference(EXTERNAL);

}

好的,我們?cè)谶@里結(jié)束了。現(xiàn)在,我們通過初始化Wire庫開始RTC,并戳RTC以查看其是否還存在。

然后我們打印標(biāo)題。標(biāo)頭是文件的第一行,可幫助您的電子表格或數(shù)學(xué)程序確定接下來要執(zhí)行的操作。數(shù)據(jù)采用CSV(逗號(hào)分隔值)格式,因此標(biāo)頭也是如此:“ millis,time,light,temp”第一項(xiàng) millis 是自Arduino啟動(dòng)以來的毫秒數(shù),時(shí)間是RTC的時(shí)間和日期, light 是CdS單元中的數(shù)據(jù), temp 是讀取的溫度。

您將請(qǐng)注意,在每次調(diào)用 logfile.print()之后,我們都有#if ECHO_TO_SERIAL和匹配的 Serial.print()調(diào)用,接著是#if ECHO_TO_SERIAL,這就是調(diào)試我們前面提到的輸出。 logfile.print()調(diào)用是將數(shù)據(jù)寫入SD卡上的文件的功能,其作用與 Serial 版本非常相似。如果將 ECHO_TO_SERIAL 設(shè)置為頂部的 0 ,則看不到打印到串行終端的書面數(shù)據(jù)。

最后,我們將兩個(gè)LED引腳作為輸出,因此我們可以使用它們與用戶進(jìn)行通信。有一條注釋行用于設(shè)置模擬參考電壓。此代碼假定您將使用“默認(rèn)”參考,該參考是芯片的VCC電壓-在傳統(tǒng)的Arduino上這是5.0V。有時(shí)可以通過降低參考來獲得更高的精度。但是,我們暫時(shí)將其保持簡(jiǎn)單!稍后,您可能要嘗試一下。

主循環(huán)

現(xiàn)在進(jìn)入循環(huán),循環(huán)基本上重復(fù)執(zhí)行以下操作:

等待直到下一次出現(xiàn)讀(每秒說一次-取決于我們定義的內(nèi)容)

詢問當(dāng)前時(shí)間和日期,以免RTC

將時(shí)間和日期記錄到SD卡上

讀取光電池和溫度傳感器

將這些讀數(shù)記錄到SD卡上

如果時(shí)間到,將數(shù)據(jù)同步到SD卡

時(shí)間戳

讓我們看一下第一部分:

下載:文件

復(fù)制代碼

void loop(void)

{

DateTime now;

// delay for the amount of time we want between readings

delay((LOG_INTERVAL -1) - (millis() % LOG_INTERVAL));

digitalWrite(greenLEDpin, HIGH);

// log milliseconds since starting

uint32_t m = millis();

logfile.print(m); // milliseconds since start

logfile.print(“, ”);

#if ECHO_TO_SERIAL

Serial.print(m); // milliseconds since start

Serial.print(“, ”);

#endif

// fetch the time

now = RTC.now();

// log time

logfile.print(now.get()); // seconds since 2000

logfile.print(“, ”);

logfile.print(now.year(), DEC);

logfile.print(“/”);

logfile.print(now.month(), DEC);

logfile.print(“/”);

logfile.print(now.day(), DEC);

logfile.print(“ ”);

logfile.print(now.hour(), DEC);

logfile.print(“:”);

logfile.print(now.minute(), DEC);

logfile.print(“:”);

logfile.print(now.second(), DEC);

#if ECHO_TO_SERIAL

Serial.print(now.get()); // seconds since 2000

Serial.print(“, ”);

Serial.print(now.year(), DEC);

Serial.print(“/”);

Serial.print(now.month(), DEC);

Serial.print(“/”);

Serial.print(now.day(), DEC);

Serial.print(“ ”);

Serial.print(now.hour(), DEC);

Serial.print(“:”);

Serial.print(now.minute(), DEC);

Serial.print(“:”);

Serial.print(now.second(), DEC);

#endif //ECHO_TO_SERIAL

void loop(void)

{

DateTime now;

// delay for the amount of time we want between readings

delay((LOG_INTERVAL -1) - (millis() % LOG_INTERVAL));

digitalWrite(greenLEDpin, HIGH);

// log milliseconds since starting

uint32_t m = millis();

logfile.print(m); // milliseconds since start

logfile.print(“, ”);

#if ECHO_TO_SERIAL

Serial.print(m); // milliseconds since start

Serial.print(“, ”);

#endif

// fetch the time

now = RTC.now();

// log time

logfile.print(now.get()); // seconds since 2000

logfile.print(“, ”);

logfile.print(now.year(), DEC);

logfile.print(“/”);

logfile.print(now.month(), DEC);

logfile.print(“/”);

logfile.print(now.day(), DEC);

logfile.print(“ ”);

logfile.print(now.hour(), DEC);

logfile.print(“:”);

logfile.print(now.minute(), DEC);

logfile.print(“:”);

logfile.print(now.second(), DEC);

#if ECHO_TO_SERIAL

Serial.print(now.get()); // seconds since 2000

Serial.print(“, ”);

Serial.print(now.year(), DEC);

Serial.print(“/”);

Serial.print(now.month(), DEC);

Serial.print(“/”);

Serial.print(now.day(), DEC);

Serial.print(“ ”);

Serial.print(now.hour(), DEC);

Serial.print(“:”);

Serial.print(now.minute(), DEC);

Serial.print(“:”);

Serial.print(now.second(), DEC);

#endif //ECHO_TO_SERIAL

第一個(gè)重要的事情是 delay()調(diào)用,這就是使Arduino等待直到需要再次讀取的原因。如果您還記得我們 #defined ,則兩次讀數(shù)之間的延遲為1000毫秒(1秒)。由于兩次讀取之間有更多延遲,因此我們可以使用更少的電量,而無法盡快填充存儲(chǔ)卡。這基本上是一個(gè)折衷,您希望多久讀取一次數(shù)據(jù),但是對(duì)于基本的長期日志記錄,每秒獲取數(shù)據(jù)將導(dǎo)致大量數(shù)據(jù)!

然后我們打開綠色LED,這對(duì)于告訴我們,是的,我們現(xiàn)在正在讀取/寫入數(shù)據(jù)。

接下來,我們調(diào)用 millis ()以獲取“自arduino開啟以來的時(shí)間”并將其記錄到卡上。擁有它很方便-尤其是如果您最終不使用RTC時(shí)。

然后熟悉的 RTC.now()調(diào)用以獲取時(shí)間快照。有了這些信息后,我們便可以使用電子表格可以輕松識(shí)別的時(shí)間戳記(自2000年以來的秒數(shù))以及 YY/MM/DD HH:MM:SS 時(shí)間格式。我們兩者都有,因?yàn)闀r(shí)間戳的好處是它會(huì)單調(diào)增加,而打印日期的好處是它的可讀性

記錄傳感器數(shù)據(jù)

下一個(gè)是傳感器記錄代碼

下載:文件

復(fù)制代碼

int photocellReading = analogRead(photocellPin);

delay(10);

int tempReading = analogRead(tempPin);

// converting that reading to voltage, for 3.3v arduino use 3.3

float voltage = (tempReading * 5.0) / 1024.0;

float temperatureC = (voltage - 0.5) * 100.0 ;

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;

logfile.print(“, ”);

logfile.print(photocellReading);

logfile.print(“, ”);

logfile.println(temperatureF);

#if ECHO_TO_SERIAL

Serial.print(“, ”);

Serial.print(photocellReading);

Serial.print(“, ”);

Serial.println(temperatureF);

#endif //ECHO_TO_SERIAL

digitalWrite(greenLEDpin, LOW);

} int photocellReading = analogRead(photocellPin);

delay(10);

int tempReading = analogRead(tempPin);

// converting that reading to voltage, for 3.3v arduino use 3.3

float voltage = (tempReading * 5.0) / 1024.0;

float temperatureC = (voltage - 0.5) * 100.0 ;

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;

logfile.print(“, ”);

logfile.print(photocellReading);

logfile.print(“, ”);

logfile.println(temperatureF);

#if ECHO_TO_SERIAL

Serial.print(“, ”);

Serial.print(photocellReading);

Serial.print(“, ”);

Serial.println(temperatureF);

#endif //ECHO_TO_SERIAL

digitalWrite(greenLEDpin, LOW);

}

此代碼非常簡(jiǎn)單,處理代碼已從我們之前的教程中刪除。然后我們只需將其打?。ǎ┑娇ㄉ?,并用逗號(hào)將兩者分開即可

我們通過關(guān)閉綠色LED指示燈完成

下載

文件 GitHub上的

EagleCAD PCB文件

Adafruit Fritzing庫中的Fritzing對(duì)象

修訂版C原理圖和構(gòu)造打印

版本B原理圖

點(diǎn)擊放大

原始版本原理圖

點(diǎn)擊放大

責(zé)任編輯:wv

聲明:本文內(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)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    車載 CAN-Bus 數(shù)據(jù)記錄儀

    車載CAN-Bus數(shù)據(jù)記錄儀 型號(hào):SG-CAN-200R 產(chǎn)品概述 CAN 總線故障排查中,對(duì)于偶發(fā)性的故障排查非常棘手,工程師很難再次復(fù)現(xiàn)故障現(xiàn)場(chǎng)。 SG-CAN-200R 記錄儀就相當(dāng)于
    的頭像 發(fā)表于 07-15 14:13 ?101次閱讀
    車載 CAN-Bus <b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>記錄儀</b>

    當(dāng)CCLink IE遇上DeviceNet,數(shù)據(jù)記錄儀秒變\"卷王\"?

    工程師調(diào)試時(shí)準(zhǔn)遇過這場(chǎng)景:產(chǎn)線DeviceNet記錄儀想接入CCLink IE系統(tǒng),數(shù)據(jù)傳輸跟\"擠牙膏\",設(shè)備像個(gè)\"失語實(shí)習(xí)生\"。這時(shí)候,一臺(tái)耐達(dá)訊通
    發(fā)表于 06-11 14:48

    壓力數(shù)據(jù)記錄儀功能有哪些?點(diǎn)開看看就知道

    在工業(yè)、科研等眾多領(lǐng)域,壓力數(shù)據(jù)的精確記錄和分析至關(guān)重要。想要測(cè)量壓力數(shù)據(jù),必然需要用到專業(yè)的工具,那就是壓力數(shù)據(jù)記錄儀。那么,壓力
    發(fā)表于 05-19 16:39

    DM400G彩色無紙記錄儀使用說明

    彩色無紙記錄儀使用說明
    發(fā)表于 04-07 15:52 ?0次下載

    DM300GG彩色無紙記錄儀使用說明

    彩色無紙記錄儀使用說明
    發(fā)表于 04-07 15:51 ?0次下載

    濕度數(shù)據(jù)記錄儀是什么?一文為你解答

    在日常生活以及常見的工業(yè)場(chǎng)景當(dāng)中,濕度是很重要的一個(gè)因素。從居住的房間舒適度,到一些對(duì)濕度要求極高的實(shí)驗(yàn)室、倉庫等場(chǎng)所,可能都需要進(jìn)行精準(zhǔn)的濕度把控。在這個(gè)過程中,濕度數(shù)據(jù)記錄儀發(fā)揮著重要的作用
    發(fā)表于 03-31 10:35

    如何操作電子溫濕度記錄儀

    電子溫濕度記錄儀是一種常用的記錄儀產(chǎn)品類型,選用進(jìn)口傳感器、進(jìn)口高能鋰電池供電,采用低功耗技術(shù)設(shè)計(jì),可以外接電源供電,體積小巧,整機(jī)功耗小,精度高。被廣泛用于工業(yè)、環(huán)保、衛(wèi)生防疫、倉儲(chǔ)運(yùn)輸、博物館等
    的頭像 發(fā)表于 03-25 10:39 ?614次閱讀
    如何操作電子溫濕度<b class='flag-5'>記錄儀</b>

    數(shù)據(jù)記錄儀的計(jì)數(shù)原理和應(yīng)用場(chǎng)景

    數(shù)據(jù)記錄儀是一種用于測(cè)量、記錄和分析各種數(shù)據(jù)的設(shè)備,其計(jì)數(shù)原理和應(yīng)用場(chǎng)景可以歸納如下: 一、計(jì)數(shù)原理數(shù)據(jù)
    發(fā)表于 02-24 14:28

    初次啟動(dòng)沖擊記錄儀時(shí)具體該如何操作?別著急,答案就在視頻教程里!#數(shù)據(jù)記錄儀 #沖擊記錄儀 #沖擊監(jiān)測(cè)

    數(shù)據(jù)記錄儀
    虹科工業(yè)物聯(lián)網(wǎng)技術(shù)
    發(fā)布于 :2025年02月10日 10:38:12

    行車記錄儀時(shí)鐘輻射問題整改案例

    本次整改的樣機(jī)是一個(gè)行車記錄儀,根據(jù)客戶的反饋,存在時(shí)鐘單支輻射超標(biāo)問題。
    的頭像 發(fā)表于 01-21 11:43 ?790次閱讀
    行車<b class='flag-5'>記錄儀</b>時(shí)鐘輻射問題整改案例

    如何連接溫度探頭到數(shù)據(jù)記錄儀

    在工業(yè)、科研和日常生活中,溫度測(cè)量是一項(xiàng)基本而重要的工作。數(shù)據(jù)記錄儀作為一種能夠自動(dòng)記錄溫度變化的設(shè)備,因其便攜性和準(zhǔn)確性而受到廣泛應(yīng)用。 1. 了解溫度探頭和數(shù)據(jù)
    的頭像 發(fā)表于 01-20 10:02 ?674次閱讀

    DM800G無紙記錄儀使用手冊(cè)

    無紙記錄儀使用說明
    發(fā)表于 01-15 16:15 ?0次下載

    無線溫度記錄儀的設(shè)計(jì)思路和應(yīng)用方案

    電子科技有限公司生產(chǎn)的無線溫度記錄儀作為一種先進(jìn)的監(jiān)控工具,其在倉庫溫濕度監(jiān)控系統(tǒng)中的應(yīng)用具有顯著的優(yōu)勢(shì)。本文將詳細(xì)介紹無線溫度記錄儀的設(shè)計(jì)思路和應(yīng)用方案。 ? 無線溫度記錄儀 一、系統(tǒng)設(shè)計(jì)目標(biāo) 在現(xiàn)代工業(yè)、農(nóng)業(yè)、科
    的頭像 發(fā)表于 01-14 18:24 ?529次閱讀
    無線溫度<b class='flag-5'>記錄儀</b>的設(shè)計(jì)思路和應(yīng)用方案

    路暢科技發(fā)布百秘盾二代加密記錄儀,全面升級(jí)汽車數(shù)據(jù)安全防護(hù)

    10月25日,路暢科技正式揭曉了其最新的研發(fā)成果——百秘盾二代加密記錄儀,并宣布該產(chǎn)品將于10月28日全面登陸各大電商平臺(tái)。這一舉動(dòng)標(biāo)志著路暢科技在強(qiáng)化汽車記錄儀音視頻數(shù)據(jù)安全領(lǐng)域取得了重大進(jìn)展。
    的頭像 發(fā)表于 11-05 11:28 ?997次閱讀

    精準(zhǔn)記錄,高效分析:?jiǎn)伪倍番F(xiàn)場(chǎng)記錄儀在各行各業(yè)的應(yīng)用

    在這個(gè)信息爆炸、效率至上的時(shí)代,每一個(gè)細(xì)節(jié)的記錄與分析都成為了推動(dòng)行業(yè)進(jìn)步的關(guān)鍵力量。單北斗現(xiàn)場(chǎng)記錄儀,作為集高精度定位、高清視頻錄制、智能數(shù)據(jù)分析于一體的創(chuàng)新設(shè)備,正悄然改變著各行各業(yè)的作業(yè)模式
    的頭像 發(fā)表于 08-28 11:46 ?728次閱讀
    精準(zhǔn)<b class='flag-5'>記錄</b>,高效分析:?jiǎn)伪倍番F(xiàn)場(chǎng)<b class='flag-5'>記錄儀</b>在各行各業(yè)的應(yīng)用