婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 基礎入門 >> Arduino開發學習 >> 正文

遠程控制通訊--基于Arduino + ESP8266控制LED燈

作者:佚名    文章來源:來源網絡    點擊數:    更新時間:2021-10-17

Arduino是許多智能硬件愛好者的首選,使用簡單快捷,而ESP8266模塊也是當前最為熱門的WIFI模塊。本項目完成了Arduino使用EDP協議通過ESP8266 WIFI模塊接入OneNET服務器,并通過在接入設備中創建的應用來實現遠程控制LED燈。

【1】硬件連接:

準備元件:

Arduino UNO

ESP8266 WIFI模塊

USB轉TTL連接線

硬件連線:

Arduino UNO USB轉TTL

D2-----------------RX

D3-----------------TX

GND---------------GND

Arduino UNO ESP8266

RX-----------------TX

TX-----------------RX

GND---------------GND

其中USB轉TTL連接電腦用于調試打印輸出,然后Arduino的串口連接ESP8266的串口。

實物連接如下如圖所示:

【2】ESP8266配置和EDP上傳數據介紹:

選用ESP8266串口WIFI模塊,通過AT指令控制WIFI模塊接入互聯網,依次完成與接入互聯網、與OneNet服務器建立TCP連接、傳輸數據等操作。

1)配置WIFI模塊;

模塊配置接入OneNet,依次發送如下幾個命令到WIFI模塊:

AT+CWMODE=3

AT+RST

AT+CIFSR

AT+CWJAP=“your ssid”,“password”

2)和OneNet服務器建立TCP連接,依次發送命令:

AT+CIPSTART=“TCP”,“183.230.40.39”,876 //和服務器建立TCP連接

AT+CIPMODE=1 //進入透明傳輸模式

AT+CIPSEND //開始傳輸

命令執行結果如下圖所示:

【3】創建設備和應用:

添加產品并創建接入設備,詳細創建步驟請查看:http://open.iot.10086.cn/doc/art243.html#66。其中數據傳輸協議選擇EDP。

在設備中添加應用,創建一個開關控件,在右側的屬性中選擇對應設備的switch0數據流 ·注意到屬性中有開關開值和開關關值兩個屬性,分別默認為1,0,這里不做修改(因為代碼中1為開,非1則為關) ·修改EDP命令內容為switch0:{v}(與代碼對應,代碼中會將冒號前的部分作為上傳的數據流ID,而將冒號之后的部分作為上傳是數據值) 這里的{v}是通配符當下發命令的時候,他將會被開關的開/關值取代,稍后我們將看到命令的內容。

編輯完成后點擊保存應用。

【4】軟件代碼:

其中Arduino開發板的D13作為被控制的LED燈,在程序中添加設備ID和APIKey。

