3.41 - haas506与esp8266-01s的串口通信1(TCP透传)

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







PC端调试wifi模块

esp8266-01s
在这里插入图片描述

1.接线(与电脑通信)

与电脑通信时引脚连接,wifi模块需要稳定3.3v供电,可以使用开发板进行供电。
VCC接3.3V
CH_PD接3.3V,否则wifi不工作
TX接串口TX
RX接串口的RX
GND接地,WiFi模块,CH340模块,开发板共地
在这里插入图片描述

2.各模式AT指令

wifi模块默认有内置SDK,通过发送AT指令可以配置WiFi模块。
参考文件文档工具

1、单连接TCP client模式指令

AT+CWMODE=3					 				//设置为 softAP+station 共存模式
AT+CWJAP="ssid","password" 					// 传入路由的ssid 和 password
AT+CIFSR 									//查询设备IP。响应:192.168.3.106 //返回设备的 IP 地址
AT+CIPSTART="TCP","192.168.3.116",8080 		//传入协议、服务器 IP、端口号
AT+CIPSEND=4 								// 发送四个字节,字节数可按需任定
test										// 输入要发送的四个字节内容,无需回车。

2、TCP client单连接透传模式指令

AT+CWMODE=3					 				//设置为 softAP+station 共存模式
AT+CWJAP="ssid","password" 					// 传入路由的ssid 和 password
AT+CIFSR 									//查询设备IP。响应:192.168.3.106 //返回设备的 IP 地址
AT+CIPSTART="TCP","192.168.3.116",8080 		//传入协议、服务器 IP、端口号
AT+CIPMODE=1								//开启透传模式
AT+CIPSEND									//开始透传
+++ 										//退出发送数据
AT+CIPMODE=0 								//退出透传模式
AT+CIPCLOSE 								//断开TCP连接
AT+CWQAP 									//断开热点

3、多连接 TCP server模式指令(AP模式)

AT+CWMODE=2	    //设置成AP模式,相当于路由器
AT+CWSAP_DEF="ESP8266","12345678",5, 4      //WIFI名称,密码 , 通道号 ,加密方式(0~4)

AT+CIFSR	 //查询ESP8266的IP地址(很重要)
AT+CIPMUX=1  	 //开启多连接(可以被多个手机连接)(很重要,要不然,下一个指令会报错)
AT+CIPSERVER=1,8080   	//开启服务器

4、固定远端的UDP通信

AT+CWMODE=3						//	配置 WiFi 模式
AT+CWJAP="SSID","password"							//	连接路由器
AT+CIFSR				//查询 ESP8266 设备的 IP 地址
AT+CIPMUX=1//使能多连接
AT+CIPSTART=4,"UDP","192.168.101.110",8080,1112,0//创建 UDP 传输。分配连接号为 4
AT+CIPSEND=4,7	 	 //	Send	7	bytes	to	transmission	NO.4	
>UDPtest										 //	enter	the	data,		no	CR
AT+CIPCLOSE=4//断开 UDP 传输

5、远端可变的UDP通信

AT+CWMODE=3						//	配置 WiFi 模式
AT+CWJAP="SSID","password"							//	连接路由器
AT+CIFSR				//查询 ESP8266 设备的 IP 地址
AT+CIPMUX=1//使能多连接
AT+CIPSTART="UDP","192.168.101.110",8080,1112,2//创建 UDP 传输。
AT+CIPSEND=7	 	 //	Send	7	bytes	
>UDPtest										 //	enter	the	data,		no	CR
AT+CIPSEND=7,"192.168.101.111",1000	 	 //发送数据到其他指定远端。例如,发数据到 192.168.101.111, 端⼝ 1000。
>UDPtest										 	 	 	 //	enter	the	data,		no	CR
AT+CIPCLOSE//断开 UDP 传输

6、UDP透传

AT+CWMODE=3						//配置 WiFi 模式
AT+CIPSTART="UDP","192.168.4.2",1001,2233,0//ESP8266 与 PC 对应端⼝建⽴固定对端的 UDP 传输
AT+CIPMODE=1//使能透传模式
AT+CIPSEND	//ESP8266 设备向服务器发送数据
+++ 		//退出发送数据
AT+CIPMODE=0//退出透传模式
AT+CIPCLOSE//断开 TCP 连接

