步驟1:匯編
數(shù)據(jù)記錄器屏蔽可以輕松堆疊在Arduino Uno板上。該屏蔽提供數(shù)據(jù)記錄功能(計(jì)時(shí)和數(shù)據(jù)存儲(chǔ))。盾牌必須堆疊。必須將CR1220紐扣電池插入所提供的圓形插槽中,以便即使在Arduino斷電時(shí)也能保持時(shí)鐘運(yùn)行。必須將SD存儲(chǔ)卡插入提供的板載卡插槽中。通過(guò)使用RJ-9連接器母針和Arduino屏蔽堆疊頭來(lái)開(kāi)發(fā)獨(dú)特的定制屏蔽。適當(dāng)?shù)慕宇^焊接在適當(dāng)?shù)奈恢茫员闫帘瓮耆m合Arduino板。 Arduino一側(cè)有18個(gè)引腳,另一側(cè)有14個(gè)引腳。具有相同數(shù)量引腳的接頭使用與Arduino相同的間距(相隔18個(gè)引腳)。標(biāo)頭附近的剩余額外空間用于放置RJ-9連接器。
標(biāo)頭是使用所需引腳的最佳方式,同時(shí)使它們?nèi)匀豢捎糜谄渌M件。使用的傳感器遵循I2C通信協(xié)議,該協(xié)議需要Arduino的4個(gè)引腳,即:SDA(也可用作A4),SCL(也可用作A5),3.3V和GND。從RJ-9連接器出來(lái)的四根電線焊接到這四個(gè)插頭引腳中。所需的RJ-9連接器數(shù)量取決于傳感器的數(shù)量。在這個(gè)項(xiàng)目中,使用了3個(gè)RJ-9連接器(兩個(gè)用于BME280,一個(gè)用于TSL2561)。從RJ-9連接器出來(lái)的四根電線是彩色編碼的,每條彩色電線都被指定為所有RJ-9連接器的特定引腳。必須注意的是,顏色代碼可能因不同的RJ-9件而異。在這種情況下,必須注意連接器上導(dǎo)線的位置。焊接后,RJ-9連接器使用Feviqwik粘貼在矢量板上,使其固定在表面上??梢允褂?a href="http://ttokpm.com/v/tag/796/" target="_blank">萬(wàn)用表上的連續(xù)性模式驗(yàn)證這些連接。在連續(xù)模式下,萬(wàn)用表應(yīng)顯示零電阻。將萬(wàn)用表的一個(gè)探頭連接到焊接引腳,將另一個(gè)探頭連接到RJ-9連接器內(nèi)的引腳。萬(wàn)用表應(yīng)發(fā)出音調(diào),這意味著焊點(diǎn)是正確的,并且連接已正確。如果沒(méi)有發(fā)出音調(diào),請(qǐng)檢查焊點(diǎn)。同樣,用相同的導(dǎo)線焊接RJ-9連接器,連接到傳感器分線板上的相同針孔,即A4,A5,3.3V和GND。 BME280傳感器支持兩個(gè)I2C地址,這意味著兩個(gè)BME280傳感器可以同時(shí)連接到同一個(gè)控制器。在這樣做時(shí),必須通過(guò)橋接傳感器上的焊盤(pán)來(lái)改變其中一個(gè)傳感器的地址。 ESP-01無(wú)線連接芯片需要與Arduino進(jìn)行以下連接。
ESP-01 --------- Arduino Uno
10 -------------------- TX
11 -------------------- RX
Vcc ------------- --- CH_PD
Vcc ------------------- Vcc
GND ---------- ------- GND
注意: - Arduino Uno上的多個(gè)LED被移除以改善電池壽命。通過(guò)加熱焊點(diǎn)并用鑷子推動(dòng)LED來(lái)移除電源指示燈LED,RX和TX LED。
步驟2:設(shè)置IDE和庫(kù)
在進(jìn)行任何編程之前,必須下載Arduino IDE(集成開(kāi)發(fā)環(huán)境)。編程是在這個(gè)平臺(tái)上完成的。需要不同的庫(kù)與OPENSDL的不同組件進(jìn)行交互。以下庫(kù)用于給定組件。
組件-------------------------------- -------------------------------圖書(shū)館
BME280溫度和相對(duì)濕度傳感器--------------------------------- Cactus_io_BME280_I2C.h
光傳感器----------------------------------------------- ----------------- SparkFun TSL2561.h
實(shí)時(shí)時(shí)鐘------------------- ----------------------------------------- RTClib.h
SD卡插座---------------------------------------------- -------------- SD.h
I2C連接------------------------ ------------------------------------- Wire.h
一個(gè)單獨(dú)的圖書(shū)館因?yàn)樵贏rduino上傳的代碼具有AT命令,所以發(fā)送到串行監(jiān)視器,ESP-01從那里獲取指令,因此不需要與ESP01通信。因此,基本上,ESP01運(yùn)行的AT命令被打印到串行監(jiān)視器中,這些命令被ESP-01視為輸入命令。要安裝這些庫(kù),請(qǐng)?jiān)谙螺d后打開(kāi)Arduino IDE,轉(zhuǎn)到Sketch - 》 Include Library - 》 Add .Zip庫(kù),然后選擇下載的庫(kù)。
步驟3:編程系統(tǒng)
在編程O(píng)PENSDL之前,將Arduino與筆記本電腦連接。連接后,轉(zhuǎn)到工具 - 》端口,然后選擇連接OPENSDL的COM端口。此外,請(qǐng)確保在工具 - 》板下選擇Arduino Uno。
開(kāi)發(fā)OPENSDL以在兩種模式下工作。在第一種模式下,它將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)記錄器屏蔽上的SD卡上。在第二種模式下,它通過(guò)使用ESP-01 Wi-Fi芯片將數(shù)據(jù)通過(guò)互聯(lián)網(wǎng)發(fā)送到網(wǎng)站。這兩種模式的程序是不同的。這些代碼行可以直接復(fù)制并粘貼到Arduino IDE編輯器中,并直接使用。進(jìn)入代碼后,我們需要根據(jù)需要進(jìn)行一些自定義:
手動(dòng)更改代碼末尾的delay(1000)值以更改記錄間隔。值1000表示以毫秒為單位的間隔。
編輯代碼行,其中顯示mySensorData = SD.open(“Logged01.csv”,F(xiàn)ILE_WRITE);并使用所需文件名的文件名替換Logged01。也可以通過(guò)在文件名后面修改.csv擴(kuò)展名來(lái)更改文件的擴(kuò)展名。
通過(guò)查找主/參考傳感器和BME280之間的相關(guān)性來(lái)實(shí)現(xiàn)的校準(zhǔn)公式將隨每個(gè)傳感器而變化。將此行代碼替換為校準(zhǔn)傳感器的公式:Serial.print((1.0533 * t2)-2.2374) - 對(duì)于具有默認(rèn)地址(0x77)的傳感器,其中t2是從溫度傳感器讀取的值。
已經(jīng)提供了一個(gè)單獨(dú)的程序來(lái)編程O(píng)PENSDL的第二種可用模式,即無(wú)線系統(tǒng)。必須根據(jù)步驟#2中說(shuō)明的連接將ESP-01連接到OPENSDL。完成連接后,將Arduino連接到筆記本電腦,并在Arduino中上傳空白草圖。將ESP-01置于更新模式,并將固件更新為最新的可用更新。更新后,確保將Arduino的復(fù)位引腳與3.3V引腳相連,該引腳繞過(guò)Arduino引導(dǎo)程序
步驟4:制作
為保護(hù)創(chuàng)建了OPENSDL的外殼并提高了美感。外殼采用PLA材料通過(guò)3D打印開(kāi)發(fā),微控制器的外殼通過(guò)激光切割MDF板并將這些部件粘合在一起而開(kāi)發(fā)出來(lái)。 3D打印模型采用SketchUp軟件開(kāi)發(fā),激光切割2D dxf圖紙采用AutoCAD創(chuàng)建。
對(duì)于3D打印,使用SketchUp生成的STL文件在Ultimaker Cura 3.2.1軟件中打開(kāi)并檢查。確保使用PLA材料,并且所用打印機(jī)的噴嘴用于0.4mm打印。 3D打印機(jī)的構(gòu)建板可能需要膠水來(lái)粘貼3D打印物體。但是當(dāng)打印完成后,膠水會(huì)在打印物體和底板之間產(chǎn)生強(qiáng)烈的粘合力。
步驟5:代碼
代碼( .ino文件)可以在Arduino IDE軟件中使用。
-
數(shù)據(jù)記錄器
+關(guān)注
關(guān)注
0文章
53瀏覽量
12672
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論