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

news2024/11/23 15:27:50

haas506与esp8266-01s的串口通信

  • PC端调试wifi模块
      • 1.接线(与电脑通信)
      • 2.模式案例
      • 3.指令演示
  • 开发板与wifi模块通信
      • 1.接线(TTL串口通信)
      • 2.代码
      • 测试

PC端调试wifi模块

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

1.接线(与电脑通信)

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

2.模式案例

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

1、单连接TCP client模式指令

AT+CWMODE=3					 				//设置为 softAP+station 共存模式
AT+RST										//重启
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 								// 发送四个字节,字节数可按需任定
DGFY										// 输入要发送的四个字节内容,无需回车。

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

AT+CWMODE=3					 				//设置为 softAP+station 共存模式
AT+RST										//重启
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模式指令

AT+CWMODE=3					 				//设置为 softAP+station 共存模式
AT+RST										//重启
AT+CIPMUX=1 								// 启动多连接
AT+CIPSERVER=1									//建立server,默认端口 333
AT+CIPSTART="TCP","192.168.3.116",8080 		//传入协议、服务器 IP、端口号
AT+CIPMODE=1								//开启透传模式
AT+CIPSEND									//开始透传

4、固定远端的UDP通信
5、远端可变的UDP通信
6、UDP透传

3.指令演示

以下以透传模式指令为例
需要的工具点击链接下载
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下发数据时,开发板会打印接收到的数据
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/685612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个618项目的复盘总结反思

一、前言 618期间上线一个活动项目。但上线不顺利,当天就出现了性能问题,接口超时,用户无法打开网页,最后不得的临时下线。花了三天两夜,重构了后台核心代码,才让活动进行下去。 回头看了一下自己的时间记…

【零基础入门学习Python---Python条件和循环语句】

🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

OpenCV下载、环境变量配置

https://sourceforge.net/projects/opencvlibrary/files/ 选择合适的版本下载即可 这里使用opencv-3.1.0.exe执行 将需要bin目录加入到环境变量Path D:\opencv\31\opencv\build\x64\vc14\bin #include<opencv2/opencv.hpp> #include <iostream> using namespace …

【学习日记2023.6.25】之ElasticSearch搜索引擎

文章目录 分布式搜索引擎1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2 ELK技术栈1.1.3 elasticsearch和lucene1.1.4 为什么不是其他搜索技术&#xff1f;1.1.5 总结 1.2 倒排索引1.2.1 正向索引1.2.2 倒排索引1.2.3 正向和倒排 1.3 es的一些概念1.3.1 文档和字…

[Web程序设计]实验: Servlet基础应用

一、实验目的 &#xff08;1&#xff09;掌握java web应用的基础和核心知识&#xff1a;servlet。 &#xff08;2&#xff09;理解servlet的具体使用。 二、实验内容 &#xff08;1&#xff09;编写一个servlet&#xff0c;实现统计网站被访问次数的功能&#xff1b; &…

SpringBoot 集成测试主要组件及其特点

SpringBoot 集成测试主要组件及其特点 随着SpringBoot的流行&#xff0c;集成测试也变得越来越重要。SpringBoot提供了一些主要组件来支持集成测试&#xff0c;本文将介绍这些组件及其特点。 1. Spring Test Spring Test是Spring框架提供的测试工具集&#xff0c;其主要目的是…

langchain源码阅读系列(二)之数据接入层

原文首发于博客文章OpenAI 文档解读 LangChain 主体分为 6 个模块&#xff0c;分别是对&#xff08;大语言&#xff09;模型输入输出的管理、外部数据接入、链的概念、&#xff08;上下文记忆&#xff09;存储管理、智能代理以及回调系统&#xff0c;通过文档的组织结构&#x…

将数组中所有元素依次向右或向左移动指定的n个位置 从右侧移出的元素从左侧补入 从左侧移出的元素从右侧补入 numpy.roll()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将数组中所有元素依次向右 或向左移动指定的n个位置 从右侧移出的元素从左侧补入 从左侧移出的元素从右侧补入 numpy.roll() [太阳]选择题 请问关于以下代码的最后输出正确的是&#xff1f;…

