構(gòu)建一個基于pocketbeagle的植物狀況監(jiān)視器
這個項目是為萊斯大學(xué)的EDES 301:實用電氣工程導(dǎo)論而開發(fā)的。
正如這篇文章所描述的,我設(shè)計并制造了一個基于pocketbeagle的植物狀況監(jiān)視器,它可以測量土壤濕度和溫度等環(huán)境條件,并將它們顯示在LCD屏幕上,并通過led提供視覺反饋。該系統(tǒng)旨在幫助防止常見的植物護(hù)理錯誤,如澆水過多或疏忽,這是我過去一直感到內(nèi)疚的。我想在我的植物枯萎和死亡之前找到一種方法來跟蹤和改善它的狀況。
設(shè)備概述
這是一個嵌入式系統(tǒng),旨在幫助用戶通過持續(xù)監(jiān)測環(huán)境條件來保持室內(nèi)植物的健康。該設(shè)備使用PocketBeagle微控制器,測量土壤濕度和溫度,在LCD屏幕上顯示實時數(shù)據(jù),并通過led提供視覺反饋。按鈕控制的界面允許用戶在顯示模式之間循環(huán)。該設(shè)備以自動啟動方式運行,被設(shè)計為嵌入式系統(tǒng)和電氣工程概念的實用和簡單應(yīng)用。
對于我的系統(tǒng),土壤濕度以百分比測量,我將這種情況分為四類:土壤濕潤(≥70%),最佳(40-69%),干燥(20-39%)和非常干燥(<20%)。溫度以攝氏度為單位監(jiān)測,以確保安全的操作條件并提供環(huán)境背景,幫助我了解熱量如何影響土壤干燥/植物健康。
硬件
在我的項目中,我使用了PocketBeagle作為微控制器。下面是它的引腳圖。
所有PocketBeagle引腳(P1和P2)到組件引腳(無論是在組件上還是在面包板上)都被捕獲在下面以方便參考。當(dāng)我測試我的系統(tǒng)時,這些pin是根據(jù)PocketBeagle的響應(yīng)情況決定的。
我開始這個項目首先連接3.3 V從PB (P1_14)到我的面包板的正電源軌。我還將GND從PB (P1_15)連接到負(fù)電源軌。這樣所有的傳感器,led,按鈕,電位器和其他組件都可以共享一個共同點,并且都提供3.3 V。
LCD顯示屏(HD44780, 16x2)
我使用圖2所示的連接將LCD屏幕連接到PB。我使用GPIO引腳以4位模式連接:RS, Enable (E)和數(shù)據(jù)線(D4-D7)連接到PB GPIO (P2_24, P2_22, P2_18, P2_20, P2_17, P2_10)。然后我將BLK, RW和接地引腳連接到地(接地面包板導(dǎo)軌)。在VO引腳上使用電位器來控制對比度。LCD屏幕本身(VDD)使用5v供電(來自USB的5v, P1_5)。此外,背光(BLA)連接到5v使用220歐姆電阻。
我使用電位器作為分壓器來控制LCD對比度,中間引腳連接到LCD的VO引腳,一側(cè)連接到3.3 V,另一側(cè)連接到地。然后我通過轉(zhuǎn)動鍋手動調(diào)整對比度,而液晶顯示器是用我的電腦供電的。布線類似于下面的圖3(注意,由于初始引腳連接無響應(yīng),在此迭代之后,布線發(fā)生了變化,但是為了方便視覺,插入了圖像)。
土壤濕度傳感器(STEMMA I2C)
參考圖2并使用隨附的JST PH 2mm 4針到公頭電纜,我將傳感器SDA連接到P1_26,將SCL連接到P1_28。GND接地,VIN接3.3 V電源軌。這些連接如圖4所示。
土壤濕度傳感器與我設(shè)備中PB上的I2C總線2(地址0x36)通信。
溫度傳感器(BMP280)
使用公對公跳線,我將SDA連接到P2_11, SCL連接到P2_09, GND和SDO連接到地,VCC連接到3.3 V。溫度傳感器與I2C總線1(地址0x76)通信。我最初打算使用BME280溫度和濕度傳感器,但bmp280(溫度和壓力)是我油炸原始BME280后唯一可用的傳感器。
發(fā)光二極管
每個LED使用一個220歐姆電阻串聯(lián)陽極(長腿)。然后,從電阻器,紅色LED連接到P2_19,黃色LED連接到P2_25,綠色LED連接到P2_29。led的陰極(短腿)接地。布線如下圖5所示。
按鈕
使用公對公跳線,我在下拉配置中連接了一個瞬時按鈕。按鈕一端接P2_27 (GPIO輸入),另一端接3.3 V導(dǎo)軌。同一個GPIO節(jié)點(P2_27)通過一個10 Kohms的下拉電阻連接到地,以確保在未按下按鈕時處于定義的LOW狀態(tài)。當(dāng)按下時,按鈕驅(qū)動P2_27 HIGH,允許PocketBeagle檢測到屏幕切換的干凈上升邊緣輸入。
代碼
為了實現(xiàn)系統(tǒng)的功能,我為LCD、土壤濕度傳感器、BMP280、led和按鈕編寫了python驅(qū)動程序。然后,主驅(qū)動程序讀取土壤濕度,計算狀態(tài)+干燥程度(使用簡單的計算器),更新led(基于濕度),讀取溫度并更新LCD屏幕。按鈕代碼的編寫允許在4個顯示屏幕之間切換/循環(huán):
?屏幕0 -顯示土壤水分百分比和整體狀態(tài)。
?屏幕1 -顯示一個簡化的干燥水平和狀態(tài)。
?屏幕2 -提供一個簡短的項目標(biāo)題和用戶提示按下一個屏幕。
?屏幕3 -顯示溫度和土壤濕度的組合監(jiān)測。
我首先使用自定義configure_pins.sh腳本配置了PocketBeagle引腳,以便在啟動時將所有GPIO、I2C和外設(shè)引腳設(shè)置為正確的模式。然后,我創(chuàng)建了一個run.sh腳本,該腳本將更改為項目目錄,運行引腳配置,等待電源和I2C設(shè)備穩(wěn)定,然后啟動主python程序。最后,我通過創(chuàng)建一個在啟動時調(diào)用run.sh的systemd服務(wù)啟用了自動引導(dǎo),確保在PocketBeagle開機(jī)時(使用5伏特USB充電適配器)工廠監(jiān)視器自動運行,而不需要連接計算機(jī)。或者,您可以使用日志和cronlog文件設(shè)置自動引導(dǎo),并使用命令sudo crontab -e編輯cron。
實現(xiàn)
只需使用Micro USB轉(zhuǎn)USB- a電纜和5伏USB充電適配器將PocketBeagle連接到5V電源即可。
未來的工作
還有很多改進(jìn)的空間,包括修復(fù)LCD的電氣穩(wěn)定性和初始化,以消除長時間運行后偶爾出現(xiàn)的顯示故障。我還想增加一個操縱桿輸入來取代單一的按鈕,讓屏幕之間的導(dǎo)航更流暢、更直觀。擴(kuò)展傳感器套件,包括濕度、環(huán)境光和額外的溫度探頭,也將提供一個更完整的植物健康圖景。通過增加一個Wi-Fi模塊,當(dāng)環(huán)境變得不利時,該系統(tǒng)可以向手機(jī)發(fā)送實時警報或通知。最后,我會激光切割或3d打印一個外殼,以提高耐用性,組織和設(shè)備的整體呈現(xiàn)。
本文編譯自hackster.io