/*
采用外接電源單獨供電,2 3口作為軟串口接PC機作為調試端
1 0為串口,連接WIFI模塊
*/
#include
#include "edp.c"
#define KEY "XpAhYrqhsZbk9eVqESnMJznDb3A=" //APIkey
#define ID "4051313" //設備ID
//#define PUSH_ID "680788"
#define PUSH_ID NULL
// 串口
#define _baudrate 115200
#define _rxpin 3
#define _txpin 2
#define WIFI_UART Serial
#define DBG_UART dbgSerial //調試打印串口
SoftwareSerial dbgSerial( _rxpin, _txpin ); // 軟串口,調試打印
edp_pkt *pkt;
/*
* doCmdOk
* 發送命令至模塊,從回復中獲取期待的關鍵字
* keyword: 所期待的關鍵字
* 成功找到關鍵字返回true,否則返回false
*/
bool doCmdOk(String data, char *keyword)
{
bool result = false;
if (data != "") //對于tcp連接命令,直接等待第二次回復
{
WIFI_UART.println(data); //發送AT指令
DBG_UART.print("SEND: ");
DBG_UART.println(data);
}
if (data == "AT") //檢查模塊存在
delay(2000);
else
while (!WIFI_UART.available()); // 等待模塊回復
delay(200);
if (WIFI_UART.find(keyword)) //返回值判斷
{
DBG_UART.println("do cmd OK");
result = true;
}
else
{
DBG_UART.println("do cmd ERROR");
result = false;
}
while (WIFI_UART.available()) WIFI_UART.read(); //清空串口接收緩存
delay(500); //指令時間間隔
return result;
}
void setup()
{
char buf[100] = {0};
int tmp;
pinMode(13, OUTPUT); //WIFI模塊指示燈
pinMode(8, OUTPUT); //用于連接EDP控制的發光二極管
WIFI_UART.begin( _baudrate );
DBG_UART.begin( _baudrate );
WIFI_UART.setTimeout(3000); //設置find超時時間
delay(3000);
DBG_UART.println("hello world!");
delay(2000);
while (!doCmdOk("AT", "OK"));
digitalWrite(13, HIGH); // 使Led亮
while (!doCmdOk("AT+CWMODE=3", "OK")); //工作模式
while (!doCmdOk("AT+CWJAP="PDCN","1234567890"", "OK"));
while (!doCmdOk("AT+CIPSTART="TCP","183.230.40.39",876", "CONNECT"));
while (!doCmdOk("AT+CIPMODE=1", "OK")); //透傳模式
while (!doCmdOk("AT+CIPSEND", ">")); //開始發送
}
void loop()
{
static int edp_connect = 0;
bool trigger = false;
edp_pkt rcv_pkt;
unsigned char pkt_type;
int i, tmp;
char num[10];
/* EDP 連接 */
if (!edp_connect)
{
while (WIFI_UART.available()) WIFI_UART.read(); //清空串口接收緩存
packetSend(packetConnect(ID, KEY)); //發送EPD連接包
while (!WIFI_UART.available()); //等待EDP連接應答
if ((tmp = WIFI_UART.readBytes(rcv_pkt.data, sizeof(rcv_pkt.data))) > 0 )
{
rcvDebug(rcv_pkt.data, tmp);
if (rcv_pkt.data[0] == 0x20 && rcv_pkt.data[2] == 0x00 && rcv_pkt.data[3] == 0x00)
{
edp_connect = 1;
DBG_UART.println("EDP connected.");
}
else
DBG_UART.println("EDP connect error.");
}
packetClear(&rcv_pkt);
}
while (WIFI_UART.available())
{
readEdpPkt(&rcv_pkt);
if (isEdpPkt(&rcv_pkt))
{
pkt_type = rcv_pkt.data[0];
switch (pkt_type)
{
case CMDREQ:
char edp_command[50];
char edp_cmd_id[40];
long id_len, cmd_len, rm_len;
char datastr[20];
char val[10];
memset(edp_command, 0, sizeof(edp_command));
memset(edp_cmd_id, 0, sizeof(edp_cmd_id));
edpCommandReqParse(&rcv_pkt, edp_cmd_id, edp_command, &rm_len, &id_len, &cmd_len);
DBG_UART.print("rm_len: ");
DBG_UART.println(rm_len, DEC);
delay(10);
DBG_UART.print("id_len: ");
DBG_UART.println(id_len, DEC);
delay(10);
DBG_UART.print("cmd_len: ");
DBG_UART.println(cmd_len, DEC);
delay(10);
DBG_UART.print("id: ");
DBG_UART.println(edp_cmd_id);
delay(10);
DBG_UART.print("cmd: ");
DBG_UART.println(edp_command);
//數據處理與應用中EDP命令內容對應
//本例中格式為 datastream:[1/0]
sscanf(edp_command, "%[^:]:%s", datastr, val);
if (atoi(val) == 1)
digitalWrite(13, HIGH); // 使Led亮
else
digitalWrite(13, LOW); // 使Led滅
packetSend(packetDataSaveTrans(NULL, datastr, val)); //將新數據值上傳至數據流
break;
default:
DBG_UART.print("unknown type: ");
DBG_UART.println(pkt_type, HEX);
break;
}
}
//delay(4);
}
if (rcv_pkt.len > 0)
packetClear(&rcv_pkt);
delay(150);
}
/*
* readEdpPkt
* 從串口緩存中讀數據到接收緩存
*/
bool readEdpPkt(edp_pkt *p)
{
int tmp;
if ((tmp = WIFI_UART.readBytes(p->data + p->len, sizeof(p->data))) > 0 )
{
rcvDebug(p->data + p->len, tmp);
p->len += tmp;
}
return true;
}
/*
* packetSend
* 將待發數據發送至串口,并釋放到動態分配的內存
*/
void packetSend(edp_pkt* pkt)
{
if (pkt != NULL)
{
WIFI_UART.write(pkt->data, pkt->len); //串口發送
WIFI_UART.flush();
free(pkt); //回收內存
}
}
void rcvDebug(unsigned char *rcv, int len)
{
int i;
DBG_UART.print("rcv len: ");
DBG_UART.println(len, DEC);
for (i = 0; i < len; i++)
{
DBG_UART.print(rcv[i], HEX);
DBG_UART.print(" ");
}
DBG_UART.println("");
}

