Arduino WIFI(ESP8266) 初次上手應用
今天要來討論的是最近很親民的"ESP8266"
因為便宜的價位,功能也能應用的非常廣,像是"家電監控"、"遠端遙控"、"點對點溝通"、"雲端資料庫"等等
其實之前自己就已經玩過這塊,不過每當過一段時間要來玩的時候
常常無法與電腦終端機溝通上,不然就是code要重寫,花很多時間,所以這次要來為自己準備"大補帖"!!
廢話說完了,這次我們要準備的材料有:
--------------------WIFI模組應用材料----------------------
軟體:
Arduino IDE
Realterm(WIN7用終端機)
硬體:
WIFI數據機 or 手機熱點分享
Arduino 板子 (Uno、Nano、Mega、Mini、Yun...都可) *1塊
FT232 *1塊
ESP8266 (鮑率9600)*1塊
--------------------------------------------------------------
FT232 長這樣:
其實也有很多種版本,也有人稱"USB轉TTL"...等等
但我用的是長的跟上圖一樣,網拍一個賣25元。
它有兩大功用:
1.是用來燒錄ESP8266內建韌體用的,就是修改鮑率。
2.可以隨時用簡單的Realterm(終端機)來測試ESP8266是否正常。(這非常重要,因為常常有人遇到問題就認為ESP826燒壞了!)
FT232在本實驗是一大功臣,我當初玩ESP8266時沒有順便買FT232,就玩不起來,因為不知道原廠的鮑率,ESP8266就不會回話,然後也不知道怎下手,弄得自己吃不到魚,卻惹得一身腥。
FT232就先介紹到這。馬上來進入正題。
實驗方法
1.先用Realterm(終端機)測試ESP8266是否正常。(如果正常本次實驗就成功80%了~!)
2.再用Arduino取代Realterm(終端機)與ESP8266溝通,開內建序列監控室窗進行測試。
3.用ThingSpeak當作雲端資料庫,接收Arduino的各項數值。
4.完成
實驗開始
一. 先用Realterm(終端機)測試ESP8266是否正常:
1.下載Realterm (點進去按Download),下載好後安裝,先不要打開。
2. FT232與ESP8266 照此圖接。(VCC請愛用3.3V,5V會冒煙喔~)
3. 接好後,把FT232插進電腦,確保FT232正常運作,先打開電腦裝置管理員,查看是否運作成功,如果有黃色警告標示則是安裝驅動失敗,需要更新驅動軟件。
4.現在用管理員身分打開RealTerm,勾選Ascii 旁邊打勾。
5.書籤點選Port,更改(1)鮑率為"9600",更改(2)Port為FT232的USB Port位置,按(3)設置完成。
6.這邊就是見證成敗與否的時刻,(1)勾選CR,LF,CR,LF,(2)輸入AT,大小寫皆可,(3)按SendASCII,(4)看到OK即可。
如果是一片空白的話也不要氣餒,再找找看哪個細節出問題。
7.完成實驗一,代表已經成功80%了,再接再厲!!
(如果此階段遇到問題請去留言19樓看看)
二.再用Arduino取代Realterm(終端機)與ESP8266溝通,開內建序列監控室窗進行測試。
2.Arduino與ESP8266照接此電路圖
3. Code第二行是設定ESP8266的TX,RX腳位,預設是RX->4 ; TX->5 ,使用者自行更改。
SoftwareSerial mySerial(4, 5); // RX, TX 直接接ESP8266
4.開始燒錄(建議把TX,RX拔掉再燒錄,否則會燒錄失敗),燒好看TX,RX是否插好並打開內建序列監控室窗。
5.輸入AT(小寫at也可),看到"OK"如下圖,則實驗方法二完成。
(底下記得選擇NL&CR,AT才會有回應喔! 謝謝網友陳建男的補充及建議 2017/06/02 新增)
注意:(2015/11/30補充)
ESP8266電源最好外接穩壓晶片,不要用Arduino內建3.3V,電流是不足的,會造成資料傳輸上的Error。
LD1117AL 3.3v穩壓晶片介紹
https://www.sparkfun.com/datasheets/Components/LD1117V33.pdf
P.3有電路圖參考
三.用ThingSpeak當作雲端資料庫,接收Arduino的各項數值。
2.更改SSID(WIFI使用者名稱)、PASS(WIFI密碼)
3.還有最後1個數據要改(GET) 先不要燒錄,這個數據取得之前要先去申請 ThingSpeak帳戶 (點擊進入教學) 。
4.教學結束後,到API KEY標籤處 複製 Write API Key :
5. Code第12行
String GET = "GET /update?key=MIN085MR4XATH8VD";
請把"MIN085MR4XATH8VD"改成自己的 Write API。
6.改好拔掉ESP8266的TX,RX再進行燒錄。燒好"馬上"插上TX,RX並打開序列監控室窗進行測試,看到以下畫面就成功了。(如果第一行不是SEND: AT 請用力的按下Arduino上的 RST )
講解一下:
第一行:傳AT給ESP8266看它是不是活的。
第二行:接收到ESP8266傳OK,代表它是正常的可以工作。
第三行:無意義,單純代表可以開始傳資料給ESP8266。
第四行:傳送 WIFI使用者名稱(手機使用者名稱)、WIFI密碼給ESP8266。
第五行:接收到ESP8266傳OK,代表成功連接WIFI基地台(或手機)。
第六行:傳送 連接ThingSpeak網頁IP 的指令給ESP8266
第七行:傳送 API+數據1+數據2 給ESP8266
"數據1與數據2從何而來?" Code 第30行,可以知道我們傳的數據1是5 ; 數據2是9
SentOnCloud( String(5), String(9) );
如果要傳更多種類的數據只要去 Code 第44行 ,依樣畫葫蘆 + "&field=3" + X + "&field=4" + Y + "&field=5" + Z +.... 即可
第八行:接收到ESP8266傳OK,代表傳送成功!
接著會開始無線迴圈傳送API+數據1+數據2 給ESP8266。
7.打開ThingSpeak ,看到有數據再跑,右邊的Channel Stats的 Updated有再改變的話就代表成功囉!
8. 實驗方法三完成,實驗大成功!
一起來分享自己的數據成果吧~
2015/12/4 新增--
ESP8266 Datasheet等相關資料 載點
相關應用教學:
*教學*Arduino WIFI(ESP8266) 入門應用<網頁控制LED>
*教學*Arduino WIFI(ESP8266) Time同步設計
*情人節DIY*製作情侶專屬音樂盒

