本網站所有源碼和文章均為作者提供和網友推薦收集整理而來,對提供的源碼不擁有任何權利,其版權歸原著者擁有。僅供學習和研究使用,下載后請24小時內刪除。不得使用于非法商業用途,不得經營非法游戲或違反國家法律。一切關于該資源商業行為與www.fcnptqk.cn無關。
1. 硬件
????ESP8266模塊,或者ESP8266開發板,建議初學者直接使用開發板;
????2. 軟件
????Arduino IDE開發環境;
1. 硬件
????硬件環境主要分為兩種:
????1. ESP8266開發板 + USB線
????

?2. ESP8266模塊 + USB轉TTL線
????如果WiFi模塊是ESP8266-01系列,首先請看一下以下引腳接口說明:
| 引腳編號 | 引腳定義 | 引腳描述 |
|---|---|---|
| 1 | TX | 1)UART_TX發送端;2)通用IO口:GPIO1; |
| 2 | GND | GND |
| 3 | CH_PD | 1)高電平工作;2)低電平模塊供電關掉; |
| 4 | GPIO2 | 開機上電時必須為高電平,禁止硬件下拉,內部默認已拉高; |
| 5 | GPIO16 | 外部Reset信號,低電平復位,高電平工作(默認應該是高電平); |
| 6 | GPIO0 | 接地進入燒錄固件模式,懸空為正常運行模式; |
| 7 | VCC | 3.3V(切記不要供5V!!!) |
| 8 | RX | 1)UART_RX接收端;2)通用IO口:GPIO3; |
????其余引腳懸空即可。 從引腳介紹表可以看出,關鍵引腳GPIO0決定了模塊當前處于什么工作模式。
燒錄固件模式
????請按照下圖連接ESP8266-01和USB轉TTL線,進入燒錄模式:
????如果WiFi模塊是ESP8266-12系列,按照下圖對應引腳接線:
溫馨提示
- 從Arduino IDE角度來看,ESP8266工作模式包括:
1.燒錄固件模式
下載代碼的時候,需要將GPIO0口接地;
2.正常工作模式
下載完代碼,需要將GPIO0口懸空;
有電路經驗的讀者可以安裝撥碼開關來切換工作模式。 - 注意ESP8266安全工作電壓是3.3V,不要直接連接5v;
- 手動切換工作模式之后,最好重新啟動一下ESP8266模塊(通斷電);
- 有時ESP8266下載失敗,有可能是供電問題,可以嘗試獨立供電,不直接連到TTL Vcc;
- 燒錄固件,我們需要了解的是,我們的固件是以下哪一種:AT固件、自己編寫的SDK固件(基于ESP8266 SDK開發或者Lua)以及本書基于Arduino平臺開發的ESP8266固件
2. 軟件開發環境
????軟件安裝需要分成兩個步驟:
????1.安裝Arduino IDE
????Arduino IDE開發環境主要用于Arduino Uno/Mini/Mega2560等平臺的項目開發。而ESP8266也可以基于該IDE來開發, 所以我們首先需要安裝它;
2.1 安裝Arduino IDE
????由于某些原因,Arduino官網網站(https://www.arduino.cc/en/Main/Software) 經常打不開或者下載速度極慢,導致下載IDE非常困難,讀者可以通過以下兩種方式下載安裝:通過Arduino中文社區鏈接地址(https://www.arduino.cn/thread-5838-1-1.html) 去下載。
????如果你下載的是windows安裝版(exe后綴),那么直接安裝即可,其他則直接解壓即可使用,注意路徑不要存在中文目錄。啟動Arduino,會出現如下圖所示界面:
2.2 安裝ESP8266開發環境
????安裝好Arduino IDE環境后,就得在它基礎上配置Arduino Core For ESP8266。以window版本為例,讀者可以安裝以下順序安裝:
- 打開Arduino IDE->菜單項文件->首選項,然后會看到附加開發版管理器網址,填入http://arduino.esp8266.com/stable/package_esp8266com_index.json,重啟IDE;
- 重啟IDE之后->菜單項工具->開發板->點擊開發板管理器->滾動找到ESP8266平臺;
- 從下拉選項中選擇你想下載的版本,點擊安裝,需要等待一段時間安裝完畢。
- 安裝成功的話,會可以看到下圖所示。
????到此,整個軟件開發環境搭建完畢。
溫馨提示
- 如果安裝失敗,一般都是因為網絡問題,可以嘗試多次重新安裝;多次安裝失敗之后,可能需要翻墻;
- Arduino Core For ESP8266庫版本之間是有區別,有些版本可能沒有某些方法,比如筆者剛開始的時候安裝了2.0.0版本,但是編譯代碼不通過,提示client.peekBytes方法不存在,安裝最新版本完美無bug。
- Arduino IDE界面相對比較簡單,筆者覺得代碼提示功能、自動補全不夠友好,推薦使用Visual Studio、Eclipse等更為專業的開發環境進行開發。這些第三方的開發環境都需要下載對應的Arduino插件進行配置,筆者這里就不具體講解,有興趣的可以自行查閱資料解決。
3. 燒錄ESP8266
????實驗是檢驗真理的唯一標準,配置好硬件和軟件環境之后,筆者就給讀者提供一個實例代碼,并且告訴讀者如何配置燒錄以及提及一些燒錄配置注意點。
3.1實例代碼
????首先,請讀者不用在意代碼細節問題,請先拷貝如下代碼到Arduino IDE,然后點擊編譯:
/**
Authorization.ino
Created on: 09.12.2015
*/
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>
ESP8266WiFiMulti WiFiMulti;
void setup() {
Serial.begin(115200);
// Serial.setDebugOutput(true);
Serial.println();
Serial.println();
Serial.println();
for (uint8_t t = 4; t > 0; t--) {
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}
WiFi.mode(WIFI_STA);
WiFiMulti.addAP("1502", "18560052108");
}
void loop() {
// wait for WiFi connection
if ((WiFiMulti.run() == WL_CONNECTED)) {
WiFiClient client;
HTTPClient http;
Serial.print("[HTTP] begin...\n");
// configure traged server and url
http.begin(client, "http://xxx.com/1.php");
/*
// or
http.begin(client, "http://jigsaw.w3.org/HTTP/Basic/");
http.setAuthorization("guest", "guest");
// or
http.begin(client, "http://jigsaw.w3.org/HTTP/Basic/");
http.setAuthorization("Z3Vlc3Q6Z3Vlc3Q=");
*/
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
delay(10000);
}
Comments