ESP8266是一款價格十分親民的wifi模塊,在某寶上一塊ESP8266開發(fā)板只要10幾塊錢!可以買來玩玩一些物聯(lián)網(wǎng)相關(guān)的小項目。
ESP8266的開發(fā)方式有多種,目前我了解到的有:
使用Arduino IDE開發(fā),沿用Arduino的開發(fā)風(fēng)格,簡單易上手
使用ESP8266官方的SDK開發(fā)
使用MicroPython開發(fā),沿用Python的編程風(fēng)格,此方式需要先給板子燒寫一個特殊的固件
因為我之前玩過Arduino,而且Arduino編程簡單易操作,所以就選擇先使用Arduino IDE來玩一玩ESP8266。
1 安裝Arduino IDE
Arduino官網(wǎng)下載IDE:https://www.arduino.cc/en/software,我之前安裝的版本是Arduino IDE 1.8.16,目前又有新版本的,可以安裝最新的,不過基礎(chǔ)功能相差不大。
根據(jù)自己使用的平臺,點擊右側(cè)的下載。
我下載得到arduino-1.8.16-windows.exe安裝文件,常規(guī)的“下一步”的安裝方式安裝即可。
安裝完之后,打開,可以看到我的軟件里已經(jīng)有了Arduino AVR和ESP8266的開發(fā)環(huán)境(注:ESP8266的開發(fā)環(huán)境是我在舊版本的Arduino IDE中安裝過,安裝新版本IDE后,之前的配置也會自動加載進(jìn)來),如果你之前沒有配置過ESP8266,IDE中應(yīng)該默認(rèn)只有Arduino AVR這一項。
2 卸載舊的ESP8266開發(fā)包(可選)
因為我之前安裝過2.6.3版本的ESP8266,那我就先卸載掉,再安裝一個更新版本(3.0.1)的ESP8266安裝包。
卸載舊的ESP8266安裝包
在文件管理器地址欄輸入 %LOCALAPPDATA%/Arduino15/packages,回車進(jìn)入,然后刪除掉其中的esp8266文件夾即可卸載
3 安裝ESP8266開發(fā)包
因為Arduino IDE默認(rèn)是給Arduino開發(fā)板用的,默認(rèn)只有Arduino開發(fā)板的相關(guān)開發(fā)資源。要想在在Arduino IDE中使用ESP8266,需要額外安裝ESP8266的開發(fā)包。安裝方式有兩種,一種是在線安裝,一種是使用離線包安裝。
3.1 在線安裝(不推薦)
在線方式需要連網(wǎng)下載安裝包,對網(wǎng)絡(luò)環(huán)境要求較高,不推薦這種,因為經(jīng)常因網(wǎng)絡(luò)原因安裝失敗。不過還是要簡單介紹一下這種安裝方式。
在Arduino IDE下載ESP8266開發(fā)包,首先是找到菜單里的:文件->首選項
然后在“附件開發(fā)板管理網(wǎng)址”中輸入: http://arduino.esp8266.com/stable/package_esp8266com_index.json
接著在:工具->開發(fā)板->開發(fā)板管理器,點擊開發(fā)板管理器
輸入esp8266,查看esp8266搜索結(jié)果,在線安裝。
在線安裝會很慢,容易失敗。
3.2 離線安裝(推薦)
使用下載好的離線安裝包(exe文件),一鍵安裝,十分的方便
注:我的離線包是從這里下載的:https://www.arduino.cn/thread-76029-1-1.html
安裝后,就可以看到ESP8266的相關(guān)資源了。
4 簡單測試程序
編寫一個簡單的連網(wǎng)測試程序,測試一下ESP8266的基本功能。
4.1 Arduino編程快速上手
Arduino編程非常容易上手,它的基礎(chǔ)框架就是一個初始和一個主循環(huán):
//初始化
void setup()
{
Serial.begin(9600);
Serial.println("esp8266 test");
initWiFi();
}
//主循環(huán)
void loop()
{
Serial.println("hello esp8266");
delay(1000);
}
初始化就是setup函數(shù),我們可以在這里進(jìn)行一些基礎(chǔ)的初始化,比如串口初始化就是調(diào)用:
Serial.begin(9600);
指定波特率9600,這個串口也是板子的供電口和程序下載口,通過Arduino IDE自帶的串口監(jiān)視器即可查看串口輸出信息,不用再打開其它的串口助手之類的軟件,用起來十分的方便。
此外,還可以將自己寫的一些初始化函數(shù)放到setup函數(shù)中,用于程序開機(jī)時初始化,比如我們自己寫的WIFI初始化函數(shù):initWiFi()。
主循環(huán)就是loop函數(shù),類似于單片機(jī)開發(fā)中的main函數(shù)里的while(1){},我們可以在這里進(jìn)行程序邏輯代碼的編寫,比如每隔1秒循環(huán)打印一些信息:
Serial.println("hello esp8266");
delay(1000);
這個delay函數(shù)也是Arduino自帶的,單位是毫秒。
4.2 WIFI連網(wǎng)測試程序
Arduino的編程語言,其實就是C++,當(dāng)然也支持包含頭文件以及類的操作。
比如要使用WIFI功能,需要先包含ESP8266WiFi.h這個頭文件。
ESP8266WiFi這個庫的內(nèi)部已經(jīng)幫我們實現(xiàn)了各種WIFI操作的各種功能函數(shù),我們只需要實例化一個WiFiClient對象,就可以操作實現(xiàn)各種功能了:
#include
const char ssid[] = "xxxxx"; //WiFi名
const char pass[] = "xxxxx"; //WiFi密碼
WiFiClient client;
WIFI初始化的流程也很簡單,主要有3步:
配置WIFI為Station模式,即我們的ESP8266作為一個WIFI使用設(shè)備
關(guān)于WIFI的工作模式(STA模式與AP模式,可參考我之前的文章:)
傳入WIFI熱點的ssid和密碼,使得ESP8266連接到熱點
讀取WIFI連接狀態(tài),等待連接成功
//初始化WIFI
void initWiFi()
{
Serial.print("Connecting WiFi...");
WiFi.mode(WIFI_STA); //配置WIFI為Station模式
WiFi.begin(ssid, pass); //傳入WIFI熱點的ssid和密碼
while (WiFi.status() != WL_CONNECTED) //等待連接成功
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); //打印自己的IP地址
}
4.3 測試效果
Arduino的操作界面也十分的簡潔,最左邊的編譯,第二個是編譯+燒錄,最右邊那個放大鏡圖標(biāo)是串口監(jiān)視器,可以直接查看板子的串口輸出。比如運行我們的測試程序后,就可以看到如下的串口打印信息了:
另外,注意在編譯和下載時,要選對開發(fā)板的型號和串口號:
5 總結(jié)
本篇介紹了Arduino IDE的安裝、ESP8266開發(fā)包的安裝以及Arduino編程的快速入門來測試ESP8266的連網(wǎng)功能。
-
嵌入式
+關(guān)注
關(guān)注
5094文章
19184瀏覽量
307856 -
IDE
+關(guān)注
關(guān)注
0文章
341瀏覽量
46897 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187902 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45356
發(fā)布評論請先 登錄
相關(guān)推薦
評論