步驟1:材料
1.- Arduino UNO
2.-數(shù)據(jù)記錄器護(hù)罩
3.- 2個(gè)溫度傳感器DS18B20
4.-一種線地址查找器實(shí)用程序。
5.-面包板,連接器等。
6.-SD或micro SD卡
7.-CR 1220兵器(如果不包含)
8.-達(dá)拉斯溫度庫(kù)
9.- Onewire庫(kù)
第2步:傳感器的地址
下載實(shí)用程序1有線地址查找器并連接傳感器。您必須一一完成。在此示例中,我使用的是正常電源模式,并且將數(shù)據(jù)連接到arduino的引腳3。
我的引腳
紅色= Vcc + 5v
藍(lán)色=數(shù)據(jù)
黑色= GND
有此頁(yè)面上有關(guān)此傳感器的很多信息。
解壓縮1個(gè)有線地址查找器,然后將文件放入保存草圖的文件夾中。以我的Windows7為例:
我的文檔--- Arduino
然后從arduino IDE打開并運(yùn)行它
打開----我的文檔- --- Arduino ---一個(gè)電線地址查找器。pde
您必須復(fù)制地址。
請(qǐng)確保您已安裝所需的庫(kù)(Onewire和達(dá)拉斯溫度)
步驟3:測(cè)試傳感器
現(xiàn)在您可以連接兩個(gè)傳感器了。這次是引腳2,還是可以在這里更改:
#define ONE_WIRE_BUS_PIN 2//我們正在使用的引腳
每個(gè)傳感器都有自己的地址。您必須將地址放在這里:
DeviceAddress Probe01 = { 0x28、0xFF,0x56、0xC4、0x01、0x15、0x02、0x72 };//inox2
DeviceAddress Probe02 = { 0x28、0xFF,0xC2、0xD1、0x02、0x15、0x03、0xD9 };//Inox1
在此處更改分辨率:
///將分辨率設(shè)置為9位(可以是9到12位。.越低越快)
sensors.setResolution( Probe01,9);
sensors.setResolution(Probe02,9);
如果一切正常,您將在串行監(jiān)視器中保存數(shù)據(jù)(參見圖片)
步驟4:采樣率控制
I假設(shè)您知道如何使用數(shù)據(jù)記錄器防護(hù)罩。如果不是,請(qǐng)?jiān)L問我以前的說明。(介紹中的鏈接)
現(xiàn)在,我們必須使用數(shù)據(jù)記錄器防護(hù)罩的RTC。安裝它,然后將傳感器連接到arduino(Data)的引腳2。
確保您具有所需的庫(kù):Wire,OneWire,RTClib,DallasTemperature
訣竅是
所以我們有了:
DateTime now = RTC.now();。//時(shí)鐘調(diào)用
//-----------------一旦我們調(diào)用了時(shí)鐘,我們將比較min和sec并打印---------
if(now.second()== 00){//每分鐘采樣
如果秒為0,則我們有一個(gè)“新”分鐘并打印我們想要的內(nèi)容。有關(guān)更多詳細(xì)信息,請(qǐng)參見我之前的說明(導(dǎo)言中的鏈接)
以下是串行監(jiān)視器的示例:每分鐘和每10分鐘。您可以在圖片中看到結(jié)果。
步驟5:數(shù)據(jù)記錄器
我們測(cè)試了采樣率,現(xiàn)在我們使用屏蔽的sd卡記錄數(shù)據(jù)。您必須使用與上一步相同的連接。
警告
-某些屏蔽需要arduino的引腳10作為輸出,即使它在工作(記錄)。我沒有。
//pinMode(10,OUTPUT);//對(duì)于某些數(shù)據(jù)記錄器屏蔽。如果需要,請(qǐng)取消注釋。
-更改您的CS(chipSelect)的提示。我的是8
const int chipSelect = 8;//您的數(shù)據(jù)記錄器防護(hù)罩的CS引腳。也許不是您的!!
-確保您具有與數(shù)據(jù)記錄器防護(hù)罩兼容的經(jīng)過測(cè)試/格式化的sd卡。
使事情變得更容易,則可以使用函數(shù)“ getTempCByIndex”(攝氏)或getTempFByIndex(華氏度),其中(0)是第一個(gè)傳感器,(1)是第二個(gè)傳感器,依此類推。您不需要地址,但必須手動(dòng)識(shí)別傳感器。如果只需要一個(gè)傳感器,則此示例很有用,因此必須使用索引0。請(qǐng)參見示例。
繼續(xù)“按地址代碼”,我向您展示3個(gè)示例:每1、10和30分鐘。我認(rèn)為這些示例可以滿足您的需求。如果您每小時(shí)都需要:
if(now.minute()== 00 && now.second == 00)
{
打印所需內(nèi)容
}
您可以使用其他具有此結(jié)構(gòu)的傳感器來控制采樣率。
-
采樣率
+關(guān)注
關(guān)注
0文章
75瀏覽量
16745 -
DS18B20
+關(guān)注
關(guān)注
10文章
778瀏覽量
80716 -
數(shù)據(jù)記錄器
+關(guān)注
關(guān)注
0文章
53瀏覽量
12680 -
Arduino
+關(guān)注
關(guān)注
187文章
6464瀏覽量
186675
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論