由于調(diào)試機(jī)器需要打印數(shù)據(jù)來查看程序是否正常運(yùn)行,將MCU的串口線接入到電腦需要很長(zhǎng)的延長(zhǎng)線,而且機(jī)器的移動(dòng)會(huì)變的很不方便,故使用8266進(jìn)行局域網(wǎng)通信,通過wifi將數(shù)據(jù)直接發(fā)送到電腦,這樣調(diào)試起來更加的靈活。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個(gè)開發(fā)板,這里我準(zhǔn)備的是淘寶購(gòu)買的兼容arduino的ESP8266模塊。
具體的配置在我博客上章有講,鏈接如下:ESP8266配置
端口連接
由于主要是將mcu的數(shù)據(jù)通過wifi打印出去,故接線如下所示,8266的TX接MCU的RX,RX接MCU的TX。
網(wǎng)絡(luò)調(diào)試助手
下載地址如下:點(diǎn)擊下載
代碼
執(zhí)行的步驟如下:
1.連接到指定的wifi網(wǎng)絡(luò)。
2.連接指定客戶端要連接的服務(wù)器的地址。
3.檢驗(yàn)是否連接到wifi網(wǎng)絡(luò)和服務(wù)器。
4.串口接收數(shù)據(jù)發(fā)送到服務(wù)器。
5.服務(wù)器接收數(shù)據(jù)同時(shí)打印在服務(wù)器。
#include
#define led 2 //發(fā)光二極管連接在8266的GPIO2上
const char *ssid = "KSW2";//這里寫入網(wǎng)絡(luò)的ssid
const char *password = "KSW2123456789aa";//wifi密碼
const char *host = "192.168.1.151";//修改為Server服務(wù)端的IP,即你電腦的IP,確保在同一網(wǎng)絡(luò)之下。
WiFiClient client;//聲明一個(gè)客戶端對(duì)象,用于與服務(wù)器進(jìn)行連接
const int tcpPort = 8266;//修改為你建立的Server服務(wù)端的端口號(hào),此端口號(hào)是創(chuàng)建服務(wù)器時(shí)指定的。
static String comdata = "";
static String val = "";
void setup()
{
Serial.begin(115200);
pinMode(led,OUTPUT);
delay(10);
Serial.println();
Serial.print("Connecting to ");//會(huì)通過usb轉(zhuǎn)tll模塊發(fā)送到電腦,通過ide集成的串口監(jiān)視器可以獲取數(shù)據(jù)。
Serial.println(ssid);
WiFi.begin(ssid, password);//啟動(dòng)
//在這里檢測(cè)是否成功連接到目標(biāo)網(wǎng)絡(luò),未連接則阻塞。
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
}
//幾句提示
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop()
{
/******************串口接受數(shù)據(jù)************************/
while (Serial.available() > 0) // 串口收到字符數(shù)大于零。
{
comdata += char(Serial.read());
}
/******************串口打印數(shù)據(jù)************************/
if(comdata!="")//如果接受到數(shù)據(jù)
{
client.print(comdata);//向服務(wù)器發(fā)送數(shù)據(jù)
}
comdata="";//清空數(shù)據(jù)
if (client.connected()) //嘗試訪問目標(biāo)地址,如果沒連接上LED燈滅
digitalWrite(led, LOW);
else
digitalWrite(led, HIGH);
while (!client.connected())//若未連接到服務(wù)端,則客戶端進(jìn)行連接。
{
if (!client.connect(host, tcpPort))//實(shí)際上這一步就在連接服務(wù)端,如果連接上,該函數(shù)返回true
{
Serial.println("連接中....");
delay(500);
}
}
while (client.available())//available()表示是否可以獲取到數(shù)據(jù)
{
// char val = client.read();//read()表示從網(wǎng)絡(luò)中讀取數(shù)據(jù)。
while (client.available() > 0) // 串口收到字符數(shù)大于零。
{
val += char(client.read());
}
client.print("text:"+val);
val="";//清空數(shù)據(jù)
}
delay(1);
}
功能說明
1.8266啟動(dòng)將會(huì)打印連接的wifi名稱和8266自身的IP地址。
2.若未連接上服務(wù)器,將一直打印連接中。
在這里插入圖片描述
3.服務(wù)器應(yīng)該設(shè)置8266對(duì)應(yīng)的端口號(hào)。
4.服務(wù)器發(fā)送數(shù)據(jù)將會(huì)在服務(wù)器中打印出對(duì)應(yīng)的數(shù)據(jù)。
5.mcu發(fā)送的數(shù)據(jù)將會(huì)通過wifi發(fā)送到服務(wù)器。
審核編輯:湯梓紅
-
串口
+關(guān)注
關(guān)注
14文章
1580瀏覽量
78334 -
Arduino
+關(guān)注
關(guān)注
188文章
6485瀏覽量
189691 -
ESP8266
+關(guān)注
關(guān)注
50文章
963瀏覽量
46518
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ESP8266串口WiFi模塊的基本使用和配置教程
CC2530采用ESP8266與手機(jī)APP通信
在局域網(wǎng)中ESP8266傳輸數(shù)據(jù)會(huì)很慢是怎么回事?
arduino(2)--通過ESP8266模塊實(shí)現(xiàn)串口接收數(shù)據(jù),使用TCP協(xié)議進(jìn)行局域網(wǎng)通信
ESP8266系列模塊初始化成可以O(shè)TA,通過Web頁進(jìn)行升級(jí)(1)
基于MicroPython結(jié)合ESP8266模塊實(shí)現(xiàn)TCP通信(AT指令版)
使用esp8266實(shí)現(xiàn)STM32聯(lián)網(wǎng)(最簡(jiǎn)單USART方法)
esp8266-SDK的串口發(fā)送和中斷接收
ESP8266 WIFI模塊的資料和使用概述

STM32-ESP8266wifi模塊實(shí)現(xiàn)

esp筆記(2)使用Arduino IDE 開發(fā) esp8266

手機(jī)與ESP8266模塊TCP協(xié)議通信

ESP8266使用教程之初識(shí)

ESP8266通過MQTT協(xié)議連接ONENET

如何通過Arduino UNO與ESP8266通信

評(píng)論