chatgpt赋能python:Python编程:如何赚取高薪?

Python编程&#xff1a;如何赚取高薪&#xff1f; Python语言是一门被广泛使用的编程语言&#xff0c;因其简单易学&#xff0c;而在软件开发、数据分析、机器学习及人工智能等领域中得到了广泛应用。随着这些领域的不断发展&#xff0c;对Python开发人才的需求也越来越高涨。…

基于Java彩妆小样售卖商城的设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

Python爬虫之数据解析技术

Python爬虫需要数据解析的原因是&#xff0c;爬取到的网页内容通常是包含大量标签和结构的HTML或XML文档。这些文档中包含所需数据的信息&#xff0c;但是需要通过解析才能提取出来&#xff0c;以便后续的处理和分析。 以下是一些使用数据解析的原因&#xff1a; 数据提取&…

基于Java高校实验室管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

通过Web3Js网页代码在MetaMask辅助下完成用户发送操作

上文 html通过web3JS 获取当前连接的区块链信息和账号信息在html中通过 Web3.0.js 获取了本地虚拟的区块链信息 和通过 公钥获取了账号的 ETH 那么 之前我们文章 Web3通过 MetaMask简单演示对ganache虚拟环境账号进行管理操作演示了通过MetaMask在本地发送ETH给其他账号 那么 …

springboot+vue基于java的健美操体操舞蹈视频评分系统

健美操评分系统采用B/S架构&#xff0c;数据库是MySQL。系统的搭建与开发采用了先进的JAVA进行编写&#xff0c;使用了springboot框架。该系统从三个对象&#xff1a;由管理员、裁判员和用户来对系统进行设计构建。主要功能包括首页&#xff0c;个人中心&#xff0c;裁判员管理…

【Linux】遇事不决,可先点灯,LED驱动的进化之路---2

【Linux】遇事不决&#xff0c;可先点灯&#xff0c;LED驱动的进化之路---2 前言&#xff1a; 一、Pinctrl子系统重要概念 1.1 重要概念 1.1.1 pin controller 1.1.2 client device 1.1.3 补充概念 二、GPIO子系统重要概念 2.1 在设备树指定GPIO引脚 2.2 在驱动代码中…

代码质量平台实践-SonarQube

代码质量平台实践-SonarQube 目录 推荐文章 https://www.yuque.com/xyy-onlyone/aevhhf?# 《玩转Typora》 本节实战 实战名称&#x1f498; 实践&#xff1a;Scanner进行项目代码扫描(测试成功)-2023.6.24&#x1f498; 实践&#xff1a;Jenkins集成SonarQube(命令行方式)(测…

java8新特性之--函数式接口加方法引用与构造器引用详细讲解

函数式(Functional)接口 什么是函数式(Functional)接口 只包含一个抽象方法的接口&#xff0c;称为函数式接口。 你可以通过 Lambda 表达式来创建该接口的对象。&#xff08;若 Lambda 表达式 抛出一个受检异常(即&#xff1a;非运行时异常)&#xff0c;那么该异常需要在目标…

Java集合容器面试题

集合 什么是集合 集合就是用于存储数据的容器&#xff0c;只能存储引用类型&#xff0c;所以集合非常适合用来存储对象。而且集合是长度可变&#xff0c;所以对象个数不确定的时候适合使用集合 集合的特点 1、集合只能存储引用数据类型。集合用于存储对象。 2、对象的个数…

centos版本的EDA虚拟机搭建3

0、参考博客 1、CentOS 7 下 rar unrar的安装 1、配置虚拟机与主机共享文件夹。 **前提&#xff0c;虚拟机关机。**之后进行虚拟机设置&#xff0c;选项-共享文件夹&#xff0c;点击总是启用&#xff0c;之后添加共享文件夹名称。 之后打开虚拟机&#xff0c;命令行输入v…

【Leetcode60天带刷】day34贪心—— ​860. 柠檬水找零​,406.根据身高重建队列

​ 题目&#xff1a; 860. 柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。…