在本教程中,我們使用 ESP8266 將 STM32F103C8 連接到互聯(lián)網(wǎng)。在這里,我們將ESP8266 Wi-Fi 模塊與我們的藍(lán)丸 STM32F103C8 板接口,并將數(shù)據(jù)發(fā)送到 ESP8266 網(wǎng)絡(luò)服務(wù)器上托管的網(wǎng)頁。
所需組件
藍(lán)丸STM32F103C8板
ESP8266 無線無線模塊
筆記本電腦和無線網(wǎng)絡(luò)熱點
ESP8266 無線無線模塊
大多數(shù)人將 ESP8266 稱為 WIFI 模塊,但它實際上是一個微控制器。ESP8266 是樂鑫公司(一家總部位于上海的公司)開發(fā)的微控制器的名稱。該微控制器具有執(zhí)行WIFI相關(guān)活動的能力,因此被廣泛用作WIFI模塊。
接地(0 V)
發(fā)射,傳輸數(shù)據(jù)位 X
GPIO 2,通用輸入/輸出 2 號
CH_PD,芯片掉電
GPIO 0,通用輸入/輸出編號 0
瑞星病,復(fù)位
接收數(shù)據(jù)位 X
電壓調(diào)節(jié)比 (+3.3 V)
AT 命令用于與 ESP8266 通信。下表顯示了一些有用的 AT 命令
電路圖和連接
下圖顯示了STM32和ESP8266無線模塊之間的連接。
請參閱下表,將 ESP8266 引腳與 STM32 引腳連接:
SMT32F103C8具有三套UART串行通信。在下圖中,您可以看到相同的以下引腳:
ESP8266 使用串行通信與微控制器進行交互。所以這里 ESP8266 的 TX 和 RX 都與 STM32 板的串行 2 端口 (PA2 和 PA3) 連接。
工作和代碼解釋
ESP8266 與 STM32 的接口工作非常簡單。您可以在本教程末尾的視頻以及代碼中找到完整的工作。
我們使用arduino IDE編寫代碼并將其上傳到STM32。了解有關(guān)使用Arduino IDE對STM32板進行編程的更多信息。
首先,我們需要按照電路圖中所示進行電路連接。上傳代碼后,打開串行監(jiān)視器(工具>>串行監(jiān)視器)以查看發(fā)生的情況。您將在串行監(jiān)視器上看到IP地址,從串行監(jiān)視器復(fù)制IP地址并將其粘貼到瀏覽器中,然后單擊Enter以查看我們的網(wǎng)頁。請記住將計算機和 ESP8266 模塊連接到同一 Wi-Fi 網(wǎng)絡(luò)上。
完整的代碼在最后給出,并通過注釋很好地解釋了,在這里我們解釋了其中的幾個重要部分。
首先,我們使用以下兩個語句開始串行監(jiān)視器和 ESP8266 的串行通信:
Serial.println(cmd);
Serial2.println(cmd);
注意:我使用過STM32串行2端口的引腳(PA2,PA3),因為它可以承受3.3V。
然后,我們需要讓 ESP8266 準(zhǔn)備就緒,方法是通過重置任何舊的已連接的 AP 并將其設(shè)置為 AP 和 STA 來退出任何舊的 AP
connect_wifi("AT",100); //Sends AT command with time(Command for Acknowledgement)
connect_wifi("AT+CWMODE=3",100); //Sends AT command with time (For setting mode of Wi-Fi)
connect_wifi("AT+CWQAP",100); //Sends AT command with time (for Quit AP)
connect_wifi("AT+RST",5000); //Sends AT command with time (For RESETTING WIFI)
然后將ESP8266 與無線網(wǎng)絡(luò)連接。您必須填寫您的Wi-Fi詳細(xì)信息,如下面的代碼所示:
connect_wifi("AT+CWJAP="Pramo","pokemon08"",7000); //provide your WiFi username and password here
然后我們獲取 ESP8266 模塊的 IP 地址,并使用下面的代碼將其顯示在串行監(jiān)視器上
Serial2.println("AT+CIFSR"); //GET IP AT COMMAND
if(Serial2.find("STAIP,")) //This finds the STAIP that is the STATIC IP ADDRESS of ESP8266
Serial.print(IP); //prints IP address in Serial monitor
接下來,我們將為網(wǎng)頁編寫 HTML 代碼。要將HTML代碼轉(zhuǎn)換為Arduino代碼,您可以使用此鏈接。
webpage = "
Welcome to Circuit Digest
"; //This is the heading line with black font colour
String name="
Circuit Digest
A community of electrical and electronics students, engineers and makers
";
String data="
Data Received Successfully.....
"; //These two lines are of two paragraph
webpage = "
接下來在空發(fā)送()函數(shù)中,我們使用發(fā)送網(wǎng)絡(luò)數(shù)據(jù)函數(shù)打印了HTML,并使用AT + CIPCLOSE = 0關(guān)閉了服務(wù)器連接
void Send() //This function contains data to be sent to local server
{
webpage = "
Welcome to Circuit Digest
";
sendwebdata(webpage);
webpage=name;
sendwebdata(webpage);
delay(1000);
webpage = "
webpage+=data;
sendwebdata(webpage);
Serial2.println("AT+CIPCLOSE=0"); //Closes the server connection
}
完成所有工作后,您可以通過在任何 Web 瀏覽器中打開 ESP8266 的 IP 并單擊網(wǎng)頁上顯示的鏈接來測試工作,單擊此處進入 circuitdigest.com,如下所示
單擊鏈接后,您會在網(wǎng)頁上看到一條文本,上面寫著“數(shù)據(jù)已成功接收.....”
-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11105瀏覽量
103018 -
STM32F103C8
+關(guān)注
關(guān)注
1文章
23瀏覽量
8074 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
44840
發(fā)布評論請先 登錄
相關(guān)推薦
評論