网站建设售后服务内容/湖北疫情最新情况

网站建设售后服务内容,湖北疫情最新情况,网站侧栏软件排行榜怎么做的,制作网站民治目录 关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏 说明 关于at指令 WiFi的at指令 UDP的at指令 样例程序 调试助手端输入指令 sta端程序 效果 进阶使用 库函数说明 样例代码 关于树莓派pico和circuitpython的更多玩法,请看树…

目录

关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏

说明

关于at指令

WiFi的at指令

UDP的at指令

样例程序

调试助手端输入指令

sta端程序

效果

进阶使用

库函数说明

样例代码


关于树莓派pico和circuitpython的更多玩法,请看树莓派pico专栏

说明

使用硬件为esp01,01s和01在使用上没有差别,故使用方法通用

esp01操作要使用at指令,详情见官网,esp01固件使用官方默认固件,大小8Mbit

文章使用环境为树莓派pico、circuitpython8.x

esp01默认使用uart,波特率115200

关于uart的使用说明见树莓派pico入坑笔记,uart使用

注意在指令最后加上\r\n作为结束,防止esp01会报error说明指令不合法,在python中,可以在字符串里加\r\n。

uart.write('AT\r\n'.encode('ascii'))

关于at指令

用到的指令涉及wifi ap建立,wifi station端连接,udp连接建立,数据发送,数据接收和断开udp连接,这里只介绍一部分用到的指令

其中WiFi最多支持10人接入,udp和tcp连接支持5人接入,本文只用一人接入

WiFi的at指令

AT+CWMODE=1,设置为station模式,相当于手机连接wifi时手机和路由器中的手机

AT+CWMODE=2,设置为ap模式,相当于手机连接wifi时手机和路由器中的路由器

AT+CWSAP="ESP","1234567890",5,3,建立wifi,参数分别时WiFi名称、密码、信道号,加密方式,后两个参数默认使用5和3即可,此外还有其他参数,这里用不到,具体含义和功能见官网

AT+CWJAP="ESP","1234567890",连接wifi,参数为wifi名称和密码

AT+CWLIF,查询连接到 ESP SoftAP 的 station 信息

AT+CIPAP?,查询 ESP SoftAP 的 IP 地址

ATE0,关闭回显,ATE1,开启回显,回显是指输入的命令会和响应数据一同返回给用户

UDP的at指令

AT+CIPMUX=1,启用多连接模式

AT+CIPSTART=4,"UDP","192.168.4.1",1113,1113,0,和该ip地址建立udp连接,该链接id设置为4(0~4),本地udp端口设置为1113,远端udp端口为1113,固定连接模式0

AT+CIPSEND=4,5 ,向id为4 的连接发送长度为5字节的数据,esp会返回>提示用户输入要发送的数据,如果输入的超过5字节,将只发送前5个字节

AT+CIPCLOSE=4,断开和id为4的连接

样例程序

ap端默认ip192.168.4.1,端口1113,sta端默认ip192.168.4.2,端口1113,

已经在电脑端使用安信可调试助手搭建了ap端并建立和192.168.4.2的udp连接

AT指令应答一般包含OK字样,有、可用作为发送下一条指令的依据,防止指令过快而没有被执行

注意发送的数据中有'\'等字符需要加\作为转义,具体注意事项见官网

调试助手端输入指令

AT+CWMODE=2

AT+CWSAP="ESP","1234567890",5,3

AT+CIPMUX=1

AT+CIPSTART=4,"UDP","192.168.4.2",1113,1113,0

sta端程序

import board
import busio
from time import sleepU= busio.UART(board.GP4,board.GP5,baudrate=115200)def Cmd_Send(cmd: str):U.write(bytearray(cmd + '\r\n', 'ascii'))while True:d = U.read(64)U.reset_input_buffer()if d:string = d.decode('ascii')if ('OK' in string) or ('CLOSED' in string) or ('boot' in string):break Cmd_Send('AT+CWMODE=1')
Cmd_Send('ATE0')ssid: str ='ESP'
passworld: str ='1234567890'
Cmd_Send('AT+CWJAP="{}","{}"'.format(ssid,passworld))id: int =4
host: str ='192.168.4.1'
hport: int =1113
lport: int =1113
Cmd_Send('AT+CIPMUX=1')
Cmd_Send('AT+CIPSTART={},"UDP","{}",{},{},0'.format(id,host,hport,lport))data: str ='text'
id: int = 4
Cmd_Send('AT+CIPSEND={},{}'.format(id, len(data)))
Cmd_Send(data)Cmd_Send('AT+CIPCLOSE={}'.format(id))

