專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
測量太陽能電池板、UPS和其他日常使用電池的電壓會(huì)花費(fèi)大量時(shí)間。如果,給這些設(shè)備添加一個(gè)WiFi模塊,是不是讀取電壓更方便了?為此,英銳恩單片機(jī)開發(fā)工程師分享了一個(gè)來自國外的基于NodeMCU開發(fā)的帶WiFi模塊的電池電壓監(jiān)控系統(tǒng)。
使用該系統(tǒng)可以連接到我們本地家庭WiFi的WiFi設(shè)備,可以從控制器讀取電壓,并向最終用戶更新當(dāng)前電池電量。為此,在本方案中使用nodemcu WiFi模塊。它不僅可以用作控制器,還可以將其自身作為服務(wù)器或客戶端連接到WiFi網(wǎng)絡(luò)。電池監(jiān)控電路是傳統(tǒng)的分壓器電路。我要測量12伏電池。可以修改電路以測量24伏電池,甚至更多48伏并聯(lián)電池組。
Nodemcu是一個(gè)很小的設(shè)備,它的工作電壓為3.3伏。由于其工作電壓為3.3伏,因此其引腳只能提供和吸收3.3伏的電壓。大于5伏的電壓可能會(huì)燒斷引腳或炸掉節(jié)點(diǎn)MCU。在我們的情況下,我們要測量12伏電池,nodemcu adc(模擬至數(shù)字通道)只能接受3.3伏。我們需要在這里聰明地比賽。我們要做的是將兩個(gè)電阻器之間的電壓分壓,并僅測量一個(gè)電阻器上的電壓,剩余的電阻器電壓將通過數(shù)學(xué)計(jì)算。典型的分壓器電路和公式如下:
接下來,我們來計(jì)算一下Rtop和Rbottom的值。在這里,我們需要認(rèn)真考慮一些重要的因素。
(1)低歐姆電阻會(huì)吸收大量電流,并且電線可能會(huì)立即被加熱。因此,電線可能在幾秒鐘內(nèi)熔化。因此,對于較大的安培小時(shí)電池,請始終使用足夠數(shù)量的電阻。這里選擇了一個(gè)電阻Rbottom為10k歐姆。
(2)在充電過程中,電池電壓可能會(huì)增加到18伏。例如,在充滿陽光的情況下,150瓦的太陽能電池板在6安培時(shí)輸出17伏特,輸出電壓甚至可以達(dá)到18伏特以上。太陽能控制器還輸出電壓大約等于15伏,可為電池充電。
公式計(jì)算
我將測量Rbottom兩端的電壓,并隨機(jī)決定其值為10k歐姆。我們知道Vout可以高達(dá)3.3伏,因?yàn)閚odemcu可以工作并且在其I/O引腳接受最大3.3伏。電池充電時(shí)Vin為18伏,現(xiàn)在我們可以計(jì)算Rtop的值。
現(xiàn)在,如果電池側(cè)有18伏電壓,則將在電阻器之間分配電壓,在10k電阻器上將下降3.3伏,在44.54k電阻器上將剩下14.7伏。44.54 k ohm電阻在市??場上不可用,我將使用高于該額定值的電阻,可以在任何電子產(chǎn)品商店中找到47 k ohm電阻。如果電池沒有充電,并說提供12伏電壓,電阻兩端的壓降將是多少?
從以上討論可以明顯看出,Rbottom兩端的電壓現(xiàn)在不會(huì)超過3.3伏。我希望讀者對計(jì)算有意義?,F(xiàn)在的問題是如何通過nodemcu將3.33伏轉(zhuǎn)換為12伏,或者如何從3.33伏預(yù)測電池側(cè)的電壓為12伏。這里涉及更多的數(shù)學(xué)。由于電阻值是固定的,因此我們可以計(jì)算電阻兩端相對于電源的電壓比,并將其用于代碼中表示電源的實(shí)際電壓。比率的計(jì)算方法如下:
上面給出了兩種情況,當(dāng)電源為18伏時(shí)和電源為12伏時(shí),兩種情況的比率均為恒定值。該比率在代碼中用于預(yù)測實(shí)際的電源/電池電壓。比率乘以Rbottom處的實(shí)際電壓值。
方案電路圖如下。我正在使用nodemcu的ADC0通道來測量電池電壓。電池和nodemcu電源都必須接地,以完成電路。這是一個(gè)最常見的錯(cuò)誤,將測量兩個(gè)接地未一起接地的電壓。如果未將nodemcu接地與電池接地綁在一起,則adc0引腳將變?yōu)楦?dòng)引腳,并開始讀取浮動(dòng)值。
在完成電路之后,是時(shí)候繼續(xù)編寫代碼了。代碼是用arduino IDE編寫的。我在代碼中使用了ESP8266WiFi.h庫,因此請首先確保將此庫安裝在arduino庫文件夾中。如果不存在,請從github下載并首先安裝。然后輸入要與您的nodemcu連接的WiFi網(wǎng)絡(luò)的SSID和密碼。最有可能的是您的家庭WiFi。因此,只需輸入ssid和密碼?,F(xiàn)在,將代碼上傳到nodemcu中。上傳之前,請確保您從arduino開發(fā)板上選擇了正確的開發(fā)板。如果nodemcu沒有出現(xiàn)在您的面板下拉菜單中,則從面板管理器導(dǎo)入其鏈接并安裝其必要文件。
在瀏覽器中點(diǎn)擊分配的IP后,您將看到顯示電池狀態(tài)和按鈕的頁面。隨時(shí)按此按鈕可獲得更新的溫度。
注意:Nodemcu和要查看其電壓的客戶端移動(dòng)設(shè)備或臺(tái)式機(jī)必須連接到同一WiFi。如果您的服務(wù)器節(jié)點(diǎn)計(jì)算機(jī)和客戶端移動(dòng)設(shè)備或計(jì)算機(jī),便攜式計(jì)算機(jī)等連接到不同的網(wǎng)絡(luò),則在點(diǎn)擊IP后無法查看任何內(nèi)容。
源代碼附件:
帶WiFi模塊的電池電壓監(jiān)控系統(tǒng).txt
以上就是英銳恩單片機(jī)開發(fā)工程師們分享的基于NodeMCU開發(fā)的帶WiFi模塊的電池電壓監(jiān)控系統(tǒng)。