從當?shù)氐某械焦S和工業(yè),我們都可以注意到稱重秤被用來測量貨物和產(chǎn)品的重量。這種做法通常有助于在化學或食品工業(yè)中保持標準和所需的比例。在某些情況下,正在測量的貨物可能非常有價值,應(yīng)該遠程監(jiān)控,以確保每件物品都按正確的比例交付。
這些測量重量的儀器大多有一個稱為稱重傳感器的傳感器。測壓元件實際上把物理力轉(zhuǎn)換成電信號。通過使用IOT(物聯(lián)網(wǎng))的概念,我們可以通過從世界任何地方監(jiān)控體重來自動化這一過程。在本教程中,我們將使用負載傳感器和HX711與NodeMCU ESP8266測量重量,并使用ThingSpeak服務(wù)器通過互聯(lián)網(wǎng)發(fā)送這些重量數(shù)據(jù),以構(gòu)建我們自己的智能稱重機。由于NodeMCU內(nèi)置了ESP8266 Wi-Fi,這使得我們的物聯(lián)網(wǎng)項目非常簡單。現(xiàn)在讓我們看看ThingSpeak并進入我們的項目。
組件要求:
?稱重稱重傳感器1Kg
?負載傳感器24位ADC - HX711
?NodeMCU
?5V直流電源適配器
?I2C 16x2 LCD顯示屏
?電路試驗板
?連接電線
如何與HX711一起使用傳感器:
在我們深入研究項目的物聯(lián)網(wǎng)部分之前,重要的是要知道我們的重量傳感器是如何工作的,即稱重傳感器是如何工作的,以及如何使用HX711設(shè)置稱重傳感器來測量重量。然后我們將其與NodeMCU連接,將其用作物聯(lián)網(wǎng)重量傳感器。
測壓元件工作:
測壓元件能夠測量隨施加在測壓元件上的應(yīng)變(例如壓力或力)而變化的電阻。稱重傳感器用于快速和精確的測量。與其他傳感器相比,稱重傳感器相對便宜,壽命更長。我在這個項目中使用的是一個直桿測壓元件。這種直桿式測壓元件由鋁合金制成,能夠讀取1KG重量的容量。它有四根引線,可以連接到HX711 A/D壓力傳感器。
設(shè)置稱重傳感器:
現(xiàn)在讓我們看看稱重傳感器的安裝。這是非常簡單的稱重傳感器需要固定在一端通過螺絲孔和另一端保持浮動狀態(tài)。標簽(帶箭頭)表示重力的方向??吹较旅娴膱D像,我已經(jīng)安裝在塑料材料上的測壓元件。你可以用木板來獲得高精度。
HX711模塊:
HX711稱重傳感器放大器采用24高精度A/D轉(zhuǎn)換芯片HX711。它是一款專門為高精度電子秤設(shè)計的,具有兩個模擬輸入通道,內(nèi)部集成了128倍可編程增益放大器。HX711電路可配置為橋式壓力橋接(如壓力、稱重傳感器模式),精度高,成本低。
HX711規(guī)格
?差分輸入電壓:±40mV(滿量程差分輸入電壓為±40mV)
?數(shù)據(jù)精度:24位(24位A / D轉(zhuǎn)換芯片)
?刷新頻率:10/ 80hz
?工作電壓:2.7V至5VDC
?工作電流:< 10ma
?尺寸:24 x16mm
現(xiàn)在讓我們看看電路的連接細節(jié):
線路圖:
負載傳感器與NodeMCU接口的電路圖如下所示。I2C顯示單元顯示在LCD的位置,您可以按照相同的步驟(見下表)將I2C LCD模塊與NodeMCU連接。
傳感器與HX711的連接:
HX711與NodeMCU及5V直流電源適配器的連接:
16x2 I2C顯示與NodeMCU;
這是這款智能稱重機的完整設(shè)置:
現(xiàn)在讓我們設(shè)置ThingSpeak帳戶,然后繼續(xù)編程。
ThingSpeak:
ThingSpeak是一個基于云的數(shù)據(jù)平臺,使用HTTP協(xié)議實時發(fā)送和接收數(shù)據(jù)。它用于物聯(lián)網(wǎng)應(yīng)用程序,通過互聯(lián)網(wǎng)存儲和監(jiān)控來自世界任何地方的數(shù)據(jù)。在本教程中,我們不會告訴你如何開始使用ThingSpeak的基礎(chǔ)知識,因為我們已經(jīng)圍繞它建立了很多項目,以下是一些物聯(lián)網(wǎng)項目,其中ThingSpeak被用作物聯(lián)網(wǎng)云:
?物聯(lián)網(wǎng)無線氣象站使用Arduino, ESP8266和ThingSpeak
?基于物聯(lián)網(wǎng)的溫濕度監(jiān)測,使用Arduino UNO和ESP8266
?基于物聯(lián)網(wǎng)的樹莓派氣象站,使用DHT11和BMP180傳感器
?基于物聯(lián)網(wǎng)的溫濕度監(jiān)測使用ThingSpeak和ESP8266
編程NodeMCU用于測量重量并將數(shù)據(jù)上傳到ThingSpeak
對于這臺物聯(lián)網(wǎng)稱重機,我們將連接NodeMCU,然后通過HX711與NodeMCU接口測量稱重傳感器的重量,然后在16x2液晶顯示器上顯示測量的重量,并將這些值上傳到ThingSpeak服務(wù)器。
在這個項目中,我們使用了很少的庫。為了將I2C 16X2 LCD顯示器與NodeMCU連接,使用了一個名為LiquidCrystal.h的庫與Wire.h庫一起使用I2C總線。確保您下載并將此I2C LCD顯示庫添加到Arduino IDE中。
為了測量HX711的重量,我們使用了一個名為HX711庫的庫,下載并將其添加到您的IDE中。在此庫的幫助下,只需使用一行,我們就可以確定重量,并且我們可以校準物聯(lián)網(wǎng)稱重傳感器以獲得準確的結(jié)果。請記住HX711校準在確定結(jié)果的準確性方面起著至關(guān)重要的作用。
為了使用ThingSpeak和NodeMCU,我們需要ThingSpeak庫,它可以在Arduino IDE中通過打開Sketch- b> Include library -> Manage Libraries下載并搜索ThingSpeak庫然后安裝。
教程最后給出了完整的代碼和工作視頻,在這里我們將詳細解釋代碼。
現(xiàn)在程序中包含了以下庫
接下來為LiquidCrystal_I2C創(chuàng)建lcd對象,參數(shù)如0x27是I2C地址,16,2是lcd顯示類型
接下來為wiificlient創(chuàng)建客戶端對象。
接下來,您的Wi-Fi詳細信息,如SSID和密碼包括在內(nèi)。
Const char* ssid = "";//你的網(wǎng)絡(luò)SSID const char* password = "!";//你的網(wǎng)絡(luò)密碼
下一個通道號碼和寫API根據(jù)您的ThingSpeak帳戶給出。將XXXXX替換為通道號,然后是Write API鍵。
接下來,使用連接到NodeMCU的HX711引腳(DT,SCK)的參數(shù)創(chuàng)建HX711庫的對象比例。
接下來,根據(jù)我的稱重傳感器的校準系數(shù)是(888)。您可以根據(jù)您的稱重傳感器進行更改。
定義一個變量來存儲測量的權(quán)重。我已經(jīng)使用整數(shù)變量有沒有小數(shù)點的權(quán)重值。(你也可以用float代替)
接下來,在void setup()中,LCD顯示屏上顯示歡迎信息,然后將NodeMCU連接到Wi-Fi網(wǎng)絡(luò)(連接到您提供的用戶名和密碼的熱點)。之后,NodeMCU與ThingSpeak Server連接。
接下來,在void循環(huán)()中,從HX711獲得重量并使用行存儲在可變單位中
并且該值使用以下行更新到ThingSpeak服務(wù)器。
這個值每15秒更新一次到ThingSpeak,因為ThingSpeak免費帳戶每15秒更新一次值。
此功能是通過與已知重量的比較來設(shè)置校準因子,以達到良好的重量測量精度。因此,這可以在串行監(jiān)視器(工具->串行監(jiān)視器)中完成。通過發(fā)送(+或a),校準因子增加,通過按(-或z)減小校準因子。
物聯(lián)網(wǎng)稱重機工作原理:
上傳代碼并登錄你的ThingSpeak賬戶后。將待測重量的物體放在稱重傳感器上。該值顯示在LCD顯示屏上,也顯示在ThingSpeak儀表小部件上。當沒有砝碼放置時,壓力表顯示為零,如下圖所示。
當已知重量的肥皂(150g)放置時,LCD顯示為148kg,壓力表也顯示相同。如你所見,測量的重量比實際重量小2克。
當兩個肥皂塊(150g + 150g)放置。由于我使用了塑料安裝的測壓元件,因此295g的值略有不準確,但仍然接近原始值300g。
本文編譯自iotdesignpro