2016-05-14 41 views
1

我買了一個新的ESP8266 WIFI模塊(8針)和閃存固件(從https://raw.githubusercontent.com/nodemcu/nodemcu-flasher/master/Win32/Release/ESP8266Flasher.exe)它正確使用arduino Duemilanove。 我已經經歷了許多故障排除步驟,但在復位模塊確實會給出一些亂碼響應,但沒有來自「AT」命令的Ready/OK響應。ESP8266 WIFI模塊沒有反應

模塊的紅色指示燈 一直亮着,但藍色指示燈熄滅。

採取的步驟: -

  1. 爲了提供足夠的電流i使用Beaglebone 3V3供給作爲模塊Vcc連接。 但我無法收到來自AT命令的任何迴應。

  2. 的Arduino德克薩斯(5V)已經回落到3V3使用連接到的Rx

    分壓器和
  3. 在Flash設置確保波特率爲115200,正確的所有設置
  4. 模塊據推測做工精細與嘗試2個模塊,同樣的事情

這裏是我的連接:

////////////////////////////////////////////////////////////////////////////// 
    ///////       CONNECTIONS    //////// 
    ///////////////////////////////////////////////////////////////////////////// 
    /* 
    ESP8266 VCC -> BeagleBone 3.3 
    ESP8266 GND -> Common GND (Arduino & BeagleBone) 
    ESP8266 CH_PD -> 3K resistor -> VCC 
    ESP8266 RST -> VCC or pin 13(arduino) 
    GPIO CAB BE LEFT OPEN OR TIED HIGH 
    ESP8266 Tx -> pin2 (Arduino software serial Rx) 
    ESP8266 Rx <- Voltage Divider <- pin3 (Arduino software serial Tx) 
    */ 

這裏是我的代碼

#define esp8266 Serial2 
#define CH_PD Vcc // but needs a narrow low pulse 
#define speed8266 9600 // This is the speed that worked with my ESP8266 
void setup() 
{ 
esp8266.begin (speed8266); 
Serial.begin(9600); 
reset8266(); // Pin CH_PD need a reset before start communication 
} 
void loop() 
{ 
while(esp8266.available()) 
{ Serial.write(esp8266.read()); } 
while(Serial.available()) 
{ esp8266.write(Serial.read()); } 
} 
/*************************************************/ 
// Reset funtion to accept communication 
void reset8266() 
{ 
pinMode(CH_PD, OUTPUT); 
digitalWrite(CH_PD, LOW); 
delay(300); 
digitalWrite(CH_PD, HIGH); 
} 

這裏有串行監視器 Arduino Serial Monitor Output

輸出請幫助我什麼我做錯了什麼? 我不想使用另一個FTDI芯片,而arduino已經擁有它。

+0

以我的經驗,這種亂碼(不是靜音)是典型的不正確的串口設置:波特率,數據位,奇偶校驗,停止位。該模塊的某些文檔狀態爲「8N1」,波特率爲115200,而其他文檔(如來自sparkfun的「NURDspace Wiki(原理圖,數據表,更多!」)鏈接至[https://nurdspace.nl/ESP8266 ](https://nurdspace.nl/ESP8266),其中規定波特率爲57600.這個法文文檔[here](http://les-electroniciens.com/videos/arduino-ep16-installation-du- module-wifi-esp8266)與9600 ... ...這真的是愛好者的東西... – jbm

+0

(以下),所以我會嘗試其他波特率,從115200(似乎並沒有工作),到57600,然後38400,19200 ,最後是9600. – jbm

+0

我試過所有的波特率,結果都是一樣的,而且不是亂碼,奇怪的數據在重置期間只出現一次,否則它完全沒有響應,有時在測試中不是亂碼,而是一些致命異常0)或校驗和0x0000房間0尾巴8 ...種類的東西.. – aditgupta100

回答

1

目前我只能給你一個部分答案(似乎我還不能評論:))。

啓動/重置ESP時,亂碼是正常的,它只是以74880波特輸出啓動信息的啓動代碼(基本上默認波特率爲115200,但由於ESP啓動時CPU的頻率較低,波特率也較低,開機頻率爲26 mhz,正常頻率爲40 mhz,26/40 * 115200 = 74880.如果您可以將您的串行客戶端設置爲74880波特,您應該看到該消息,但它是一個奇怪的波特率,所以它可能很難或不可能進行設置。

等恢復胡言亂語好!這意味着ESP的工作,快樂的,問題是你的軟件(如你確定自己太)。

我假設你的代碼在Arduino方面? 最大的問題是ESP上閃現的是什麼,以及預期bahaviour是什麼。從你的問題我不是100%確定你做了什麼閃光燈..

我認爲你可能已經閃過nodemcu它雖然,它不會響應AT命令,嘗試閃光'原始'AT來自Espressif Systems的ROM呢?

+0

我能夠在上面正確地刷新NodeMCU,並且能夠在我的ESP8266-01上獲得響應並創建服務器,但是由於某些原因使用相同的電路和固件,因此每次都不重複它的行爲。 有時我會得到NodeMCU屏幕 「lua:無法打開init.lua」 有時會亂寫數據打印chksum,房間等我無法調試。 – aditgupta100

+0

您正在使用哪個版本的NodeMCU? 1.5.1從115200開始,然後在第一個2期間自動檢測?秒,但它只能在接收到數據時才這樣做。嘗試將您的串行客戶端設置爲115200波特。幾乎總是意味着你雙方的波特不匹配。您也可以設置特定的波特率init.lua – cranphin

+0

請注意,chksum,房間等是引導加載程序與您通話,並且通常以74880波特完成。你使用哪個串行客戶端? – cranphin

相關問題