【5】功能測試:

設備上電后,可以看到電腦串口打印輸出的內容,首先連接OneNET服務器:

連接成功后,可以看到設備在線狀態:

點擊設備應用中的開關按鈕,發送開關命令給設備:

設備接收命令后進行解析,并在串口打印輸出:

當解析到數據流switch0的值為1時設備開燈,Arduino 開發板的D13被點亮,相反為0時燈滅。

Tags:Arduino,遠程控制通訊  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
<button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • www.xxx亚洲| 青青视频在线播放| 免费一级特黄录像| 天堂…中文在线最新版在线| 国产成人三级视频| 亚洲一级片免费观看| 一区二区三区视频网| 日日躁夜夜躁aaaabbbb| 999在线免费视频| 亚洲黄色av网址| 五月花丁香婷婷| 国产资源中文字幕| 成人在线视频一区二区三区| 日本精品福利视频| 日韩亚洲欧美视频| 日韩精品一区二区三区色欲av| 国产99久久九九精品无码| 99色精品视频| 天天干天天av| 丁香色欲久久久久久综合网| www在线观看免费| 中文字幕永久视频| 欧美少妇一级片| 午夜免费福利小电影| 亚洲色精品三区二区一区| 超碰成人在线播放| www.在线观看av| aaaaaa亚洲| 亚洲国产精品影视| 欧美国产亚洲一区| 日本福利视频导航| 久色视频在线播放| 亚洲欧美日本一区二区三区| 日产精品久久久久久久蜜臀| 国产成人精品视频ⅴa片软件竹菊| 91丨九色丨蝌蚪| av免费观看国产| 免费看av软件| 日本精品免费在线观看| 日韩欧美中文视频| 亚洲欧美另类动漫| 成人网站免费观看入口| 999久久久精品视频| 黄色一级在线视频| 特级黄色录像片| 性欧美极品xxxx欧美一区二区| 浴室偷拍美女洗澡456在线| 久久精品99国产| 欧美这里只有精品| 小说区视频区图片区| 激情视频综合网| 欧美日韩性生活片| 肉大捧一出免费观看网站在线播放| 青青草av网站| 国内外成人激情视频| 国产在线视频在线| 久久www视频| 色撸撸在线观看| 加勒比av中文字幕| 五月天av在线播放| av在线网址导航| 欧美激情成人网| 国产xxxxx在线观看| 欧美 丝袜 自拍 制服 另类| 国产av熟女一区二区三区| 国产精品亚洲天堂| 在线观看日本www| 青青草原国产在线视频| 超碰在线播放91| 免费一区二区三区在线观看 | 真人抽搐一进一出视频| 亚洲爆乳无码精品aaa片蜜桃| 欧美xxxxxbbbbb| 日韩视频一二三| 97超碰国产精品| 久久久999视频| 日韩av在线综合| 在线免费视频一区| 97超碰人人爽| 欧美大片免费播放| 极品粉嫩国产18尤物| 成人观看免费完整观看| 自拍偷拍 国产| 国产精品久久久久久久99| 91视频福利网| 欧美黑人经典片免费观看| 国产精品99久久免费黑人人妻| 69久久久久久| 国产美女作爱全过程免费视频| 国产自产在线视频| 亚洲综合在线网站| 欧美日韩理论片| 免费无码不卡视频在线观看| 男人操女人免费软件| 中文字幕成人免费视频| 日韩人妻精品一区二区三区| 妺妺窝人体色777777| 日本888xxxx| 国产女教师bbwbbwbbw| 久久国产色av免费观看| 国产成年人在线观看| 久久综合色视频| 26uuu成人| 欧美精品无码一区二区三区| 国产四区在线观看| 日本精品一区在线观看| 午夜啪啪免费视频| 国产一区二区视频免费在线观看| 亚洲图片 自拍偷拍| 精品久久久久av| 日韩一级片免费视频| 色一情一区二区三区| 97超碰在线人人| 97精品国产97久久久久久粉红| www.欧美日本| 欧美精品一区二区三区三州| 香蕉视频色在线观看| 亚洲成人av免费看| 欧美三级一级片| 性一交一乱一伧国产女士spa| 色噜噜狠狠一区二区三区狼国成人| 男人操女人免费软件| 高清欧美精品xxxxx| 亚洲色婷婷久久精品av蜜桃| 色噜噜狠狠一区二区三区狼国成人| 成人在线免费播放视频| 国产午夜大地久久| 青青青免费在线| 国产精品专区在线| 日韩xxxx视频| 欧美视频免费看欧美视频| 国产精品无码免费专区午夜| 国产手机视频在线观看| 黄色片免费网址| 久久av喷吹av高潮av| 免费的一级黄色片| 美女扒开大腿让男人桶| h无码动漫在线观看| r级无码视频在线观看| 日韩黄色短视频| 国产特级淫片高清视频| 丁香花在线影院观看在线播放| 老太脱裤子让老头玩xxxxx| 9久久9毛片又大又硬又粗| 中文字幕无码精品亚洲35| 日本成人在线免费视频| 8x8x最新地址| 欧洲美女亚洲激情| 强开小嫩苞一区二区三区网站| 免费看日b视频| 欧美 国产 综合| 青青青在线视频免费观看| 一道本在线免费视频| www.久久com| 日韩网站在线免费观看| 欧美一级黄色影院| 一区二区三区一级片| 六月丁香激情网| 香蕉视频禁止18| 国产专区在线视频| koreanbj精品视频一区| 国产高清视频网站| 免费看日b视频| www.欧美日本| 国产免费内射又粗又爽密桃视频| 日韩欧美一区三区| 特级毛片在线免费观看| 黄色国产一级视频| 国产欧美一区二| 青青青免费在线| 熟妇熟女乱妇乱女网站| 99色精品视频| 特级西西人体www高清大胆| 成人在线免费在线观看| 久久人人爽人人片| 黄色一级大片在线观看| 台湾无码一区二区| www.夜夜爽| 国产a视频免费观看| 亚洲中文字幕无码一区二区三区| 麻豆传传媒久久久爱| www.日本少妇| 成人在线免费高清视频| 涩涩网站在线看| 日本在线视频www| 久草免费福利在线| 91嫩草国产丨精品入口麻豆| 99sesese| 黄色三级视频在线| 粗暴91大变态调教| 九一国产精品视频| 国产美女主播在线| 欧美激情亚洲天堂| 三年中文高清在线观看第6集| 在线视频日韩一区| 亚洲成人福利在线观看| 国产h视频在线播放| 又粗又黑又大的吊av| 欧美视频在线观看视频| 2018国产在线|