国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信

這篇具有很好參考價值的文章主要介紹了【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

承接上文WIFI上位機部分:【上位機】通過WIFI上位機與網(wǎng)絡(luò)調(diào)試助手通信繪制曲線,現(xiàn)階段實現(xiàn)了STM32單片機與ESP8266WIFI模塊作為下位機與WIFI上位機通信。

一、ESP8266模塊與STM32連接

ATK-ESP8266 是 ALIENTEK 推出的一款高性能的 UART-WiFi(串口-無線)模塊,此處使用的是正點原子團隊自主開發(fā)的ATK-ESP-01模塊。該模塊通過串口與單片機(此處使用啟明欣欣的STM32F407ZGT6)進行通信,只需連接四個引腳,使用十分方便。
在與單片機使用前,建議先連接電腦,使用串口調(diào)試助手與網(wǎng)絡(luò)調(diào)試助手進行互相通信的測試,確保WIFI模塊的正常及網(wǎng)絡(luò)的連通。參考教程:ESP8266模塊使用教程
測試完畢后,可與單片機串口連接,如下所示:
【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信

二、單片機代碼

對于ESP8266的使用,其本質(zhì)是使用串口發(fā)送AT指令操縱模塊,可參考:AT指令集,故只需熟悉基本指令,便可編寫相關(guān)代碼。以下是部分操作指令:

#include "esp8266.hpp"
using namespace ESP8266_Space;

extern "C" void MineMain(void)
{
	char buf[339];

	wifi.init();
	HAL_Delay(100);

	//wifi.sendCmd("AT+RESTORE", "ODDK", 60000);
	//wifi.sendCmd("AT+CWMODE=1", "OK" , 100);  //切換到STA模式
	//wifi.sendCmd("AT+RST", "OK" , 100);  //切換到STA模式
	//HAL_Delay(60000);
	
	while(wifi.sendCmd("AT", "OK", 100) == Timeout){
		wifi.quitTrans(); //退出透傳
	}

	wifi.sendCmd("ATE0"    , "OK" , 100);  //關(guān)閉回顯
	//wifi.sendCmd("AT+CWLAP", "OK" , 5000); //顯示可加入的AP

	/* 加入wifi */
	sprintf(buf,"AT+CWJAP=\"%s\",\"%s\"","dxxy16-403-1","1234567890");
	wifi.sendCmd(buf, "WIFI GOT IP", 15000); //加入AP
	wifi.send((char*)"", "OK"         , 2000); //加入AP

	/* 與PC機建立連接 */
	sprintf(buf,"AT+CIPSTART=\"%s\",\"%s\",%s", "TCP","192.168.0.171","8086");
	wifi.sendCmd(buf, "OK", 15000);

	/* 進入透傳模式 */
	//wifi.sendCmd("AT+CIPMODE=1", "OK", 200); //開啟透傳模式
	//wifi.sendCmd("AT+CIPSEND"  , ">", 100); //進入透傳

	for(;;){
		static char messa[339] = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40|"\
			"1,1,1,0.994,0.993,0.991,0.889,0.875,0.866,0.850,0.838,0.816,0.806,0.789,0.775,0.759,0.745,0.739,0.724,0.715,0.710,0.689,0.667,"\
		"0.658,0.645,0.635,0.626,0.598,0.578,0.568,0.559,0.496,0.481,0.472,0.452,0.435,0.418,0.406,0.389,0.377";
		sprintf(buf,"%s\r\n",messa);
		HAL_Delay(500);
		//非透傳
		wifi.sendCmd("AT+CIPSEND=676",">",100); //將要發(fā)送676個數(shù)據(jù)
		wifi.send(buf, "SEND OK", 100);
		
		//透傳模式
		//wifi.sendNoAck((uint8_t *)buf);
	}
}

這里使用了模塊的STA模式,即WIFI模塊作為一個客戶端(Client)與WIFI上位機(Server)通信,原理與上一篇文章相似。只需要更改相應(yīng)的指令,就可切換至AT或AT/STA模式,但AT模式與STA模式的使用方法稍有不同(AT模式時模塊作為服務(wù)端)。我們使用一個char型數(shù)組將所要發(fā)送的消息存儲起來,注意格式與上位機所規(guī)定的協(xié)議保持一致。
使用另外一個串口將單片機與電腦相連,好處是能夠觀察WIFI模塊是否已連接且正常工作:

#include "esp8266.hpp"
#include "string.h"

extern DMA_HandleTypeDef hdma_usart6_rx;//使用了串口的DMA,usart6與電腦相連