效果

接收的数据为

+IPD,4,4:text,其中+IPD,4,4意思是接收到连接4发来的4字节数据:text

进阶使用

esp01库下载,本库针对udp单链接设计,读者可用根据需要进行修改

库函数说明

def Esp01_Init(uart: busio.UART,debug: bool =False )

初始化,提供esp连接的uart,第二个参数为True时将输出发送的每一条at指令,作为调试信息

def Wifi_Sta_Init(ssid: str ='ESP',passworld: str ='1234567890')

WiFi sta初始化,默认wifi名称和密码见上

def Wifi_Ap_Init(ssid: str ='ESP',passworld: str ='1234567890')

wifi ap初始化,默认wifi名称和密码见上

def Udp_Server_Init(id: int =4,host: str ='192.168.4.2',hport: int =1113,lport: int =1113)  

udp server初始化,默认连接id、ip、本地端口和连接端口见上

def Udp_Client_Init(id: int =4,host: str ='192.168.4.1',hport: int =1113,lport: int =1113)

udp client初始化,默认连接id、ip、本地端口和连接端口见上

def Udp_Deinit(id: int =4)

udp断开连接,默认连接id见上

def Cmd_Send(cmd: str) 

发送at指令,收到正确应答后返回,返回时清空uart缓冲

def Data_Get() -> str

接收传进的数据,返回时清空uart缓冲

def Data_Send(data: str ='text', id: int = 4)

发送数据,默认发送数据和发送到的连接id见上

样例代码

import esp01 as esp
import board
import busio
from time import sleep
uart= busio.UART(board.GP4,board.GP5,baudrate=115200)
# 初始化,缺省默认不开启调试输出
esp.Esp01_Init(uart)
data='hello'
# 缺省默认wifi接入
esp.Wifi_Sta_Init()
# 缺省默认udp连接
esp.Udp_Client_Init()
# 缺省发送默认数据
esp.Data_Send()
# esp.Data_Send(data)#发送自定义数据
# 缺省断开默认连接
esp.Udp_Deinit()

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

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

相关文章

秋招突击——7/12——复习{每日温度、完全平方数、无重复最长子串}——新作{字节面试——控制多线程按照顺序输出}

文章目录 引言复习每日温度复习实现参考学习 完全平方数复习实现参考学习 无重复字符的最长子串复习实现参考学习 新作控制多线程输出Java实现线程——不使用锁实现使用synchronized关键实现——使用锁实现使用synchronized、wait和notify关键字实现 总结 引言 今天又要面试字…

安全防御,防火墙配置NAT转换智能选举综合实验

一、实验拓扑图 二、实验需求 1、办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 2、分公司设备可以通过总公司的移动链路和电信链路访问到Dmz区的http服务器 3、多出口环境基于带宽比例进行选路,但是&…

DP(3) | 0-1背包 | Java | LeetCode 1049, 494, 474 做题总结(474未完)

1049. 最后一块石头的重量 II 和 LC 416.分割等和子集 类似 思路(我没有思路): 两块石头相撞,这里没有想到的一个点是,相撞的两个石头要几乎相似 以示例1为例,stones [2,7,4,1,8,1],如果从左到…

Collections:专为集合框架而生的工具类

