Beaglebone Black– 智能家居控制系統 LAS - 刷 WiFi 模塊 ESP8266 Firmware 和 ESP8266 直接收發 GPIO 信號


用 Windows 來刷 ESP8266 固件有很多中文教程,來試試直接用 BBB 刷吧。目標是 NodeMCU,ESP-01 可用,就是我買的那個。

接線方式在上一篇。當 echo ‘BB-UART2’ > /sys/devices/bone ….. 之后,ttyO2 可用,測試能連接后可以動手(比如用我上一篇博文那愚蠢的做法,或者下載個 minicom。注:minicom 是按 AT 然后回車再按 ctrl-J,它回答 OK 就是正常連接了)。其實這只是確保我,或者你,沒插錯引腳。

固件工具

首先需要刷固件的軟件,esptool,git clone 它下來。

git clone https://github.com/themadinventor/esptool.git

image

進去 esptool 文件夾,偉大的作者已經做好了安裝腳本,setup.py,這樣用:

python setup.py install

它會自動完成必須的動作。

固件檔

搞定了工具,還要下載固件。NodeMCU 的固件發布在 github,可以在這里查看:https://github.com/nodemcu/nodemcu-firmware/releases/

下載可以用你電腦下,然后 scp (windows 的話 pscp,putty 帶有的 copy 命令),又或者,直接在 BBB 下載。我選后者,這樣操作:

wget https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_float_0.9.6-dev_20150704.bin

image

接線與刷新操作

萬事俱備,只欠GPIO0 接 GND。Flash ROM 需要把 GPIO 0 拉低,接 GND。接上后重啟(BBB 和 ESP8266,關掉再打開,BBB中需要再次 echo ‘BB-UART2’ > /sys/devices/bone…..)。

然后  ./esptool.py -p /dev/ttyO2 -b 115200 write_flash 0x00 ~/nodemcu_float_0.9.6-dev_20150704.bin

image

一分鍾搞定。然后再次關機,兩者都關掉。GPIO 0 剛才拉低的,取消,GPIO 0 線拔掉。再度開機。再度 echo ‘BB-UART2’ > ……

測試效果

這次 NodeMCU 了,該用合適的終端了。我用 minicom 。記得,NodeMCU 固件默認 baud 是 9600,minicom –s 調好再進去。

沒顯示該有的輸入 prompt,唉,那好吧,我主動點跟它打聲招呼,hi,然后 >> 輸入 prompt 就出現了…. 請無視我隨后輸入的 wif,我原意是打 wtf …。(注:這一段只是開個玩笑而已…)

image

上圖我拿些只有 NodeMCU 才有的函數來試試,反應正常了。上圖屏蔽了的是 SSID 和密碼。print 所顯示的是我無線路由 DHCP 分配的 IP、掩碼、和當前網關地址。

刷 ROM 到此為止,成功。

從 WiFi 模塊的 GPIO 直接輸出

不夠,用 ESP8266 不止為了接個 WiFi。按照測試慣例,上 LED 燈,用 ESP8266 本身的 GPIO 2 引腳(下圖橙色線接着的),接 450Ω電阻,和 LED 燈。

DSC_0036

BBB 只是負責給我 TTY 進去 ESP8266,不參與控制不參與電路。

代碼:

gpio.mode(4,gpio.OUTPUT)

gpio.write(4,gpio.HIGH)

gpio.write(4,gpio.LOW)

image

說好的 GPIO 2 呢?明明是接着 GPIO 2 引腳為何現在代碼是 4 呢?是 PIN 4 代表 GPIO 2 么?不知道,我可是從 0 一個個測試才發現是 4 的… 很無語,但是還好,能用了。

滿足了。實驗到此為止。后面,就是寫代碼,讓它接受到特定數據包,再直接控制 gpio 信號。

重要參考

esptool https://github.com/themadinventor/esptool
NodeMCU 官網 http://www.nodemcu.com/index_cn.html
NodeMCU 論壇 http://bbs.nodemcu.com/
wget https://en.wikipedia.org/wiki/Wget
minicom http://linux.die.net/man/1/minicom
ESP8266 刷固件教程 https://ukhas.net/wiki/esp8266_firmware_update
NodeMCU 固件 git https://github.com/nodemcu/nodemcu-firmware/releases/
NodeMCU API 說明 https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_cn

我在這群里,歡迎加入交流:
開發板玩家群 578649319開發板玩家群 578649319
硬件創客 (10105555)硬件創客 (10105555)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM