0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

arduino(2)--通過ESP8266模塊實(shí)現(xiàn)串口接收數(shù)據(jù),使用TCP協(xié)議進(jìn)行局域網(wǎng)通信

嵌入式單片機(jī)MCU開發(fā) ? 來源:嵌入式單片機(jī)MCU開發(fā) ? 作者:嵌入式單片機(jī)MCU開 ? 2022-11-14 16:17 ? 次閱讀

由于調(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)買的兼容arduinoESP8266模塊。

具體的配置在我博客上章有講,鏈接如下: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ù)器。

在這里插入圖片描述
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1554

    瀏覽量

    76509
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6469

    瀏覽量

    187053
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    962

    瀏覽量

    44999
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ESP8266串口WiFi模塊的基本使用和配置教程

    局域網(wǎng)通信實(shí)現(xiàn)聯(lián)網(wǎng)功能。 雖然“WiFi門鎖”一直拖著還沒弄好,但WiFi模塊卻玩了很久。是時(shí)候介紹下ESP8266的基本使用和配置了。 內(nèi)容簡(jiǎn)介 讓硬件聯(lián)網(wǎng)一直以來都是比較麻煩的事
    的頭像 發(fā)表于 12-31 09:53 ?12w次閱讀

    CC2530采用ESP8266與手機(jī)APP通信

    配置為建立一個(gè)TCP服務(wù)器并監(jiān)聽端口號(hào)。CC2530將使用其串口ESP8266進(jìn)行通信,并通過
    的頭像 發(fā)表于 05-23 09:15 ?3772次閱讀

    局域網(wǎng)ESP8266傳輸數(shù)據(jù)會(huì)很慢是怎么回事?

    局域網(wǎng)中使用esp8266傳輸數(shù)據(jù)時(shí)碰到了一個(gè)問題,我將esp8266作為服務(wù)器,讓它和手機(jī)建立TCP連接,以便于實(shí)時(shí)傳輸
    發(fā)表于 07-15 06:41

    arduino(2)--通過ESP8266模塊實(shí)現(xiàn)串口接收數(shù)據(jù),使用TCP協(xié)議進(jìn)行局域網(wǎng)通信

    由于調(diào)試機(jī)器需要打印數(shù)據(jù)來查看程序是否正常運(yùn)行,將MCU的串口線接入到電腦需要很長(zhǎng)的延長(zhǎng)線,而且機(jī)器的移動(dòng)會(huì)變的很不方便,故使用8266進(jìn)行局域網(wǎng)通
    發(fā)表于 09-06 16:34

    ESP8266系列模塊初始化成可以O(shè)TA,通過Web頁進(jìn)行升級(jí)(1)

    ,還具有MCU功能,可以對(duì)IO腳進(jìn)行輸入輸出控制,完全可以替代Arduino模塊。還可以通過域名直接訪問(局域網(wǎng)內(nèi)),
    發(fā)表于 09-18 21:24

    基于MicroPython結(jié)合ESP8266模塊實(shí)現(xiàn)TCP通信(AT指令版)

    -01)的使用。- 進(jìn)一步學(xué)習(xí)TPYBoardv10x中UART模塊的使用。- 結(jié)合ESP-01模塊完成局域網(wǎng)內(nèi)的TCP
    發(fā)表于 06-04 10:20

    使用esp8266實(shí)現(xiàn)STM32聯(lián)網(wǎng)(最簡(jiǎn)單USART方法)

    上一篇 esp8266怎么配置esp8266和USB轉(zhuǎn)TTL連接esp8266簡(jiǎn)單介紹esp8266連接路由器esp8266
    發(fā)表于 11-22 11:51 ?1.3w次閱讀

    esp8266-SDK的串口發(fā)送和中斷接收

    最近剛開始玩ESP8266這個(gè)模塊,主要是用在兩個(gè)ESP8266之間的通信上,進(jìn)行數(shù)據(jù)的傳輸。主要是把兩個(gè)
    發(fā)表于 11-23 15:02 ?2w次閱讀

    ESP8266 WIFI模塊的資料和使用概述

    5V WiFi ESP8266 WiFi模組和微控制器,可通過手機(jī)APP向模塊發(fā)送串口指令實(shí)現(xiàn)局域網(wǎng)
    發(fā)表于 11-15 08:00 ?41次下載
    <b class='flag-5'>ESP8266</b> WIFI<b class='flag-5'>模塊</b>的資料和使用概述

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

    (ARM CortexM3是3級(jí)流水線),最大時(shí)鐘速度為160MHz,可以使用高達(dá)16MB的外部SPI Flash。 該模塊采用串口與MCU(或其他串口設(shè)備)通信,內(nèi)置
    發(fā)表于 11-19 13:06 ?79次下載
    STM32-<b class='flag-5'>ESP8266</b>wifi<b class='flag-5'>模塊</b><b class='flag-5'>實(shí)現(xiàn)</b>

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

    的 LED燈Esp8266 V3 開發(fā)板V3 開發(fā)板的MCU為esp8266,并且板載了USB轉(zhuǎn)串口模塊,使得我們可以通過
    發(fā)表于 12-05 14:51 ?55次下載
    <b class='flag-5'>esp</b>筆記(<b class='flag-5'>2</b>)使用<b class='flag-5'>Arduino</b> IDE 開發(fā) <b class='flag-5'>esp8266</b>

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

    手機(jī)與ESP8266模塊通信本人在搞手機(jī)與ESP8266通信和手機(jī)與藍(lán)牙通信大同小異,只不過藍(lán)牙
    發(fā)表于 12-16 16:47 ?24次下載
    手機(jī)與<b class='flag-5'>ESP8266</b><b class='flag-5'>模塊</b><b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>通信</b>

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

    串口與MCU通信,內(nèi)置 TCP/IP 協(xié)議棧,實(shí)現(xiàn)串口與 WiFi 之間的裝換。?
    發(fā)表于 01-04 18:59 ?80次下載
    <b class='flag-5'>ESP8266</b>使用教程之初識(shí)

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

    將介紹通過MQTT協(xié)議連接ONENET,實(shí)現(xiàn)ESP8266與ONENET平臺(tái)數(shù)據(jù)交互一、設(shè)計(jì)目標(biāo)實(shí)現(xiàn)
    發(fā)表于 01-12 19:58 ?53次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>通過</b>MQTT<b class='flag-5'>協(xié)議</b>連接ONENET

    如何通過Arduino UNO與ESP8266通信

    電子發(fā)燒友網(wǎng)站提供《如何通過Arduino UNO與ESP8266通信.zip》資料免費(fèi)下載
    發(fā)表于 02-08 15:57 ?6次下載
    如何<b class='flag-5'>通過</b><b class='flag-5'>Arduino</b> UNO與<b class='flag-5'>ESP8266</b><b class='flag-5'>通信</b>