為了方便給冬季大棚里養護的植物澆水,我準備建立一個系統以備不時之需。
思考再三后,我的結論是準備自己做一個傳感器,因為對于我的植物澆水項目(即將到來),我需要幾個傳感器用于幾個植物。
我選擇ESP32作為微控制器,因為它具有多個12位ADC輸入,并且能夠以比ArduinoUno等更高的頻率生成PWM信號。在這個項目中,將為每個傳感器生成一個600kHz的信號。
該傳感器由廣泛使用的簡單低成本材料制成,可用作電容式濕度傳感器。
第1步:制作濕度傳感器
DIY傳感器由簡單的材料制成:
一些音頻線
兩個火鍋叉
塑料座椅腿套
硅膠膏
銷從火鍋叉上切下,鍍鉻有助于避免腐蝕。帶有接線端子的結構可以輕松地將銅電纜線連接到鍍鉻引腳。銷(不彎曲)便于插入植物的土壤中。
作為測量水分含量的指標,我正在重復使用為我之前的項目開發的水位指示器:
第4步:電子設置
在面包板設置中,我使用了ESP32s(節點MCU)。這種選擇的原因如介紹中所述。
我的計劃是擴展這個設置,使其具有制作完整的植物澆水系統的功能,并具有在線監測和警告功能。(ESP32板載WiFi和藍牙)。
電路圖(用Fritzing制作)如下:
傳感器電路圖如下:
面包板上的實際設置如下所示:
ESP32由USB端口提供5V電源,并且板載3、3V穩壓器。一個輸出GPIO引腳通過10KOhm電阻連接到濕度傳感器的一側,并在5次測量期間(持續5秒)向傳感器發送600kHz信號。ESP32(12位ADC)的一個輸入引腳通過二極管和R/C網絡(1MOhm和1uF)連接。傳感器的另一條腿連接到GND。
傳感器僅在測量期間通電,以避免對鍍鉻筆產生電解影響。
在我的實驗中,我通過將傳感器放入水中(最低測量值)和露天(最高值)來確定傳感器的最小值和最大值。將傳感器放入花盆中會產生介于最小值和最大值之間的中間值,具體取決于土壤濕度水平。中間值的比例似乎是相當線性的。
第3步:制作軟件
ArduinoSketch中的循環函數很簡單,只包含調用2個函數:
測量之間的1秒延遲僅用于實驗和演示目的。在實際應用中,這種頻率會低得多(通常每天幾次,取決于植物的口渴程度)
ARDUINOIDE的繪圖監視器以及串行監視器在實驗過程中非常有用。繪圖監視器圖的視圖如下所示:
plotmonitor上的讀數顯示由12位ADC測量的值。ESP32的完整3.3V刻度除以4096,即:每步0.8mV。
使用以下代碼測量水分含量:
此后根據上表確定平均值所在的括號,并在濕度指示器上用顏色指示濕度水平,這要歸功于《Adafruit_NeoPixel.h》庫:
要通過USB端口將草圖下載到ESP32,需要按住Boot按鈕。
-
傳感器
+關注
關注
2541文章
49928瀏覽量
747407 -
濕度傳感器
+關注
關注
7文章
297瀏覽量
58427 -
ESP32
+關注
關注
17文章
935瀏覽量
16650
發布評論請先 登錄
相關推薦
評論