您好,登錄后才能下訂單哦!
搭建最小系統(tǒng)刷nodemcu固件及dht11溫度讀取并上傳服務(wù)器的esp8266實(shí)驗(yàn)是怎么樣的,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
esp8266-12E模塊
esp8266轉(zhuǎn)接板
cp2102模塊 or ch404g模塊
輕觸開關(guān)
洞洞板
HT7533A-1 3.3v穩(wěn)壓芯片
3.7v鋰電池
DHT11溫度濕度模塊
esp8266模塊不是特別小,實(shí)際使用可以直接把它焊在洞洞板上,但是作為反復(fù)使用的話,建議焊接到轉(zhuǎn)接板上。洞洞板上主要元件有左右各兩排排針,引出所有io口,兩個(gè)按鈕,左邊按鈕按下拉低rest口,實(shí)現(xiàn)重啟,右邊按鈕拉低GPIO0(模塊右邊第五個(gè)引腳)口,刷入固件的時(shí)候需要按下該按鈕。左邊有一個(gè)ht7533穩(wěn)壓管和2個(gè)10uf的電容組成的穩(wěn)壓電路。下面有個(gè)排針,用來(lái)插入cp2102 usb轉(zhuǎn)串口模塊。
<!--more-->
nodemcu固件有很多個(gè)模塊,所有功能都編譯的話,有可能esp8266Flash空間不夠,所以需要根據(jù)應(yīng)用需要編譯所需功能,推薦使用在線編譯服務(wù),和jquery ui一樣,通過(guò)網(wǎng)頁(yè)打鉤選擇需要的功能,填寫你的郵箱,提交后等待后臺(tái)生成完畢會(huì)發(fā)送郵件通知你,并在郵件里附上下載地址。https://nodemcu-build.com/ 。郵件里會(huì)提供2個(gè)版本的固件,我是選擇浮點(diǎn)的版本。 到樂(lè)鑫的官網(wǎng)下載Flash Download Tools,該工具可以用來(lái)刷固件用,windows下使用,nodemcu文檔里也提到了另外的刷固件工具,如esptools,跨平臺(tái)的,不過(guò)我在linux mint下使用ch440G模塊并不能刷入成功,而使用Flash Download Tools在windows下則成功,原因沒有細(xì)究,能成功即可。 最上面的Download Path Config 勾選一項(xiàng)即可,選擇nodemcu固件位置,并在右邊的地址填寫“0x00000”,其他如圖:
刷固件的方法是:
1.點(diǎn)擊下方的Star,顯示等待
2.先按下洞洞板上的右邊按鈕(拉低GPIO0),再按下左邊的按鈕(拉低rest),然后放開左邊按鈕,再放開右邊按鈕。這樣就進(jìn)入刷固件模式。
3.如無(wú)意外,軟件會(huì)顯示下載進(jìn)度條,等100%完成了,重新按下左邊按鈕重啟esp8266模塊。
4.第一次刷完固件重啟,模塊需要格式化flash,這需要一分鐘時(shí)間吧,所以第一次刷完固件按重啟后需要等等。如果你使用putty或者minicom連接著串口(比特率115200),應(yīng)該會(huì)看到正在格式化的文字.
遇到的坑
我購(gòu)買的usb轉(zhuǎn)串口模塊型號(hào)是cp2102,win10下無(wú)法下載固件,而且其3.3v電壓口,實(shí)測(cè)電壓高達(dá)3.9V。因?yàn)闆]法使用所以改為ch404g模塊。
使用工具ESPlorer
,跨平臺(tái),提供代碼編寫上傳和串口功能,分左右2個(gè)界面,左邊寫代碼,寫完通過(guò)下面的按鈕發(fā)送到esp8266上,然后右邊的串口窗口可以看數(shù)據(jù)。
約定
dht11的數(shù)據(jù)引腳接在GPIO12口,即左邊第六個(gè)。
服務(wù)器端我使用python+django,在百度的bae上部署,實(shí)現(xiàn)簡(jiǎn)單的接收http post請(qǐng)求,校驗(yàn)數(shù)據(jù)并入庫(kù)。
服務(wù)器端保存?zhèn)鞲衅鞯?個(gè)信息:mac地址
和加密密碼
。esp8266模塊通過(guò)http post請(qǐng)求將5個(gè)參數(shù)發(fā)送到服務(wù)器:
humi
:濕度,單位整數(shù)。
mac
:模塊的mac地址。
rnd
:隨機(jī)數(shù)。
temp
:溫度,單位整數(shù)。
sign
:以上4個(gè)參數(shù)按字母升序排序的post數(shù)據(jù),使用保存在服務(wù)器的密碼進(jìn)行hmac-sha1加密得到的字符。 這樣可以有效的防止偽造數(shù)據(jù),但是有一個(gè)小缺點(diǎn),就是里面沒有時(shí)間戳,會(huì)導(dǎo)致回放。
奇怪,markdown的代碼一直排版不好,自己不會(huì)弄 代碼在這里:代碼
提示
DHT11的精度并不是很好,精度為1攝氏度,我有2個(gè)模塊,一個(gè)單獨(dú)淘寶購(gòu)買的,一個(gè)在某塊開發(fā)板上面的,同樣的代碼2個(gè)模塊讀書相差3度,濕度則相差更多。
電源部分的內(nèi)容我還掌握的不夠好,本次使用了HT7533A-1的穩(wěn)壓模塊,它的封裝像三極管一樣比較好插在洞洞板上進(jìn)行焊接,根據(jù)基本電路在兩端加上10uf的電容,接上鋰電池后,測(cè)得輸出端電壓為3.29V,正常。esp8266模塊插入洞洞板,發(fā)覺模塊的led等快速閃爍,模塊不能正常運(yùn)行,猜測(cè)是在不斷重啟,至于原因,我猜測(cè)是外圍電路不對(duì),例如哪些引腳沒有接電阻上拉或下拉,或者電壓不足電流不足。通過(guò)測(cè)量上電后模塊電壓,發(fā)現(xiàn)電壓下降到2.7V,整個(gè)電路電流170mA。于是拔出鋰電池,使用外部3.3V直接接入模塊,模塊正常,且電流為70mA左右。那么初步判斷是穩(wěn)壓管模塊的供電問(wèn)題。手里頭有662k穩(wěn)壓芯片,但是那個(gè)封裝太小,放在洞洞板上不容易焊接,還有ams1117-3.3V模塊,但是那個(gè)需要的壓差大概1V,單塊鋰電池?zé)o法使用。最后沒有好方法的情況下,直接鋰電池供電,模塊手冊(cè)說(shuō)輸入電壓最大不超過(guò)3.6V,實(shí)測(cè)鋰電池電壓3.9V,并沒有燒壞。
最后使用的是標(biāo)稱1000mA的鋰電池直接供電,從代碼可以看出設(shè)置了定時(shí)器沒3分鐘執(zhí)行一次任務(wù),沒有設(shè)置休眠模式,wifi估計(jì)應(yīng)該是持續(xù)連接的,目前24小時(shí)過(guò)去了仍然在工作。
看完上述內(nèi)容,你們掌握搭建最小系統(tǒng)刷nodemcu固件及dht11溫度讀取并上傳服務(wù)器的esp8266實(shí)驗(yàn)是怎么樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。