基于物聯(lián)網(wǎng)的ESP32土壤濕度監(jiān)測(cè)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
我們之前使用了帶有ESP8266的土壤濕度傳感器來構(gòu)建智能灌溉系統(tǒng)。今天,我們使用帶有ESP32的土壤濕度傳感器構(gòu)建了一個(gè)基于物聯(lián)網(wǎng)的濕度監(jiān)測(cè)系統(tǒng),土壤濕度將以百分比(%)的形式以圖形形式顯示在Adafruit儀表板上,并以數(shù)字形式顯示在OLED顯示器上。
組件的要求
?ESP32
?土壤濕度傳感器
?OLED顯示器
?連接電線
OLED顯示器
OLED顯示器是微控制器中最常見和最容易獲得的顯示器之一。該顯示器可以很容易地使用IIC或SPI通信與微控制器接口,具有良好的視角和像素密度,使其可靠地顯示小級(jí)別圖形。它兼容任何3.3V-5V微控制器,如Arduino。OLED顯示屏配備了一個(gè)強(qiáng)大的單芯片CMOS OLED驅(qū)動(dòng)控制器- SSD1306,可處理整個(gè)RAM緩沖。SSD1306驅(qū)動(dòng)程序內(nèi)置1KB的圖形顯示數(shù)據(jù)RAM (GDDRAM)。我們之前將OLED與ESP32接口。
規(guī)范
?OLED驅(qū)動(dòng)IC: SSD1306
?分辨率:128 x 64
?視角:>160°
?輸入電壓:3.3V ~ 6V
?像素顏色:藍(lán)色
?工作溫度:-30℃~ 70℃
線路圖
下面給出了ESP32濕度傳感器的電路圖。
我們正在將ESP32與土壤濕度傳感器和OLED顯示器連接起來。土壤濕度傳感器的Vcc和GND引腳接在ESP32的3.3V和GND上,濕度傳感器的Analog引腳接在ESP32的VP引腳上。OLED顯示模塊(SSD1306)與ESP32采用I2C模式連接。ESP32與OLED顯示器的連接如下:
Adafruit IO設(shè)置ESP32土壤濕度傳感器
Adafruit IO是一個(gè)開放的數(shù)據(jù)平臺(tái),允許您在云中聚合、可視化和分析實(shí)時(shí)數(shù)據(jù)。使用Adafruit IO,您可以在互聯(lián)網(wǎng)上上傳,顯示和監(jiān)控?cái)?shù)據(jù),并使您的項(xiàng)目啟用物聯(lián)網(wǎng)。您可以使用Adafruit IO控制電機(jī),讀取傳感器數(shù)據(jù),并通過互聯(lián)網(wǎng)制作酷的物聯(lián)網(wǎng)應(yīng)用程序。我們以前使用Adafruit和ESP32,也使用Adafruit構(gòu)建了許多基于物聯(lián)網(wǎng)的應(yīng)用程序。
要使用Adafruit IO,首先,您必須在Adafruit IO上創(chuàng)建一個(gè)帳戶。要做到這一點(diǎn),請(qǐng)?jiān)L問Adafruit IO網(wǎng)站,點(diǎn)擊屏幕右上方的“免費(fèi)開始”。
在完成帳戶創(chuàng)建過程后,登錄您的帳戶并點(diǎn)擊右上角的“查看AIO密鑰”以獲取您的帳戶用戶名和AIO密鑰。
當(dāng)你點(diǎn)擊“AIO密鑰”,一個(gè)窗口將彈出你的Adafruit IO AIO密鑰和用戶名。復(fù)制此密鑰和用戶名,稍后將在代碼中用到。
現(xiàn)在,您需要?jiǎng)?chuàng)建一個(gè)提要。要?jiǎng)?chuàng)建提要,請(qǐng)單擊“feed”。然后點(diǎn)擊“Actions”,你會(huì)看到一些選項(xiàng),點(diǎn)擊“Create a New Feed”。
在此之后,將打開一個(gè)新窗口,您需要在其中輸入提要的名稱和描述。書寫描述是可選的。
點(diǎn)擊“創(chuàng)建”,您將被重定向到您新創(chuàng)建的提要。
創(chuàng)建提要之后,現(xiàn)在我們將創(chuàng)建Adafruit IO儀表板來可視化提要數(shù)據(jù)。要?jiǎng)?chuàng)建儀表板,請(qǐng)單擊dashboard選項(xiàng),然后單擊“Action”,然后單擊“create a New dashboard”。
在下一個(gè)窗口中,輸入儀表板的名稱并單擊“Create”。
創(chuàng)建儀表板后,現(xiàn)在我們將在儀表板中添加一些可視化塊。要添加一個(gè)塊,請(qǐng)單擊右上角的“+”。
在這里,我們將使用一個(gè)鏈接圖來可視化我們的濕度數(shù)據(jù)的圖形格式。
若要在儀表板上添加折線圖,請(qǐng)選擇折線圖塊。
在下一個(gè)窗口中,它將要求您選擇提要,因此單擊Agriculture data feed。
在此之后,點(diǎn)擊“下一步”,然后輸入x軸和y軸標(biāo)簽名稱。有了這一步,你的儀表板就可以可視化濕度數(shù)據(jù)了。
用于濕度監(jiān)測(cè)的ESP32編程
本文最后給出了ESP32土壤濕度監(jiān)測(cè)系統(tǒng)的完整代碼。這里我們將解釋代碼的一些重要部分。這里使用了幾個(gè)庫(kù)(Wire.h、SH1106.h和Adafruit_MQTT.h),可以從下面的鏈接下載:
?Wire.h
?Adafruit_MQTT.h
因此,像往常一樣,通過包含所有必需的庫(kù)來開始代碼。
然后包括從Adafruit IO服務(wù)器復(fù)制的WiFi和Adafruit IO憑據(jù)。這些將包括MQTT服務(wù)器、端口號(hào)、用戶名和AIO密鑰。
然后定義連接OLED顯示器的所有引腳,并為顯示器創(chuàng)建實(shí)例。
另外,定義土壤濕度傳感器連接的引腳。土壤濕度傳感器連接在ESP32的VP引腳上。
然后設(shè)置Adafruit IO feed來發(fā)布濕度數(shù)據(jù)。這里,AgricultureData是提要名稱。
在setup()函數(shù)中,為了調(diào)試目的,以115200的波特率初始化串行監(jiān)視器,并使用begin()方法初始化OLED顯示器。
在loop()函數(shù)內(nèi),從傳感器讀取濕度數(shù)據(jù)并將讀數(shù)打印在OLED顯示屏上。
一旦硬件和程序準(zhǔn)備好了,是時(shí)候?qū)⒊绦蛏蟼鞯紼SP32板上了。這里使用Arduino IDE將濕度監(jiān)測(cè)代碼上傳到ESP32板,因此用Micro USB電纜將ESP32連接到筆記本電腦并點(diǎn)擊上傳按鈕。上傳代碼后,OLED顯示屏和Adafruit IO將開始顯示土壤濕度值,以百分比(%)表示,如下圖所示。
本文編譯自iotdesignpro