起初是想玩玩Arduino恢准,但是搜搜某寶價(jià)格uno還是有點(diǎn)貴(樹(shù)莓派4b我一定會(huì)買(mǎi)的!8μ狻D倏稹),偶然間發(fā)現(xiàn)一個(gè)十幾塊錢(qián)的名叫NodeMCU的小玩意坠非,遂買(mǎi)之敏沉,遂買(mǎi)了一百多的其余零部件,鑷子啊、面包板啊盟迟、萬(wàn)用表啊秋泳、三極管啊、電阻啊攒菠、排線啊……但是一直都沒(méi)把NodeMCU玩起來(lái)迫皱,開(kāi)始的時(shí)候發(fā)現(xiàn)這玩意用的Lua語(yǔ)言,還想著自己學(xué)學(xué)Lua嗎辖众?沒(méi)看完菜鳥(niǎo)教程就沒(méi)精力顧得上這個(gè)了卓起,而且我自己還是想用Python的,一是想自己學(xué)學(xué)凹炸,二是Python用的地方還是更多些戏阅,so發(fā)現(xiàn)NodeMCU可以支持MicroPython~Emmmm也行吧,于是又放了一段時(shí)間……這兩天才拿起來(lái)啤它。
一直沒(méi)玩起來(lái)還是對(duì)他不熟悉吧奕筐,上次玩單片機(jī)還是畢設(shè)的時(shí)候用stc12c5a60s2,c語(yǔ)言編程变骡,突然上手一個(gè)NodeMCU著實(shí)沒(méi)弄明白這玩意怎么玩离赫,網(wǎng)上的教程和視頻也看了不少,但是還是有很多小白基礎(chǔ)沒(méi)弄懂塌碌,甚至刷固件都費(fèi)了好大精力笆怠,所以寫(xiě)個(gè)隨筆記錄下學(xué)習(xí)過(guò)程(現(xiàn)在剛刷好固件),就當(dāng)做個(gè)學(xué)習(xí)筆記啦誊爹。
Windows環(huán)境,已預(yù)裝jdk瓢捉。
刷固件
安信可官方工具 http://wiki.ai-thinker.com/tools
官方教程 http://wiki.ai-thinker.com/esp_download
官方常見(jiàn)問(wèn)題解答http://wiki.ai-thinker.com/esp8266/faq
GitHub連接 https://github.com/nodemcu/nodemcu-flasher
刷固件理解成安裝系統(tǒng)即可频丘,這里刷固件有個(gè)前置操作“清空內(nèi)存”,清空與不清空的區(qū)別就是:清空后內(nèi)存完全是空白的泡态,新刷的固件不會(huì)受以前文件的影響搂漠;不清空的話,刷固件后還能讀取到以前的init.lua/init.py文件某弦,如果這個(gè)init文件編寫(xiě)有錯(cuò)誤了桐汤,那就會(huì)導(dǎo)致nodemcu不斷重啟,我寫(xiě)這篇文章的時(shí)候就是在處理這個(gè)問(wèn)題靶壮。
刷固件網(wǎng)上常見(jiàn)的有兩種軟件
和
兩種都能用怔毛,但是tool比f(wàn)lasher好的一點(diǎn)是,tool集成了一個(gè)“ERASE”按鍵(在STOP右側(cè)腾降,使用時(shí)先點(diǎn)擊ERASE拣度,再按住nodemcu板子FLASH鍵,等待完成),一鍵清空內(nèi)存抗果;而flasher想要清空內(nèi)存筋帖,需要有一個(gè)類(lèi)似于“blank.bin”、“blank512.bin”之類(lèi)的bin文件冤馏,里面的內(nèi)容其實(shí)就是空日麸,燒寫(xiě)入空文件以達(dá)成清空內(nèi)存的需求。
對(duì)于tool而言逮光,如圖所設(shè) 26M/40MHz/DIO/32Mbit 即可代箭,COM口選擇自己nodemcu串口就行,通常安裝好串口驅(qū)動(dòng)后睦霎,軟件會(huì)自動(dòng)刷新所連串口梢卸,不行就挨個(gè)試試唄。
波特率115200副女,都是一樣的蛤高。
連接nodemcu
連接nodemcu其實(shí)就是讀寫(xiě)串口。第一種方法是nodemcu的官方推薦ESPlorer碑幅。
第二種戴陡,網(wǎng)上也有教程說(shuō)用一些小軟件讀取串口的,太多不贅述沟涨;putty恤批、ardinuo之類(lèi)就是第三種,正經(jīng)的軟件裹赴,甚至我用SecureCRT也可以成功連接(Serial喜庞,不要選中任何一個(gè)“流控”)。
由于我刷入的是microPython固件棋返,沒(méi)有用最常見(jiàn)的AT固件(用AT命令操作延都,這個(gè)沒(méi)接觸過(guò)不熟悉)和官方或可自己選擇功能模塊的lua固件。
microPython固件下載 https://micropython.org/download/ Ctrl+F搜索網(wǎng)頁(yè)“Firmware for ESP8266 boards”睛竣,下載最新的(latest)即可
AT固件自己網(wǎng)上找晰房,我沒(méi)留心
想自己選取想要功能模塊的bin文件,可以到https://nodemcu-build.com/ 填寫(xiě)郵箱射沟,選上功能殊者,他會(huì)自己發(fā)郵件到你郵箱里,這里生成的bin文件是需要lua語(yǔ)言編程的
附個(gè)lua學(xué)習(xí)資源 http://www.lua.org/pil/contents.html
移動(dòng)的網(wǎng)絡(luò)真的難用…………我懷念以前電信的網(wǎng)絡(luò)了……現(xiàn)在aws官網(wǎng)都上不去……
因?yàn)槭撬⒌膍icroPython验夯,所以現(xiàn)在串口通訊連上nodemcu后(軟件點(diǎn)擊連接后猖吴,需要在nodemcu板子按一下RST鍵重啟一下),即可顯示開(kāi)始界面挥转。
?roPython v1.12 on 2019-12-20; ESP module with ESP8266
Type "help()" for more information.
>>>
其中的 >>> 是經(jīng)典的Python命令行前置符號(hào)距误。此時(shí)就可以按照Python的測(cè)試來(lái)試試nodemcu了
找的幾個(gè)文檔連接
https://dfrobot.gitbooks.io/upycraft_cn/
https://docs.singtown.com/micropython/zh/latest/openmvcam/reference/asm_thumb2_index.html
https://www.rt-thread.org/document/site/tutorial/beep-player/pin/
官方文檔http://docs.micropython.org/en/latest/esp8266/quickref.html
GitHub文檔https://github.com/nodemcu/nodemcu-firmware/wiki
官方入門(mén)教程http://wiki.ai-thinker.com/_media/esp8266/a000og00a1.pdf
好吧簸搞,還是用了一個(gè)叫uPyCraft的軟件,這個(gè)一用就知道還是好用的准潭,不清楚屬于小軟件還是正規(guī)出品趁俊,看UI像是小軟件,還內(nèi)置了燒寫(xiě)功能刑然,挺好的寺擂。
下載鏈接和uPyCraft的使用文檔https://dfrobot.gitbooks.io/upycraft_cn/2.1%E4%B8%8B%E8%BD%BD%E5%92%8C%E5%AE%89%E8%A3%85upyCraft.html
論壇資料https://mc.dfrobot.com.cn/thread-271930-1-1.html
編寫(xiě)一個(gè)自動(dòng)連WiFi的init文件
這里我就跟著help()命令上提示的來(lái)做就行。
import network
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan() # Scan for available access points
sta_if.connect("<AP_name>", "<password>") # Connect to an AP
while not sta_if.isconnected() : # Check for successful connection
pass
print('network config:', sta_if.ifconfig())
# Change name/password of ESP8266's AP:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="<AP_NAME>", authmode=network.AUTH_WPA_WPA2_PSK, password="<password>")
配置好幾個(gè)綠色字體泼掠,即可連接WiFi和開(kāi)啟ap怔软。
在uPyCraft新建一個(gè)init.py,輸入上述代碼择镇,寫(xiě)入到nodemcu中挡逼,設(shè)置為“default open”,就可以去路由器看看是否連上了腻豌。
未完待續(xù)