3.41 - haas506与esp8266-01s的串口通信(wifi模块)

news2024/12/23 18:25:16

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、单连接 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、透传模式指令

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									//开始透传

3、多连接 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									//开始透传

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/671782.html

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

相关文章

享好文 | 碰撞检查并不是BIM的目的

不知大家感觉到没有?中国很多行业都有一种惯性思维:只要是国外的就好,习惯了拿来主义。 比如前几年兴起的BIM,各种峰会论坛、培训吹得神乎其技,玩得不亦乐乎,什么协同管理、行业生态。 结果这么多年过去了…

Python 动态生成系统数据库设计到word文档

背景 经常需要交付一些系统文档而且基本都是word的,其中又有系统数据库介绍模块, 看着数据库里的几百张表于是我开始怀疑人生, 所以咱手写一个 涉及知识 pymysql 操作数据库 -tkinter GUI图形库threading 线程queue 阻塞队列pandas python数据计算…

【数据结构(C++)】树型查找——二叉搜索树

目录 1. 二叉搜索树 1.1 二叉搜索树的概念 1.2 二叉搜索树类模板 1.3 二叉搜索树的操作 1.3.1 查找 1.3.2 插入 1.3.3 删除 1.4 二叉搜索树的性能分析 2. 平衡二叉树 2.1 平衡二叉树的概念 2.2 平衡二叉树类模板 2.3 二叉搜索树的插入 3. 红黑树 3.1 红黑树的概念…

合宙Air724UG Cat.1模块硬件设计指南--Camera接口

Camera接口 简介 CAT.1模块支持一路摄像头接口,可以用于扫码,拍照应用。 特性 仅支持SPI接口实现 最高像素30W像素 支持数据格式YUV422, Y420, RAW8, RAW10 集成GC0310驱动 管脚功能 CAM_PWDN。关闭Camera,上电状态默认下拉输入。 CAM_RST。…

pg 绑定变量源码解析

pg 绑定变量相关源码解析 下面以callstmt 为例 说明一下绑定参数的执行流程(基于pg13) 整体架构 1. exec_parse_message 解析变量。 --> parse_analyze_varparams 解析绑定参数$id--->parse_variable_parameters , 把返回值paramTyp…

《Java黑皮书基础篇第10版》 第18章【习题】

Java语言程序设计 习题第十八章 18.2章节习题 18.1 什么是递归方法?什么是无限递归? 递归方法可以拆解为递和归。在Java中,大多数方法的执行都需要调用栈,来跟踪方法的调用和返回。在递的过程中,递归方法调用自身,把新的调用添…

Vue3 开发语法使用总结(超详细、超基础)

前言 最近开源了一套后台管理模板Wocwin-Admin,是基于 Vue3.2、TypeScript、Vite4、Pinia、Element-Plus、Qiankun(微前端) 技术栈,借此归纳一下Vue3.2的新语法。 一、全局注册(属性/方法) 1、main.ts注册 import { createApp } from "vue";…

Ubuntu22 2023最新版安装教程

Ubuntu22安装教程 2023全网最新版 前置资源准备 如果选择使用虚拟机安装,那么需要准备VmwareWorkstation 在官网进行下载安装 VmwareWorkstation官网:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 前置资源准备好后就可以…

【SpringCloud config分布式配置中心】—— 每天一点小知识

💧 S p r i n g C l o u d c o n f i g 分布式配置中心 \color{#FF1493}{SpringCloud config分布式配置中心} SpringCloudconfig分布式配置中心💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的…

okcc呼叫系统运营商的重点功能有什么

一、资费套餐模块 资费套餐,即客户进行业务时使用的资费标准。填写资费套餐名称,选择计费规则方式,点击“确认”按钮即可创建一条资费套餐,如下图所示。 计费规则即计费所遵循的规则。OKCC系统目前设计了以下三种计费方式(后续还…

Caretta 利用 eBPF 实现 Kubernetes 应用网络拓扑

介绍 Caretta 是一种轻量级的独立工具,快速展示集群中运行的服务可视化网络图。 Caretta 利用 eBPF 有效地展示 K8s 集群中的服务网络交互图,并利用 Grafana 查询和可视化收集的数据。科学家们早就知道,海龟和许多动物一样,通过…

【瑞萨RA_FSP】AGT——低功耗定时器

文章目录 一、AGT简介二、AGT的框图分析1. 16位计数器2. 16位重装载寄存器3. 计数时钟源4. 比较匹配功能5. 比较匹配输出引脚6. 输出引脚7. 下溢事件信号/测量完成事件信号输出 三、AGT工作模式详解四、实验:比较匹配功能——PWM输出1. 硬件设计2. 文件结构3. FSP配…

基础篇:新手使用vs code新建go项目(从0开始到运行)

学习新语言,搭建新环境。在网上找了一些教程,感觉还是写一个比较详细的方便以后自己使用。其实vs code没有新建项目这个功能,具体怎么运行go语言的项目请看下文。 一、下载GO安装包 1.点击go安装包下载链接下载相应的版本(本次下…

【计算机网络自顶向下】简答题习题总结(三)

文章目录 第三章 传输层UDP用户数据报协议可靠数据传输原理面向连接传输TCP流量控制可靠数据传输机制 题目 第三章 传输层 传输层服务:在两个不同的主机的运行应用程序之间提供逻辑通信 在接收主机多路分解 将接收到的数据段传递给正确的套接字【多路分解】 在发送…

线程与轻进程(OS)

目录 1、进程的引入 2、线程的概念 3、线程的结构 3、线程控制块 5、线程的实现 (1)用户级别线程 (2)核心级别线程 (3)混合线程 6、线程的应用 1、进程的引入 进程切换 上下文涉及内容多&#xf…

软件测试面试,从简历到面试常问,不学几招怎么跳槽?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件测试面试环节…

关于Java多线程不安全的问题简析

在了解多线程不安全的问题之前 让我们先来看如下代码 public class demo18 {public static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(()->{for (int i 0; i < 10000; i) {count;}});Thread t2 new …

软件测试报告需要做哪些测试内容?软件测试外包服务公司靠谱吗?

在软件开发领域中&#xff0c;测试是最为重要的环节之一&#xff0c;它在确保软件质量方面有着至关重要的作用。软件测试是一种检验软件代码是否符合设计和用户期望的过程。软件测试的主要目的是发现缺陷并确保软件在实际使用中的可靠性&#xff0c;安全性&#xff0c;以及稳定…

Linux中centos修改系统时间并写到硬件,Linux中centos设置定时自动同步网络时间

文章目录 前言一、centos修改系统时间并写到硬件1.1查看当前的系统时间1.2修改系统时间1.3查看硬件时间1.4同步系统时间和硬件时间1.5本地时间写入硬件时间 二、centos设置定时自动同步网络时间2.1安装ntpdate工具2.2CentOS安装/操纵crontab2.3启动crontab并查看状态2.4写一个c…

Ubuntu系统安装Mysql服务并设置远程连接-Navicat连接Mysql-物联网系统

目录 一、前言 二、Mysql的安装 三、Mysql服务管理 四、配置Mysql远程连接 五、修改登录限制 六、修改Root密码 七、Navicat连接Mysql 一、前言 在我们购买服务器后&#xff0c;常需要在服务器上部署数据库以存储我们所需要的数据&#xff0c;因此我们本文将在Ubuntu系统…