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