CPP_UART test_uart = CPP_UART(&huart3);
ESP8266 wifi = ESP8266(&huart6, &hdma_usart6_rx, &htim6);

/**
 * @brief  ESP8266 類 構(gòu)造函數(shù)
 * @param  huart  : 連接ESP8266所用到的串口
 * @param  dma_rx : 串口接收對應(yīng)的DMA
 * @param  htim   : 用于計數(shù)是否超時的定時器
 * @note  huart 對應(yīng)的串口配置要求正確,波特率用默認的115200(也可自己更改,
 * @            但要注意ESP8266本身接收串口的速率),并且需要打開中斷
 * @     dma_rx 串口設(shè)置dma的接收,一次一個字節(jié),循環(huán)模式(circle)
 * @       htim 不用開啟定時器中斷,不用關(guān)心預(yù)分頻系數(shù)和自動重裝載值和OnePulse模式
 * @retval None
 **/
ESP8266::ESP8266(UART_HandleTypeDef* huart, DMA_HandleTypeDef *dma_rx, TIM_HandleTypeDef *htim)
	:uart(huart)
{
	this->dma_rx     = dma_rx;
	this->tim        = htim;
	this->uart_state = Idle;
	this->mode       = NOINIT;
}

完整源碼:ESP8266模塊使用代碼(基于C++)
這里可能出現(xiàn)的問題是可能會連接不上或者出現(xiàn)busy提示,此時重啟一下模塊并重新連接。程序燒錄后執(zhí)行效果如下:
【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信

三、總結(jié)

單片機數(shù)據(jù)通過串口發(fā)送給WIFI模塊,WIFI模塊通過無線通信方式發(fā)送至電腦上位機,實現(xiàn)了基本的物聯(lián)網(wǎng)功能,此處展示的僅為一個簡單的測試。文章來源地址http://www.zghlxwxcb.cn/news/detail-449112.html