3.TCP透传指令演示

以下以透传模式指令为例
需要的工具点击链接下载
1、打开模块串口,设置波特率115200,发送 AT+CWMODE=3 设置为 softAP+station 共存模式,返回ok。

在这里插入图片描述
2、AT+RST 重启

在这里插入图片描述
3、AT+CWJAP=“szyyw”,“szyywdz501” 传入路由的ssid 和 password,连接WIFI

在这里插入图片描述
4、AT+CIFSR 查询设备IP。响应:192.168.3.106 返回设备的 IP 地址

在这里插入图片描述
5、在 PC 上使用网络调试助手,创建一个服务器。

在这里插入图片描述
6、AT+CIPSTART=“TCP”,“192.168.3.41”,8080 传入协议、服务器 IP、端口号,连接TCP服务器

在这里插入图片描述
7、AT+CIPMODE=1 开启透传模式

8、AT+CIPSEND 开始透传

在这里插入图片描述
串口工具与TCP服务器数据可以互传

在这里插入图片描述

开发板与wifi模块通信

1.接线(TTL串口通信)

与开发板通信正常连接4根线就行

haas506esp826601s
3.3VVCC
GNDGND
TTL_TXRX
TTL_RXTX

在这里插入图片描述

2.代码

完整代码
案例中haas506通过TTL口向WiFi模块发送指令,配置WiFi模块为透传模式,实现网络TCP服务器与开发板相互通信。

main.py
在这里插入图片描述
station.py

import utime
from driver import UART
import _thread  

#串口实例化
uart=UART()
uart.open("serial1")
#创建一个readBuf字节数组,用于存放串口读取到的数据
readBuf=bytearray(255)


def Station_init():
    #设置为 softAP+station 共存模式
    wrirtBuf = bytearray("AT+CWMODE=3\r\n")
    uart.write(wrirtBuf)
    utime.sleep(4)
    ret = uart.read(readBuf)
    print(readBuf[:ret])


def connect_wifi(account,password):
    wrirtBuf = bytearray("AT+CWJAP=\"{}\",\"{}\"\r\n".format(account,password))
    uart.write(wrirtBuf)
    utime.sleep(4)
    ret = uart.read(readBuf)
    print(readBuf[:ret])
    wrirtBuf = bytearray("AT+CIFSR\r\n")
    uart.write(wrirtBuf)
    utime.sleep(4)
    ret = uart.read(readBuf)
    print(readBuf[:ret])
    


def TcpConnect(host,port):
    #开启透传模式
    wrirtBuf = bytearray("AT+CIPMODE=1\r\n")
    uart.write(wrirtBuf)
    utime.sleep(4)
    ret = uart.read(readBuf)
    print(readBuf[:ret])
    #tcp连接
    wrirtBuf = bytearray("AT+CIPSTART=\"TCP\",\"{}\",{}\r\n".format(host,port))
    uart.write(wrirtBuf)
    utime.sleep(4)
    ret = uart.read(readBuf)
    print(readBuf[:ret])
    #开始透传
    wrirtBuf = bytearray("AT+CIPSEND\r\n")
    uart.write(wrirtBuf)
    utime.sleep(4)
    ret = uart.read(readBuf)
    print(readBuf[:ret])



def tcprecv():
    print('Running thread tcprecv...')
    try:
        ret = uart.read(readBuf)
    except OSError:
        print('TCP OSError')
    if ret>0:
        print(readBuf[:ret],'------------')
        return readBuf[:ret]
    else :
        return None

def update(value):
    wrirtBuf = bytearray("{}\r\n".format(value))
    uart.write(wrirtBuf)

board.json

{
  "name": "haas506",
 "version": "2.0.0",
 "io": {
   "serial1":{
     "type":"UART",
     "port":0,
     "dataWidth":8,
     "baudRate":115200,
     "stopBits":1,
     "flowControl":"disable",
     "parity":"none"
   }
 },
 "debugLevel": "ERROR",
 "repl":"enable"
 }

测试

打开网络调试助手
TTL串口每隔4s发送一条指令
开启透传后,开发板每秒向TCP服务器发送一个数据
TCP下发数据时,开发板会打印接收到的数据
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值