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)