Collections 是 JDK 提供的一个工具类,位于 java.util 包下,提供了一系列的静态方法。 排序操作 reverse(List list):反转顺序shuffle(List list):洗牌,将顺序打乱sort(List list):自然升序sort(List lis…

解答|服务器只能开22端口可以申请IP地址SSL证书吗?

IP地址SSL证书,是一种专门颁发给公网IP地址的SSL证书,而不是常见的基于域名的SSL证书。SSL证书主要用于保障数据在客户端(如用户的浏览器)和服务器之间传输时的加密性和安全性,以防止数据被截取或篡改。 服务器只能开…

github actions方式拉取docker镜像

参考: https://wkdaily.cpolar.cn/archives/gc 注意github actions提供的免费虚拟机空间有限,空间不足会报错,查看大概语句有10来G 我在workflow file里加了df -h 运行查看磁盘情况: 通过pwd命令,可以知道运行目录/ho…

ETL数据集成丨主流ETL工具(ETLCloud、DataX、Kettle)数据传输性能大PK

目前市面上的ETL工具众多,为了方便广大企业用户在选择ETL工具时有一个更直观性能方面的参考值,我们选取了目前市面上最流行的三款ETL工具(ETLCloud、DataX、Kettle)来作为本次性能传输的代表,虽然性能测试数据有很多相…

【JavaScript】解决 JavaScript 语言报错:Uncaught TypeError: XYZ is not a function

文章目录 一、背景介绍常见场景 二、报错信息解析三、常见原因分析1. 变量或对象属性类型错误2. 函数名拼写错误或覆盖3. 作用域问题导致的函数未定义4. 调用未初始化的函数 四、解决方案与预防措施1. 确保变量类型正确2. 检查拼写错误3. 注意作用域4. 初始化变量 五、示例代码…

C#中的反射

dll和exe文件的区别 用途: .exe(可执行文件):是可以直接运行的程序文件。当你双击一个 .exe 文件或在命令行中输入它的名字,操作系统会加载并执行这个程序。 .dll(动态链接库):包含…

graphviz subgraph添加边界框

subgraph name 属性必须要以cluster开头。 A Quick Introduction to GraphvizAn awesome tool for software documentation and visualizing graphshttps://www.worthe-it.co.za/blog/2017-09-19-quick-introduction-to-graphviz.html digraph {rankdir"LR"// the n…

【探索Linux】P.39(传输层 —— TCP的三次 “握手” 和四次 “挥手” )

阅读导航 引言一、TCP的三次握手1. 简介2. 图解三次握手3. 名词解释(1)SYN(同步序列编号)包(2)SYN-ACK(同步确认)包(3)ACK(确认)包 4.…

基于matlab的SVR回归模型

1 原理 SVR(Support Vector Regression)回归预测原理,基于支持向量机(SVM)的回归分支,其核心思想是通过寻找一个最优的超平面来进行回归预测,并处理非线性回归问题。以下是SVR回归预测原理的系统…

浪潮天启防火墙TQ2000远程配置方法SSL-V偏、L2xx 配置方法

前言 本次设置只针对配置V偏,其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行V偏配置。 其他配置可参考:浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号&#xff0…

面试内容集合

用例设计方法 (一)等价类划分  常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理…

智慧校园毕业管理:全面解读毕业批次功能

在智慧校园的毕业管理系统中,毕业批次模块通过其精心设计的毕业批次功能,为即将离校的学子们提供了一个高效、便捷的过渡平台。这一特色功能聚焦于特定时间段内的毕业生群体,巧妙融合数字技术,从信息核实到最终的离校程序&#xf…

代码随想录二刷7.22|977.有序数组的平方

暴力解法: ——如果想暴力解决这个问题的话,可以像题目那样,先将每一个元素平方,然后再排序 双指针: ——从题目中找到的信息:这是一个非递减顺序的整数数组,从例子中,可以容易看…

西邮计科嵌入式复习

西邮嵌入式复习 一、第一章复习二、第二章复习三、第三章复习四、第四章复习 一、第一章复习 二、第二章复习 三、第三章复习 四、第四章复习

内网服务器通过squid代理访问外网

一、背景 现在要对172.16.58.158服务器进行openssh升级操作,我用之前写好的升级脚本执行后,发现没有备份旧的ssh程序文件,然后还卸载了oenssl-devel,然后我发现其他服务器ssh该服务器失败。同时脚本执行时报错“ configure: error: *** zlib.h missing - please install first …

无人驾驶大热,新能源汽车智能化中的算网支持

来源新华社:百度“萝卜快跑”全无人驾驶汽车行驶在路上 当前,新能源汽车产业数智化已成为全球汽车产业数字化转型的焦点。一方面,随着人工智能、大数据、云计算等技术的深度融合,新能源汽车在自动驾驶、智能互联、能源管理等方面…

xmind梳理测试点,根据这些测试点去写测试用例

基本流(冒烟用例必写) 备选流 公共测试点: