2018年2月12日 星期一

Arduino UNO透過ESP8266-12連線


「ESP8266 12E」的圖片搜尋結果ESP8266-12E是ESP8266-12的增強版,完善外圍電路,增強阻抗匹配,信號輸出更佳,無論是穩定性還是抗干擾能力,都得到了大幅度的提升!對於之前選擇ESP-12的用戶,即使已經做出產品也沒關係,增強版完全兼容之前固件,引腳在ESP-12的基礎上又新增六個IO口、SPI口引出,開發更加便捷,應用更加廣泛!
為了專題的研究買了ESP8266-12E這塊板子WiFI(感覺比較猛),但是網路上的教學內容都不是很清楚,不斷出現放棄的念頭...早知道買ESP01?? 經過我好研究一陣子的成果與大家分享(教學部分內容源自網路) 


一.匯入WiFiEsp函式庫   

https://github.com/bportaluri/WiFiEsp

Arduino IDE 上方草稿碼-匯入程式庫-選擇本ZIP檔

二.準備組件材料
  • Arduino uno R3板 x1
  • ESP 8266-12e WiFi模組 x1 (已買轉接版焊好)
  • 杜邦線  x1
  • 麵包版 x1
  • 電阻10k(或以上) x6

3.連接方式




電阻其中四個作為上拉電阻(連接到3.3V),其中兩個作為下拉電阻(連接到GND),網路上雖禁止要使用者接Arduino的內建電源,不過我是沒有理它啦...

·  


三.刷韌體

刷入ESP SDK 1.5.2(Non-OS SDK)以上版本

  1. 下載Firmware(壓縮檔裡的BIN資料夾就是)
  2. https://github.com/espressif/ESP8266_NONOS_SDK   (最新版本-推)
    https://bbs.espressif.com/download/file.php?id=1079 (1.5.2)

  3. 下載Flash Download Tools                           https://www.espressif.com/en/support/download/other-tools
打開程式照下圖設定

(BAUD 選11520)

注意

  • 將GPI00插到下拉-  才可進行Flashing
  • 程式的路徑不能有中文,可以都放桌面
  • 案下Start後,可以將WIFI版進行REST(插GND後拔出)
  • 如果一直失敗,重新插電、重插腳位、resr、換板子、換鮑率、換版本我都試過,可能有時候會不穩定,一直試可以的但是記得腳為要接正確(gpi00- TX RX)


相關設定資訊(本版子是32Mbit )
文件名称
8Mbit 地址分配
16Mbit 地址分配
32Mbit 地址分配
备注
boot.bin
0x00000
0x00000
0x00000
由乐鑫在 SDK 中提供,建议一直使用最新版本
user1.bin
0x01000
0x01000
0x01000
主程序,由代码编译生成
user2.bin
0x81000
0x81000
0x81000
主程序,由代码编译生成
esp_init_data_default.bin
0xFC000
0x1FC000
0x3FC000
由乐鑫在 SDK 中提供
blank.bin
0xFE000
0x1FE000
0x3FE000
由乐鑫在 SDK 中提供

*************** Flash Info ***************
512+512(較穩定)/1024+1024

SPI MODE: DOUT
SPI SPEED: 40MHZ
Flash Size: 32Mbits

*****************************************


四.AT設定


  • Plug your Arduino to USB port.
  • Open your Arduino IDE.
  • Open the "Tools" menu.
  • Select your board : Arduino/Genuino Uno.
  • Select your Arduino COM port.
  • Open Serial Monitor.
  • On the bottom right part select "Both NL & CR"
  • Then select your serial baud rate. My esp-12 default is 9600. Some got 115200 for default.

接著將GPI00接回上拉+

進行一次RESR應能看到有東西輸出

看到Ready才是正確讀到,如果沒有出現可以嘗試Rest或更換baud rate,再次檢查接腳

成功就可以輸入指令 調整傳輸鮑率(必設)

AT+UART_DEF=9600,8,1,0,0


參考AT指令
http://wiki.iteadstudio.com/ESP8266_Serial_WIFI_Module#AT_Commands


Picture of Arduino Serial Monitor


(可以使用AT+GMR指令查看韌體版本)

五.測試連線狀態


  • 打開IDE檔案-範例-WIFIesp-test-BasicTest
  • 更改語法
    1. SoftwareSerial Serial1(2, 3); // RX, TX
    2. SSID與密碼
  • 將原本接在Arduino的TX插到2 RX插到3(旋轉移位)
  • 上傳測試結果


大家有任何問題歡迎留言,希望這篇教學能幫到需要的人!


延伸學習(透過MQTT傳遞資料)
https://sonyarouje.com/2016/03/15/mqtt-communication-with-arduino-using-esp8266-esp-01/

參考網站
http://www.playrobot.com/wifi-enthnet/1336-esp8266wifi-esp-12e.html
http://www.instructables.com/id/Get-Your-ESP8266-12-Ready-for-AT-Commands/
https://create.arduino.cc/projecthub/thingsboard/temperature-dashboard-using-arduino-uno-esp8266-and-mqtt-5e26eb
http://wiki.ai-thinker.com/esp_download
https://www.espressif.com/zh-hans/support/explore/get-started/esp8266/getting-started-guide

5 則留言:

  1. 沒有電路示意圖
    電線顏色說明 似乎沒有一致.

    使用下列這套軟體可以繪出電路示意圖:
    http://fritzing.org/download

    回覆刪除
    回覆
    1. 謝謝你的留言,不好意思現在才看到,說明的電路已經更新上了。
      電路示意圖會補上給大家

      刪除
  2. Hi 您好
    我在網路上搜尋到您的文章, 剛好遇到類似問題, 不知方不方便私下向您請教?
    我的email是 kyhung.tw@gmail.com

    謝謝

    回覆刪除
    回覆
    1. 因為這篇文章有點久了,很難說現在的解決方法會不會不一樣。這塊板子比較進階,說真的沒有非常適合來接Arduino 哈,他比較適合當終端的控制器(連上Wifi之後,接收網路指令並控制Senser狀態),我先憑印象回覆您囉。

      刪除
    2. 因為這篇文章有點久了,很難說現在的解決方法會不會不一樣。這塊板子比較進階,說真的沒有非常適合來接Arduino 哈,他比較適合當終端的控制器(連上Wifi之後,接收網路指令並控制Senser狀態),我先憑印象回覆您囉。

      刪除

docker-mac Desktop清除容器log

 最近Docker遇到這個問題 Error grabbing logs: invalid character '{' looking for beginning of object key string. 建議的解法是刪除整個log檔,大家可以參考以下教學 htt...