在本教程中,我们使用 ESP8266 将 STM32F103C8 连接到互联网。在这里,我们将ESP8266 Wi-Fi 模块与我们的蓝丸 STM32F103C8 板接口,并将数据发送到 ESP8266 网络服务器上托管的网页。
所需组件
蓝丸STM32F103C8板
ESP8266 无线无线模块
笔记本电脑和无线网络热点
ESP8266 无线无线模块
大多数人将 ESP8266 称为 WIFI 模块,但它实际上是一个微控制器。ESP8266 是乐鑫公司(一家总部位于上海的公司)开发的微控制器的名称。该微控制器具有执行WIFI相关活动的能力,因此被广泛用作WIFI模块。
接地(0 V)
发射,传输数据位 X
GPIO 2,通用输入/输出 2 号
CH_PD,芯片掉电
GPIO 0,通用输入/输出编号 0
瑞星病,复位
接收数据位 X
电压调节比 (+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。了解有关使用Arduino IDE对STM32板进行编程的更多信息。
首先,我们需要按照电路图中所示进行电路连接。上传代码后,打开串行监视器(工具>>串行监视器)以查看发生的情况。您将在串行监视器上看到IP地址,从串行监视器复制IP地址并将其粘贴到浏览器中,然后单击Enter以查看我们的网页。请记住将计算机和 ESP8266 模块连接到同一 Wi-Fi 网络上。
完整的代码在最后给出,并通过注释很好地解释了,在这里我们解释了其中的几个重要部分。
首先,我们使用以下两个语句开始串行监视器和 ESP8266 的串行通信:
Serial.println(cmd);
Serial2.println(cmd);
注意:我使用过STM32串行2端口的引脚(PA2,PA3),因为它可以承受3.3V。
然后,我们需要让 ESP8266 准备就绪,方法是通过重置任何旧的已连接的 AP 并将其设置为 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 与无线网络连接。您必须填写您的Wi-Fi详细信息,如下面的代码所示:
connect_wifi("AT+CWJAP="Pramo","pokemon08"",7000); //provide your WiFi username and password here
然后我们获取 ESP8266 模块的 IP 地址,并使用下面的代码将其显示在串行监视器上
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
接下来,我们将为网页编写 HTML 代码。要将HTML代码转换为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 = "
接下来在空发送()函数中,我们使用发送网络数据函数打印了HTML,并使用AT + CIPCLOSE = 0关闭了服务器连接
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 并单击网页上显示的链接来测试工作,单击此处进入 circuitdigest.com,如下所示
单击链接后,您会在网页上看到一条文本,上面写着“数据已成功接收.....”