到了這里,關(guān)于【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32-連接wifi模塊(esp8266)

    STM32-連接wifi模塊(esp8266)

    目錄 1. ESP8266模塊介紹 1.1. 系統(tǒng)結(jié)構(gòu)圖 1.2. 功能介紹 ?1.3. AT指令說明 ?2. STM32連接ESP8266 3. ESP8266示例 3.1. ESP8266透傳模式 ?3.2. ESP8266上傳數(shù)據(jù)例程 樂鑫智能互聯(lián)平臺——ESP8266 擁有高性能無線 SOC,是一個完整且自成體系的 WiFi 網(wǎng)絡(luò)解決方案,能夠獨立運行,也可以作為 slave 搭

    2024年01月16日
    瀏覽(39)
  • esp8266WiFi模塊通過MQTT連接華為云

    esp8266WiFi模塊通過MQTT連接華為云

    最近 突然想做物聯(lián)網(wǎng)的項目,做一個類似遠程控制家里的設(shè)備,比如控制燈,電視機,空調(diào)這樣的,同時能夠?qū)⒓依锏臏貪穸鹊刃畔⒖梢詫崟r上傳到手機里。 剛開始認為這個不就是一個很簡單的項目嘛, 幾個小時 之內(nèi)就能做出來,可是沒想到諸事不順,遇到各種各樣的bu

    2023年04月20日
    瀏覽(31)
  • 【滄海拾昧】WiFi串口通信ESP8266模塊基本介紹(附野火WiFi透傳實例)

    【滄海拾昧】WiFi串口通信ESP8266模塊基本介紹(附野火WiFi透傳實例)

    #C0104 滄海茫茫千鐘粟,且拾吾昧一微塵 ——《滄海拾昧集》@CuPhoenix 【閱前敬告】 滄海拾昧集僅做個人學(xué)習(xí)筆記之用,所述內(nèi)容不專業(yè)不嚴(yán)謹(jǐn)不成體系 【如有問題必是本集記錄有謬,切勿深究】 ????WiFi串口通訊模塊是嵌入式初學(xué)者需要接觸到的一種常用模塊,可以用

    2024年02月02日
    瀏覽(24)
  • esp8266WIFI模塊教程:ATK-ESP8266——TCP網(wǎng)絡(luò)通訊和服務(wù)器連接

    esp8266WIFI模塊教程:ATK-ESP8266——TCP網(wǎng)絡(luò)通訊和服務(wù)器連接

    ??ATK-MW8266D 模塊是正點原子推出的一款高性能 UART-WIFI(串口-無線)模塊,ATK-MW8266D 模塊板載了正點原子公司自主研發(fā)的 ATK-ESP-01 模塊,該模塊通過 FCC、CE 認證,可直接用于出口歐美地區(qū)的產(chǎn)品。 ??ATK-MW8266D 模塊采用串口(LVTTL)與 MCU(或其他串口設(shè)備)通訊,且內(nèi)置

    2024年04月15日
    瀏覽(64)
  • STM32玩轉(zhuǎn)物聯(lián)網(wǎng)實戰(zhàn)篇:2.ESP8266 WIFI模塊TCP通信示例詳解

    STM32玩轉(zhuǎn)物聯(lián)網(wǎng)實戰(zhàn)篇:2.ESP8266 WIFI模塊TCP通信示例詳解

    開發(fā)板功能區(qū)分布圖 開發(fā)板俯視圖 ????ESP8266 WIFI模塊內(nèi)置TCP/IP網(wǎng)絡(luò)協(xié)議,模塊支持三種網(wǎng)絡(luò)模式,AP、STA和AP+STA模式,AP模式:模塊作為WIFI熱點,等待其他設(shè)備的連接,進行局域網(wǎng)的通信,STA模式:模塊作為客戶端通過路由器連接外網(wǎng),和服務(wù)器進行通信,AP+STA模式:兩

    2024年02月03日
    瀏覽(16)
  • ESP8266模塊教程,包含電路連接,固件燒錄,串口通信

    ESP8266模塊教程,包含電路連接,固件燒錄,串口通信

    Author : w2y ???????Date : 2022.06.28 資料下載: 鏈接:https://pan.baidu.com/s/1cSpXo7lVzewLXiB9PyWlvg?pwd=wh8a? 提取碼:wh8a? ? GPIO0 接地進入下載(燒錄)模式,不接進入運行模式 ? ? ? ? ? ? ? ? ? ? (下載模式)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (運行模式) MQTT_ESP-12S_D

    2024年02月01日
    瀏覽(38)
  • Arduino uno 通過esp8266WIFI模塊連接onenet平臺(TCP協(xié)議)(1接線、代碼篇)

    Arduino uno 通過esp8266WIFI模塊連接onenet平臺(TCP協(xié)議)(1接線、代碼篇)

    1.可以用esp8266開發(fā)板,也可以用esp01s,有引腳說明(左)或esp01(右) ?ESP8266Node-MCU(ESP-12E) esp01s接線如下: ?esp01接線: 2.代碼1:設(shè)置連接方式,WiFi賬號密碼,tcp協(xié)議等 打開串口監(jiān)視器(右上角放大鏡圖標(biāo)) 等待顯示“ok ready” 輸入AT 返回ok 輸入AT+RST 返回 ok 一長段亂碼

    2024年02月04日
    瀏覽(34)
  • STM32f103增加ESP8266模塊,通過Wifi用手機TCP服務(wù)端遠程與STM32通信

    STM32f103增加ESP8266模塊,通過Wifi用手機TCP服務(wù)端遠程與STM32通信

    提示:esp8266開啟透傳模式,連上路由器Wifi(電腦熱點),接入STM32串口引腳。另外手機TCP服務(wù)端是手機IP地址+串口號(大于8000滴) 最近對ESP8266模塊進行小了解,知道只要對8266通過串口發(fā)送AT指令進行配置其工作模式,就能夠通過手機調(diào)試APP創(chuàng)建什么TCP/UDP服務(wù)端/客戶端和8266進行

    2024年02月16日
    瀏覽(27)
  • stm32 的 ESP8266 wifi 模塊 (ESP - 12s) 的使用

    stm32 的 ESP8266 wifi 模塊 (ESP - 12s) 的使用

    1. ESP8266 的器件介紹 2. ESP2866外設(shè)? 的引腳? 3. 我所用的的ESP2866 的引腳圖 4. 代碼 編程的串口 5.wifi 的指令 1.?AT? ? ?測試指令 2.?AT+RST? ?重啟模塊 3.?AT+GMR??查看版本信息 4.?AT+RESTORE???恢復(fù)出廠設(shè)置 5.??AT+UART=115200,8,1,0,0? ?串口設(shè)置? 串口號, 數(shù)據(jù)位, 停止位,? 6.?

    2024年02月02日
    瀏覽(27)
  • STM32F103C8T6+ESP8266WIFI+DHT11模塊連接巴法云

    1.MCU:STM32F103C8T6 2.ESP8266:正點原子WIFI模塊 3.串口模塊:正點原子串口模塊 我們對Markdown編輯器進行了一些功能拓展與語法支持,除了標(biāo)準(zhǔn)的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫博客: ESP8266固件刷寫 我用的是安信可的固件,可以在官網(wǎng)上下載。正點

    2023年04月27日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包