大大你好 照著你的教學步驟 前面的部分很順利的都完成了 但是在arduino上傳資料到ThingSpeak 卻無法上傳上去 我使用的板子是UNO 有將你的程式 RX TX部分改為0 1 串列視窗出現的資訊如下 可以麻煩大大幫我看一下嗎 SEND: AT RECEIVED: OK Data ready to sent! SEND: AT+CWJAP="EEE","" RECEIVED: OK SEND: AT+CIPSTART="TCP","184.106.153.149",80 RECEIVED: Error Exit2 SEND: AT+CIPSTART="TCP","184.106.153.149",80 RECEIVED: Error Exit1
你好 這個問題其實我之前有遇到,其實很簡單的問題 如果ESP8266會回應代表功能正常 但是進行SEND傳輸的步驟或連線出現ERROR通常都是 "3.3v 電源的不足" 以下建議可以完全解決上述問題不會有後顧之憂: 1. LD1117AL 3.3v穩壓晶片 https://www.sparkfun.com/datasheets/Components/LD1117V33.pdf 照第三頁接,vin接Arduino的5v、vout接esp8266的3.3V即可! 2.外掛2顆1.5v串聯電池,正接esp8266的3.3V,但是電池能用多久我就沒試過囉 希望可以解決你的問題
謝謝大大上次的回答 後來我還是將RX TX改回 4,5腳位! 但是最近出現一個問題 資料常常上傳個一天 或幾個小時後 就突然不上傳,出現ERROR,去摸一下晶片發現很燙,會是因為晶片熱當的原因嗎? 這情況已經有兩星期之久了 斷斷續續的出現 每次都需要拔電源讓他冷卻之後就正常了,到了今天板子已經完全都沒反應了 不知道是不是燒壞了! 大大有沒有遇到相同的情況呢?
1.上傳有斷斷續續的問題: 我有遇過,但我目前認為是ESP指令與指令之間Delay時間過短的問題,其實國內很少人討論到這塊就是ESP連續工作(元件溫度的影響最大)導致指令延時需要做調整,多看ESP8266 的 Datasheet 你會更清楚。 我想,最簡單的解決辦法就是把AT下指令後的Delay時間做增加,可能延時個幾秒看看。 2.關於過熱問題: 電源不穩定或過高電壓影響元件,導致元件過熱,元件過熱影響本身功能。 你要看看ESP的電源3.3V夠不夠乾淨,可以在ESP的電源(3.3V)並一顆大一點的電容做電壓濾波,還有就是Arduino 的TX輸出電壓會高過3.3V給ESP8266的RX,長久使用下來可能就是ESP內部元件抵消多於的功率,導致元件發熱。 請試著利用電阻分壓,把TX電壓降到3.3V,網路上有人用Arduino TX訊號串上2K與1K電阻到GND,用2K上的電壓降(3.3V)當TX的訊號源到ESP8266的RX。 希望以上三點可以解決你ESP8266過熱與資料不丟失的問題。
謝謝大大的教學 只不過現在晶片完全不回應電源燈會亮 , wifi的藍色燈都不會閃了 使用Realterm去測試也都不會回 感覺已經沒救了!
Wifi燈在下AT指令時會閃爍,而你目前的狀況很有可能是你ESP8266的鮑率不是9600,所以溝通不上,你需要用軟體做修改ESP的韌體,不然就是Realterm用不同鮑率去試著溝通看看。
昨天沒有登入變成訪客留言 鮑率確定是9600 之前下AT指令很正常 前兩天發現無論怎麼試都無回應 才在想是不是因為過熱之類的把晶片給弄壞了
我TX沒分壓 用了好幾個月至今還未燒 除了灌過高的電壓外,應該不太會燒 但發熱是正常的,但盡量不要用手去摸ESP上的晶片,手上靜電會破壞晶體...
可以問一下已經可以接收資訊,那可以使用透過 ESP8266連Wifi傳至Arduino使LED亮?
本人之前實際操作過可以用網頁控制LED,不過目前ESP晶片都在應用當中,等到日後買新的元件後才會有新的教學文章出來,謝謝提出建議,你們的回覆與互動會是我寫文章的動力。
請問我在實驗2的部分接線沒問題,但是最終下AT指令卻永遠回傳亂碼,是什麼問題呢?
請問有照著步驟來嗎?如果實驗一、二結果都沒問題的話應該是會正常工作的… 或者可以把你的問題再描述清楚一些
您好, 請教一下. 當我使用 ESP8266 連到我手機的4G 網路, 整個功能都沒問題, ThingSpeak 也可以收到我的網路. 當我使用中華電信的 ADSL 時, 確認了 SSID, PASS 都 Received: OK, 唯獨 SEND: AT+CIPSTART="TCP","184.106.153.149",80 RECEIVED: Error 這可也是跟 3.3V 有關嗎? 還是...
如果連WIFI沒問題的話就跟電源無關.. 我試過ESP剛開始連手機的熱點相對於WIFI所等待的時間會比較長 建議你可以自己把Delay改一下,試試看!
目前使用序列打AT指令跟ARDUINO溝通,想詢問問題出現在哪裡!!?
目前ESP沒遇過Arduino收值會有亂碼的狀況…能截圖上傳讓我分析一下嗎?
謝謝版大的回應, 我自己搞了烏龍, 我把我的 SSID 名字大小寫沒有完全一致... 另外我也在讀您上面的回應, 關於浮接的問題, 應該可以幫我增加一點功力, 感恩. 這裡提上個人的一點實驗結果, 我今天是接了 PIR 在 Pin 2, 送這個資訊上雲端, 接一個 LED 在 Pin1 也去讀取 PIR 的結果. 這樣我人離得遠遠的看就知道 PIR 的狀態應該是 0, 結果 LED 一直亮著, 就算我把 PIR 用碗蓋住, thingSpeak 顯示 PIR =0, 我的 LED 也是 亮著, 我用三用電錶量, 果然 always High. 我試了 pin 0 也是. 後來改其他 Pin 比如是 pin 8, 就 OK 了... 個人猜想是不是是版大說的浮接, 或者是用到通訊功能是 Rx, Tx 干擾了 pin 0, pin 1?
你說的PIR是人體紅外線感測嗎? 且通常不使用arduino的Pin 0,1做應用 因為如果你有用宣告序列埠時(SoftwareSerial),你Pin 0,1 就會自動被當作TX,RX做使用,就會有你說的誤動作的情況發生。 還有Debug的步驟建議先從最基本的硬體(PIR是否正常,我記得PIR模組可以直接輸出狀態並且獨立運作不用接arduino),確定OK再來是看軟體的序列埠能否接收PID的狀態,確定OK再來把值上傳到雲端看看 thingSpeak 的值是否正常。 然後浮接通常發生在Pin同時做輸入與輸出(雙向in/out)才會發生的狀況,如果只是做單向應該是沒問題的...
*****
*****
*****
*****
*****
*****
目前作法是ARDUINO直接連接8266,電壓也直接連接ARDUINO上面的3.3V,這樣會是電壓的問題?
八成是的... 建議你試著用1樓的第一個方法 使用LD1117AL 3.3v穩壓晶片, 把Arduino的5V穩到3.3V,而不要用Arduino內建3.3V,據說是電流不足的關係。 我ESP8266現在用的電源就是外接穩壓晶片,可以看上面的數據從八月用到現在都還一直在working,系統也沒斷電過。
*****
*****
在第3步驟中,我將程式碼複製貼上 並且修改SSID,PassWord,Write API 基板Arduino Mega 1280 、 麵包版供電電源版 也使用USB轉TLL修改 Baud rate 成9600 程式碼如下 #include
#define _baudrate 9600
#define _rxpin 19
#define _txpin 18
SoftwareSerial debug( _rxpin, _txpin ); // RX, TX
//*-- IoT Information
#define SSID "The_code_is_3492"
#define PASS "lab0277343492"
#define IP "184.106.153.149" // ThingSpeak IP Address: 184.106.153.149
// 使用 GET 傳送資料的格式
// GET /update?key=[THINGSPEAK_KEY]&field1=[data 1]&filed2=[data 2]...;
String GET = "GET /update?key=CTUJIQJ79057FAA3";
void setup() {
Serial.begin( _baudrate );
debug.begin( _baudrate );
sendDebug("AT");
delay(1000);
if(debug.find("OK"))
{
Serial.println("RECEIVED: OK\nData ready to sent!");
connectWiFi();
}
else{
Serial.println("NO RESEPONCE!");
}
}
void loop() {
delay(5000); // 60 second
SentOnCloud( String(5), String(9) );
}
void SentOnCloud( String T, String H )
{
// 設定 ESP8266 作為 Client 端
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += IP;
cmd += "\",80";
sendDebug(cmd);
if( debug.find( "Error" ) )
{
Serial.print( "RECEIVED: Error\nExit1" );
return;
}
cmd = GET + "&field1=" + T + "&field2=" + H +"\r\n";
debug.print( "AT+CIPSEND=" );
debug.println( cmd.length() );
if(debug.find( ">" ) )
{
Serial.print(">");
Serial.print(cmd);
debug.print(cmd);
}
else
{
debug.print( "AT+CIPCLOSE" );
}
if( debug.find("OK") )
{
Serial.println( "RECEIVED: OK" );
}
else
{
Serial.println( "RECEIVED: Error\nExit2" );
}
}
void sendDebug(String cmd)
{
Serial.print("SEND: ");
Serial.println(cmd);
debug.println(cmd);
}
boolean connectWiFi()
{
debug.println("AT+CWMODE=1");
delay(2000);
String cmd="AT+CWJAP=\"";
cmd+=SSID;
cmd+="\",\"";
cmd+=PASS;
cmd+="\"";
sendDebug(cmd);
delay(5000);
if(debug.find("OK"))
{
Serial.println("RECEIVED: OK");
return true;
}
else
{
Serial.println("RECEIVED: Error");
return false;
}
cmd = "AT+CIPMUX=0";
sendDebug( cmd );
if( debug.find( "Error") )
{
Serial.print( "RECEIVED: Error" );
return false;
}
}
但序列經控視窗出現如下
SEND: AT
NO RESEPONCE!
SEND: AT+CIPSTART="TCP","184.106.153.149",80
RECEIVED: Error
Exit2
不知道問題出在哪裡,無法透過esp8266 上傳資料到ThingSpeak
你好 序列視窗第二行"NO RESEPONCE!"的意思是 你傳一筆資料"AT"給ESP8266,但是傳輸過程有誤 你的ESP沒回應給Arduino,就會造成... 想請問你有照著步驟依序做嗎? 如果有的話是不會有"NO RESEPONCE"的問題的!
步驟二中,驗證程式碼會發生錯誤 sketch_dec05a.cpp: In function 'void setup()': sketch_dec05a:6: error: no match for 'operator!' in '!Serial' sketch_dec05a.cpp:10: note: candidates are: operator!(bool)
所以步驟二中,我是使用自己的程式碼去操作
使用AT 指令,有得到OK的回應
然後我直接複製步驟三的程式碼,並且修改某些變數
但卻無回應
步驟二的程式其實是內建範例去改的,不太可能有錯 剛剛幫你查了一下你的Error 請問你電腦上的Arduino編譯版本為何? 版本太舊會導致某些語法編譯錯誤喔..
Arduino 1.0版本
改使用Arduino 1.6.6版 步驟三燒錄完後,序列監控視窗仍相同 ( NO RESEPONCE ) 我的基板是Arduino Mega 1280 配線上為ESP8266 UTXD -> Arduino RX1 (19) ESP8266 URXD -> Arduino TX1 (18) 穩壓器(電源模組)3.3v → ESP8266 VCC 穩壓器(電源模組)3.3v → ESP8266 CH_PD 穩壓器(電源模組)GND → ESP8266 GND 穩壓器(電源模組)GND → Arduino GND ESP8266供電為面板包供電電源版3.3V(插USB) Arduino供電為USB供電 Arduino程式中 板子選擇為Arduino/Genuino Mega or Mega 2560 處理器 Mega 1280 燒錄器 Arduino as ISP
https://www.arduino.cc/en/Main/arduinoBoardMega 參考這個網頁,試著把RX,TX換到Serial port上。 "Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the FTDI USB-to-TTL Serial chip."
不好意思 最近在接觸ESP8266 有些問題想請教一下 步驟一. 先用Realterm(終端機)測試ESP8266是否正常: 卡很久 像您上面備註提到的 下指令後畫面沒反應可以是有環節出錯 我有重新用許多次 也看過滿多的文章 但目前我看到步驟比較詳細就是這篇文章了 想請問一下 如果像是下指令但畫面沒反應這種問題較有可能發生在哪 我一直在思考會不會是燒掉 但是我看完文章後 感覺ESP8266要燒掉也不是這麼容易 希望能給些建議及方向
謝謝,這篇文章的目的只是想為帶動國內物聯網的發展盡一份心力而已。 第一步驟如果沒反應,其實就可以知道目前你手上這塊ESP的鮑率不是9600了。 解決辦法有兩種: 1.在步驟1的標題5那張圖,用不同鮑率去試,試到有反應為止,不過這個方法較沒效率,也會造成接下來的實驗步驟需要更改參數而混亂,所以不建議。 2.用電腦ESP燒錄軟體更改ESP鮑率(FT232連接ESP才能燒錄): 下載文章最末節的補充資料並打開: ESP 模組資料集\固件及燒錄軟體\ESP8266Flasher-x86-v0.9.2.4.exe Realterm記得先與ESP斷開通訊,然後按"一鍵燒寫" 等它Loading完就能把ESP8266鮑率改為9600囉 需要注意的是:ESP8266執行燒錄前必須把GPIO0拉到地,燒寫完再移除掉即可,不然ESP可是不會理你的喔。
你好 我想問可以用兩個ESP8266 一個當伺服端 一個當客戶端的傳資料嗎
類似藍芽的點對點傳輸嗎? 印象中ESP8266可以做到,請到本篇文章末節下載ESP8266補充資料 ESP 模組資料集\ESP8266新手入門調試指導(補全).doc 裡面有教學,關於如何讓ESP8266當SERVER的指令 不過我目前還沒測試過,如果有時間的話會再找機會PO教學的!
感謝目前已成功了 將以下這些消掉 #define _rxpin 19 #define _txpin 18 SoftwareSerial debug( _rxpin, _txpin ); // RX, TX 並且更改程式碼中有debug字元改成Serial1 就可行了 但現在我在連wifi的部分,會有 SEND: AT+CWJAP="The_code_is_3492","lab0277343492" RECEIVED: Error 但是我資料可以上傳到ThingSpeak 數據點有變化,且形成連線 不知道是哪裡出問題了
如果出現ERROR但傳送成功,那就是ESP傳送時間的關係 sendDebug(cmd); delay(5000); 如果把5秒增加到7~9秒,會比較容易成功,單純只是給ESP更多時間去反應。 但是,有更好的寫法,不必這樣猜,可以用被動式的方法 意思是,目前我們都是主動式的丟命令給ESP,然後固定時間去看有沒有收到,但如果ESP回傳只是慢了一點就整個被RESET,會造成系統不穩定,效率也會變差,也就是你目前遇到的問題。 而被動式不一樣的地方就是,把固定時間這個限制拿掉,改成等待ESP回傳的信息。 方法告訴你了,可以寫寫看,再跟大家分享你的寫法,加油! 2015/12/21 已在實驗三新增Code2:被動式改進的版本了,可以用用看。
SEND: AT NO RESEPONCE! SEND: AT+CIPSTART="TCP","184.106.153.147",80 RECEIVED" Error Exit2 請問我的會一直跑這一段 我RX TX都接2 3 腳 GND要接在電源模組嗎 還有以上部分要怎麼解決
因為ESP出問題的因素太多,麻煩請照著實驗步驟一個一個來分析問題~感恩 沒錯,模組跟電路要共地,GND請接在一起。
我想問其他的問題,關於thingspeak thingspeak繪圖上,只能每10秒畫一個點,esp8266上傳資料可以很快,大概能1秒1個甚至更快,但繪圖上卻只能10秒,我是使用紅外線感測器,想知道某一個東西來回通過的電壓變化,精度可能要到1秒以內
那可能要上傳到自己的Server做後處理,不能透過ThingSpeak,就如同您說的無法快速響應,但難度又會再進階些。 我IOT的目標也是建立自己的Server端,演算法寫在雲上然後回傳控制策略,不過研究所比較忙碌,目前還沒開始著手進行...
你好 我想問ESP8266可以使用POST將資料傳進MYSQL的資料庫嗎
應該是可以的,不過MYSQL我不是很熟 雲端資料庫是你的強項嗎? 我之後目標也是用MYSQL,可以交流一起試看看!
*****
*****
感謝大大給的8266載點
希望大家多多交流,一起進步啦~
你好 請問為甚麼我使用RealTerm 8266會一直自動傳遞訊息 訊息框不斷顯示[System Ready, Vendor:www.ai-thinker.com] 下方顯示UART receiver framing error 但基本AT指令皆正常運作 使用AT+CWLAP時無回應
1.檢查一下硬體電路有無接錯 ESP8266沒接的地方可以空著不接沒關係 2.使用RealTerm是否有搭配用FT232? 3.基本上AT+CWLAP指令是會掃描周圍的基地台,會需要等上一段時間才會response。
你好 以下連結為我使用的8266 http://c.rimg.com.tw/s2/8/d1/cc/21524736995788_102_m.jpg 有使用3.3V穩壓IC,外接電源為5V,其餘的硬體電路連接都與您相同 只是我的8266似乎會不斷的自動執行重新啟動(藍燈不斷的閃爍)
這塊版本我還沒玩過,可能是真的有差的喔。
您好: 我有按照您的做法來做 只是當使用Arduino UNO來接ESP8266的時候,一直出現亂碼,指令下了也沒用 不知道什麼地方出了問題 目前我這顆ESP8266只知道鮑率為115200 還希望版大指點迷津
19樓有鮑率不是9600的解決方法喔 請試著重新燒錄ESP8266的韌體,再繼續實驗 有問題歡迎再來請教。
版大你好: 鮑率改成功了,在Realterm裡指令下了都OK 但是Arduino卻還是不行 不知究竟哪裡出錯了... 還希望版大指點迷津 以下是截圖 https://drive.google.com/file/d/0B1PiJFZKMC1AVGt0TGtaeDlfMTA/view?usp=sharing https://drive.google.com/file/d/0B1PiJFZKMC1AS3ZKNncxZks2NDA/view?usp=sharing
注意一下Rx,Tx的接腳 不要接反囉
請問 身邊沒有 ft232 就無法改 esp8266的baudrate了嗎 因為 AT測試時 都沒有回應
請問一下 按照REALTIME的步驟 到最後 都是一片空白 要不然就是 亂碼 請問 要怎麼解
如果是初學 沒有FT232來實驗 保證9.9成的人是做不成功的 文章說明的很清楚了 網路商城很多都有賣 光華電子材料行也都有 不是說很貴
請問 我剛剛用FT232做測試時 步驟5做完時 ESP8266一直傳送值 產生亂碼 是什麼原因造成的? 順便請問一下 步驟5做完 是esp8266的baudrate就會改變 還是要用別的軟體修改
是用軟體改喔 因為本實驗是基於ESP8266鮑率為9600設計的 如果你的ESP8266的鮑率不是9600 就得照19樓的第2個方案去改 改的過程中,有不懂的再提問
感謝版大的回覆 我後來知道問題在哪裡了,原來要把Monitor的模式改成這樣 https://drive.google.com/file/d/0B1PiJFZKMC1AcUdxckpkSkhWYzg/view?usp=sharing 之後的實驗也都一一順利解決了XD 接下來就是改寫程式跟測試Linkit one 了XD
哈哈 那麼不小心 任何結果都歡迎來分享啊!
版主,想問怎們確定8266設定已經完成?? 我目前有打一個ARDUINO程式碼,想說要用來測試從網頁 來測試8266>>去控制ARDUINO上面的LED燈,這樣8266屬於Client 端?? 我的程式碼: #include
#define DEBUG true
SoftwareSerial esp8266(2,3);
void setup()
{
Serial.begin(9600);
esp8266.begin(9600);
pinMode(11,OUTPUT);
digitalWrite(11,LOW);
pinMode(12,OUTPUT);
digitalWrite(12,LOW);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
sendData("AT+RST\r\n",2000,DEBUG);
sendData("AT+CWMODE=2\r\n",1000,DEBUG);
sendData("AT+CIFSR\r\n",1000,DEBUG);
sendData("AT+CIPMUX=1\r\n",1000,DEBUG);
sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG);
}
void loop()
{
if(esp8266.available())
{
if(esp8266.find("+IPD,"))
{
delay(1000);
int connectionId = esp8266.read()-48;
esp8266.find("pin=");
int pinNumber = (esp8266.read()-48)*10;
pinNumber += (esp8266.read()-48);
digitalWrite(pinNumber, !digitalRead(pinNumber));
String closeCommand = "AT+CIPCLOSE=";
closeCommand+=connectionId;
closeCommand+="\r\n";
sendData(closeCommand,1000,DEBUG);
}
}
}
String sendData(String command, const int timeout, boolean debug)
{
String response = "";
esp8266.print(command);
long int time = millis();
while( (time+timeout) > millis())
{
while(esp8266.available())
{
char c = esp8266.read();
response+=c;
}
}
if(debug)
{
Serial.print(response);
}
return response;
}
部落格會自動省略空白...眼睛痛啊~ 給你個提示 response會取得ESP的回應 這個範例程式我前幾天已經有改成現成可以動作的Code了 今明天會釋出教學 耐心等待囉!
好的感謝!!!
第三篇教學已經上傳 "Arduino WIFI(ESP8266) 入門應用<網頁控制LED>" 以下連結: http://lolwarden.pixnet.net/blog/post/183008551
感謝版主 問題一: 我可以問一下8266電源可否用AMS1117這顆IC? 因為我打算用變壓器去做一個外部電源供給ARDUINO和ESP8266使用 問題二: 網頁部分有對外面IP開放嗎?
1.這顆提供3.3V,800mA 應該是沒問題的 2.目前正著手研究中..
您好:想請教FT232可否用市售的USB TO RS232 9PIN那種來替代?感謝!
那種不行,RS232的工作電壓不是5V,小心燒壞板子
您好,我目前在試的時候實驗一部成功,線都有檢查過 都接對。 想問您 哪裡可能出問題。
可能你的ESP8266的鮑率不是9600,請往上看19樓的講解
您好,我想再使用AT+CIPMUX=1跟AT+CIPSERVER=1,8087這兩個AT指令下把我的資料打上雲端,目前卡在AT+CIPSEND=後面要加通道跟字元,但就算我給他通道跟字元也出現RECEIVED: Error Exit2 請問版大有辦法解決嗎?
請問一下 手機傳值 給 esp8266 arduino端程式碼 需要寫什麼指令 才能接收呢 目前 arduino 透過 esp8266 傳值給手機可以 但是 手機傳值 卻無法收到
請問一下 如果Realterm輸入AT 回傳的值是亂碼 這樣正常嗎? 是因為編碼所以導致嗎?
請問一下,我實驗一步驟都ok了,鮑率也改成9600,可是wifi+arduino的AT指令一直沒有回應。 我是用MEGA2560版子,電壓的方法是用一樓說的電池串接,TXRX設在0和1 (程式也有改到0和1) 燒錄進去後 打指令AT完全沒有回應 想請問問題出在哪裡!?
請問一下,我都做成功了,但是我想自己架apache+php+mysql接收溫度及濕度,網站預設值也都設好了,資料庫也建置了(四個欄位,來源、時間、濕度、溫度),碰到問題是因為是自己架設網站,所以把 String GET = "GET /update?key=MOZDU7Q2WQ5M3KQM";改成 String GET = "GET /update?";卻發現寫不進去資料庫, (我自己有先試寫由index.htm用GET傳遞到index.php程式都可以執行並寫入資料庫) 想請問這一段String GET =應該怎麼寫 ???????
很清楚喔
您好~喜歡的話可以多多分享唷
請問一下,我實驗一步驟都ok了,鮑率也改成9600,可是wifi+arduino的AT指令一直沒有回應。 我是用UNO版子,電壓是用降壓晶片,TXRX設2和3 (程式也有改到2和3) 燒錄進去後 打指令AT完全沒有回應,在serial monitor是什麼都沒有. 想請問問題出在哪裡!?
請問我可以在Realterm(終端機)做設定 但是接到Arduino卻讀不到8266的回應了 我在第一步驟就有改鮑率9600了但就是沒反應
請問一下 我跟著步驟到實驗2時, 我輸入了AT在內建序列監控室窗,它輸出 A� 這是什麼原因?
感謝版主 已經都試驗成功了 可是當我把arduino關機拔掉usb線 接上外接電源的時候 wifi就連不到了 請問有解決辦法或是哪裡有問題嗎?
Exit2......
您好,我將FT232與ESP8266接在一起時,3.3V分給Vcc與CH_PD好像會造成電流不足而使電腦抓不到Port,請問有什麼辦法可以解決嗎?
你好,我打AT命令都正常回應OK,但只要傳送GET指令就只會傳400 BAD REQUEST能否指點
請問: 三.用ThingSpeak當作雲端資料庫,接收Arduino的各項數值。 1.點擊進入複製 Code Code2(改進版) 其中CODE2(改進版) 內 第15&16行 " Serial.begin( _baudrate ); debug.begin( _baudrate );" _baudrate 是不是要修改成你自己的鮑率? 比如說ESP8266是9600的??? 感謝大大
您好~ 我也是卡在實驗2 用ARDUINO打AT沒反應 請問是什麼問題?
版主,請問您的Arduino RX,TX都是5V,而ESP8266的RX,TX準位是3.3V,請問有經過準位轉換模組相連接嗎?
版主請問你一下FT232在哪裡買的,怎麼可以這麼便宜,可以告訴我?
請問為甚麼我都會在第5步驟時右邊會顯示BREAK呢?
請問一下大大 為什麼 我用的是FT232BL 在RealTerm的時候 (1)勾選CR,LF,CR,LF,(2)輸入AT,大小寫皆可,(3)按SendASCII,(4)看到OK即可。這步驟我沒有反應 然後 右邊的Status TXD(3)在亮黃燈 就是一直亮黃燈 請問是我腳位階錯嗎? 我是照著你上面的圖接線 難道FT232BL 跟 FT232不一樣嗎?
請問要多上傳一個數據 程式碼要怎麼改
你好~ 請問我使用realterm時,(鮑率9600)顯示出來是空白的,但鮑率更改為19200時是會顯示ok 再使用提供的燒錄軟體進行燒錄,但之後再使用realterm測試時(鮑率9600、19200)都是空白的 (腳位都有接正確)
我最近要做專題,想請問一下,如果我將ESP8266連到wifi分享器上,那我手機要怎麼控制arduino板呢? 我是新手,所以不太懂,也查了很多資料,可是都找不到相關資料,希望大大可以給點提示🙇🙇🙇
不好意思,跟您請教為什麼下達連線指令模組就會出現reset,我是用uno+esp01,我是菜鳥真不知道是出什麼錯,一直出現這狀況,懇請大神幫忙,求您了
不好意思 請問一下 為什麼我使用一件燒寫之後 他開始尋找ESP8266之後就沒動作了? 是還有什麼需要設定的嗎?
大大您好, 我本身非電子相關科系出身,因為您的分享,開始了第一步。 唯獨卡在接ESP8266時, 我的ESP8266是黑板,用USB轉TTL的模組測試都沒問題,但接Arduino UNO時就是無反應(電源燈亮著),您說ESP8266接Arduino 3.3V時會有電流不足問題,請問您是用外部供電還是USB直供呢? 有什麼方法可以判斷是電流不足還是接線接錯呢? 謝謝您。
你好請問照著文中接線並且esp8266轉接ttl連上電腦後,用realterm開啟但是輸入at畫面完全沒有反應,各種鮑率都試過也都不行,realterm只有傳出的訊號燈亮沒有接收到訊息,想請問這樣我是碰到甚麼問題呢?謝謝您
成功了~~~~-W- 謝謝大大
哈嘍 若有其他問題歡迎發FB私訊詢問唷
我用Arduino取代Realterm(終端機)與ESP8266溝通時 觀測跑出來是亂碼 可是再用ThingSpeak時 卻可以回傳數據 有時可以輸入時 輸入AT卻沒跑出OK 求解 感謝
請問一下 我有照版大的方式接了,我是使用ESP8266+MEGA 有修改鮑率 Realterm也有回應 我的接法是 ESP: VCC(兩個)->MEGA 3.3V GND-> MEGA GND RX->MEGA TX18 TX->MEGA TX19 GPIO 沒接 程式碼也有修改成 SoftwareSerial esp8266(19, 18); // Arduino RX:4, TX:5 在傳輸AT的時候傳輸燈接有量(arduino、ESP8266) 但是在序列埠監控器上都不會顯示AT,也不會顯示回傳 可以請問是什麼問題嗎
哈嘍 歡迎發FB私訊詢問,我們會盡快回覆你歐
想請問一下版主 從ThingSpeak下載的數據,所顯示的時間有什麼辦法從ThingSpeak網站上直接修改嗎?
大大你好 照著你的教學步驟到實驗2時再序列監控式窗那打at但他只會傳A跟一個框框請問是哪裡有問題 我使用的板子是UNO 有將你的程式 RX TX部分改為0 1
歡迎發FB私訊詢問,能更快得到解答唷
你好 我使用arduino d1 自帶esp8266的板子 我每次使用一段時間後就會失去連線 請問重新連線的程式碼 要怎麼寫
大大您好,我在測試arduino與esp8266的程式時,每當esp8266跟wifi分享器連線時會造成使用同一個分享器的其他裝置(如:我的筆電)暫時斷線的情形,請問這個問題要如何解決?謝謝
USE FT232, PRESS "SEND ASCII" , SCREEN 只顯示 " B" , 同時下方顯示" Chars sent aren't displayed when half-duplex is set" 請問什麼問題?
老師您好 : 照著您的方法實做步驟二有成功SHOW出OK字樣;但隔天回頭來操作時,發現IDE會秀出 A)或是A?的字樣。 綜合上述問題,想請教您是 1.WIFI版胞率問題嗎(有用REALTERM確認 : 9600) 2.WIFI電壓不穩造成嗎(連接ARDUINO 3.3V)
你好 可能是操作步驟上的問題喔~再檢查一下! 另外電源的部分建議外接,或直接用TTL模組上提供的電壓Pin腳,比較推得動ESP哦
*****
*****
你好請問 你知道哪裡可以有人為人解釋arduino code的嗎, 付費諮詢的也可以 , 有一組手電同程式很想做來實驗 ,但看不懂程式 ,國外公開的網站的分享沒有版權問題 麻煩你 無限感激 聯絡:eddie5492001t@yahoo.com.tw
可以先上傳分享code看看~
老師你好, 我目前知道手上這顆ESP8266的胞率是115200(實驗一試出來的) 但到了實驗二,每次上傳程式都會出現以下的錯誤 warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed error: espcomm_upload_mem failed 請問這甚麼意思,我該如何解決
找找Arduino路徑的Libraries資料夾 有沒有ESP8266的檔案~
我是77樓的提問 我照著19樓的做法將胞率修改為9600還是一樣的結果 求解~
你好,請嘗試看看更改ESP韌體鮑率~
請問你下面的數據是怎麼上傳的,可以看一夏code嗎,我們要做智慧植栽,想把溫溼度的資料呈現到thingspeak地的表格謝謝
你好 阿倫!老師已經有把程式碼開放在文章裡囉~再找找看~
若在打AT上傳時,畫面的TXD呈現閃爍,是因為什麼原因呢?我線都接對阿,求解
大大請問一下,我一開始就遇到問題了,ESP8266用Realterm連上後,一直掃描wifi訊號,但是無法接收任何的AT命令,請問我該怎麼做,直接燒錄程式嗎?
請問Seeeduino V4.2 3.3V有到500mA 為甚麼還會跳ERROR呢? http://wiki.seeed.cc/Seeeduino_v4.2/
前天問,ESP8266用Realterm連上後,一直掃描wifi訊號,但是無法接收任何的AT命令,問題已解決了,直接重燒錄韌體就是了,謝謝打擾了。
哈哈哈 這個問題還蠻常見的 恭喜你解決囉~
為甚麼我用arduino接esp8266一直顯示 warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed error: espcomm_upload_mem failed 幾乎網路上的方法我都盡量試了 gpio 0接地 電壓該接3.3v也接了 函示庫也有esp8266 但還是這樣 拜託了
您好~請問一下 如果單獨使用ESP8266當作開發版 使用Arduino IDE燒寫程式 那麼該如何設at指令?
步驟五:書籤點選Port,關於更改(2)FT232的位置是如何查知? 5 =\是甚麼意思? 我只有在裝置管理員/連接阜/USB Serial Port的內容找到USB Serial Converter 請問這是正確的嗎?
請問在燒錄軟體時是否一定要接獨立電源
基本上燒錄可以直接用電腦電源供電⋯ 但我的經驗是 有時候電腦的USB Port輸出功率被其他設備吃掉,輸出電流降低到250mA~500mA,其實是不夠用的,建議您外部供電來提升晶片驅動能力,燒錄也較穩定。
請問所謂的外部供電要怎麼做呢可否有截圖或比較詳細的步驟因為我在想要輸入指令後不管按哪個baud rate 都是txd會閃黃燈而在重新燒製軟體時也沒有辦法跑loading
注意:(2015/11/30補充) ESP8266電源最好外接穩壓晶片,不要用Arduino內建3.3V,電流是不足的,會造成資料傳輸上的Error。 LD1117AL 3.3v穩壓晶片介紹 https://www.sparkfun.com/datasheets/Components/LD1117V33.pdf P.3有電路圖參考 或上網找找看轉成3.3v的穩壓IC
我用的FTTP轉TTL的不是FT232好像是CP210不知到有沒有關係
可以試看看,FT232是一定沒問題的,我只能這樣保證~
在補充有說到有電路圖的截圖可是沒有看到呢不知道是在哪裡,
在補充有說到有電路圖的截圖可是沒有看到呢不知道是在哪裡,
在補充有說到有電路圖的截圖可是沒有看到呢不知道是在哪裡,
在補充有說到有電路圖的截圖可是沒有看到呢不知道是在哪裡,
因為現在real term還是不會回應因為他Tx一直閃黃燈所以想接一個穩定的電壓,請問如果要輸出穩定的電壓用arduino的5v接上LD117AL的Vin和Vout接上esp8266的3.3V就可以了嗎? 那麼如果用arduino輸出穩定電壓的話那電腦是不是得要同時插入arduino的USB和Ft232兩個
是的,沒錯! 如果用電腦USB供電就需要同時接上兩個Port 一個為Arduino;另一個為FT232
不知道有沒有版主的fb可以方便問問題
您好 希望您在這邊詢問就可以囉~ 您的問題可能會是其他新朋友的問題 之前解決的問題可能也是您遇到的問題😄
請問照你的圖接但ESP8266上LED燈不亮,表示板子已經不能用了嗎?
拿電表量量看電壓是不是3.3V,是否接反也要注意
請問一下 我要上傳的數據應該要放在程式的哪裡才能夠傳到thinkspeak呢?
您好 步驟四有針對程式碼逐行解說 裡面會提到您的問題~
不好意思 我是最近剛接觸Arduino的新手 esp8266測試已經成功但是我想請問與感測器的程式的整合要如何去合併呢? 我使用的感測器是bh1750 光照度 程式碼為 #include
#include
BH1750 lightMeter;
void setup(){
Serial.begin(9600);
// Initialize the I2C bus (BH1750 library doesn't do this automatically)
Wire.begin();
// On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3);
lightMeter.begin();
Serial.println(F("BH1750 Test begin"));
}
void loop() {
uint16_t lux = lightMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}
希望老師能幫我這個忙 我改了程式內容還是跑不動 拜託... 感謝您
不好意思 我很確定的把步驟都走過很多次了 也有去買了穩壓 但是總是出現這樣 SEND: AT RECEIVED: OK SEND: AT+CWJAP="OIT_WLAN_WPA2","0277380145" RECEIVED: OK SEND: AT+CIPSTART="TCP","184.106.153.149",80 RECEIVED: Error 實在不曉得該怎麼解決 懇請版大幫助
嗨~親愛的部落客與同好夥伴們,看到大家在部落格中互動留言,真是太開心啦~ 痞客邦有個追新留言小祕技tip要偷偷告訴你喲! 只要運用簡單的小撇步,在喜愛的部落格文章中,按下【+關注】按鈕,就能在自己的興趣牆上快速追蹤各種最新動態,即時和部落客與同好夥伴們留言互動,還能探索發掘更多你可能喜歡的興趣社群新鮮事喔! >>去看看怎麼運用【+關注】https://goo.gl/xfxB4o 也歡迎大家多多關注痞客邦官方帳號,獲得更多新消息! >>去關注【痞客邦】https://goo.gl/2sEzuL >>去關注【PIXstyleMe】https://goo.gl/PBGd69
嗨~親愛的部落客與同好夥伴們,看到大家在部落格中互動留言,真是太開心啦~ 痞客邦有個追新留言小祕技tip要偷偷告訴你喲! 只要運用簡單的小撇步,在喜愛的部落格文章中,按下【+關注】按鈕,就能在自己的興趣牆上快速追蹤各種最新動態,即時和部落客與同好夥伴們留言互動,還能探索發掘更多你可能喜歡的興趣社群新鮮事喔! >>去看看怎麼運用【+關注】https://goo.gl/xfxB4o 也歡迎大家多多關注痞客邦官方帳號,獲得更多新消息! >>去關注【痞客邦】https://goo.gl/2sEzuL >>去關注【PIXstyleMe】https://goo.gl/PBGd69
請問wifi連線部分的ssid和pw該怎樣打? 謝謝...
請問大大 那如果不是連到thingspeak 而是byethost的資料庫 該怎麼做
有聯絡方式嘛..有些問題想請教esp8266
不好意思請問一下我ft232插上去的時候有序裂埠沒有錯誤,但只要插上esp8266序列埠就不見了請問我要怎麼處理
不好意思請問一下我ft232插上去的時候有序裂埠沒有錯誤,但只要插上esp8266序列埠就不見了請問我要怎麼處理
可能你的電源供電不穩,請用FT232的電源供給ESP,或是外接穩壓IC