----国外课栈
如果您考虑未来的技术,那么您脑海中立即出现的两个名称是人工智能(AI)和物联网(IoT)。 AI仍处于初始阶段,还有很多东西需要开发。但物联网正处于成长阶段,许多基于物联网的产品 已经在市场上销售。此外,市场上还有许多工具和硬件可以让您的产品与物在网路上“交谈”。其中 ESP8266 是最受欢迎,便宜且易于使用的模块,可以将您的硬件连接到互联网。
在本教程中,我们使用ESP8266将STM32F103C8连接到互联网。在这里,我们将 ESP8266 Wi-Fi模块与我们的Blue Pill STM32F103C8板连接 ,并将数据发送到ESP8266网络服务器上托管的网页。
所需组件
Blue Pill STM32F103C8板
ESP8266 Wi-Fi模块
笔记本电脑和Wi-Fi热点
ESP8266 Wi-Fi模块
大多数人将ESP8266称为WIFI模块,但它实际上是一个微控制器。ESP8266是由Espressif Systems开发的微控制器的名称,Espressif Systems是一家位于上海的公司。该微控制器具有执行WIFI相关活动的能力,因此被广泛用作WIFI模块。
GND,地(0 V)
TX,发送数据位X
GPIO 2,通用输入/输出2号
CH_PD,芯片掉电
GPIO 0,通用输入/输出0号
RST,复位
RX,接收数据位X
VCC,电压(+3.3 V)
AT命令用于与ESP8266通信。下表显示了一些有用的AT命令
电路图和连接
下图显示了 STM32和ESP8266 Wi-Fi模块之间的连接。
ESP8266使用串行通信与微控制器进行交互。因此,ESP8266的TX和RX与STM32板的Serial2端口(PA2和PA3)相连。
工作和代码说明
将 ESP8266 与 STM32 接口的工作非常简单。我们使用Arduino IDE编写代码并将其上传到STM32。首先,我们需要进行如电路图中所示的电路连接。上传代码后,打开串行监视器(工具>>串行监视器)以查看发生的情况。您将在串行监视器上看到IP地址,从串行监视器复制IP地址并将其粘贴到浏览器中,然后单击Enter以查看我们的网页。请记住在同一Wi-Fi网络上连接计算机和ESP8266模块。
首先,我们使用以下两个语句开始串行监视器和ESP8266的串行通信:
Serial.println(cmd);
Serial2.println(cmd);
注意: 我使用了STM32的Serial2端口的引脚(PA2,PA3),因为它具有3.3V容差。
然后, 我们需要通过重置任何旧的连接 AP,并将 Wi-Fi 模式设置为 AP & STA 来准备 ESP8266
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网络连接。您必须填写您的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 xx
"; //This is the heading line with black font colour
String name="xx
A community of electrical and electronics students, engineers and makers
";
String data="Data Received Successfully.....
"; //These two lines are of two paragraph
webpage = "Click Here to get into xx.com"; //At last we insert the hyperlink to link the website address
接下来在 void send() 函数中,我们使用sendwebdata 函数打印HTML 并使用AT + CIPCLOSE = 0
关闭服务器连接
void Send() //This function contains data to be sent to local server
{
webpage = "Welcome to xx
";
sendwebdata(webpage);
webpage=name;
sendwebdata(webpage);
delay(1000);
webpage = "Click Here to get into xx.com";
webpage+=data;
sendwebdata(webpage);
Serial2.println("AT+CIPCLOSE=0"); //Closes the server connection
}
完成所有工作后,您可以在任何Web浏览器中打开ESP8266的IP来测试工作,然后单击网页上显示的链接,“Click Here to get into xx.com”,如下所示(抱歉,涉及隐私部分被屏蔽)
点击链接后,您会在网页上看到“收到的数据成功…”的文字。
点击此链接查看完整代码