解决ESP8266无法退出透传问题以及获取网络时间以及天气方法

news2024/11/23 22:35:59

网上很多配置ESP8266的教程,但是遇到无法退出透传模式的情况却没有找得到答案,不知道是大家都没遇到还是怎么样,以下是我的解决方法:实测有效

先发送“+++”(三个加号)(如果是在串口调试助手调试,取消勾选发送新行),接着再发送一条空白信息,此时勾选上发送新行功能(即“\r\n”换行符),此时模块就会返回“ERROR”意味着已经退出透传模式,可以发送AT指令测试一下。意思是退出透传和普通的配置指令不一样,在核心指令和“\r\n”之间需要一点时间延迟!!!

顺便贴一个:

通过AT指令配置ESP8266进入客户端模式的流程

ESP8266做客户端
  1. 设置ESP8266的工作模式
    AT+CWMODE=1

  2. 复位重启启用STA模式
    AT+RST

  3. 查询附近可连接WiFi
    AT+CWLAP

  4. 连接 WiFi
    AT+CWJAP=“WIFI名字”,“WIFI密码”

  5. 查询是否 连接上WiFi
    AT+CWJAP?

  6. 透传模式的选择
    AT+CIPMODE=0 //非透传模式
    AT+CIPMODE=1 //开启透传模式

  7. 单连接模式,因为此时ESP8266作为客户端,所以只能是单连接模式
    AT+CIPMUX=0

  8. 连接串口网络调试助手创建的TCP服务器,具体IP地址,端口号从调试助手中可以查看
    AT+CIPSTART=“连接方式”,“服务器 IP地址”,端口号
    例:AT+CIPSTART=“TCP/UDP”,“192.168.1.141”,8080

  9. ESP8266发送数据到服务器(手机 或者 电脑)
    AT+CIPSEND //透传模式下,不用发送具体字长,发完后模块会返回字符">",就可以输入对应网址获取信息,
    如:GET https://api.seniverse.com/v3/weather/now.json?key=SyCd566Zujct_RkUy&location=guangzhou&language=zh-Hans&unit=c

    AT+CIPSEND=n //非透传模式下,要求发送具体字长。如果实际发送的字节小于n则信息无法发出,如果大于n则截取 n个字节发送,其余丢弃,并在下一次发送中显示丢弃的数据

获取网络时间

如前操作,将:AT+CIPSTART=“TCP”,“192.168.1.141”,8080
修改为需要链接的IP地址,其中通过TCP链接的端口固定为80
这里记录一个比较好用的URL:
AT+CIPSTART=“TCP”,“www.beijing-time.org”,80
链接上IP地址后,进入透传模式:
AT+CIPSEND
返回“>”后,任意发送一个信息(带上\r\n),就会返回一堆带有时间的数据。
如发送“1”
在这里插入图片描述
对于较老版本的固件,不支持该AT指令,只能通过自己链接网络服务器来获取当前时间。具体需要的AT指令如下:

    1.建立TCP链接

             AT+CIPSTART="TCP","www.beijing-time.org",80

    2.打开传透模式

            AT+CIPSEND

    3.收到‘>’符号后,随便发送个数据

    4.等待接收数据

    接收的数据可以先用网络调试助手来测试,如下,可以看大,数据中包含了当前的日期和时间信息,我们可以先找到字符串中“Data”的位置,再解析后面的数据。数据格式固定,直接按照字符位置解析就行。

    需要注意的是,获取的这个时间是格林威治时间,与北京时间相差8个小时。

获取心知天气的信息

1.注册账号

    2.获取私钥

    3.连接服务器

            AT+CIPSTART="TCP”,” api.seniverse.com”,80

    4..打开传透模式

        AT+CIPSEND

    5..收到‘>’符号后,发送GET请求

GEThttps://api.seniverse.com/v3/weather/daily.json?key=your_key&location=ip&language=zh-Hans&unit=c&start=0&days=3

 6.等待接收数据,并解析

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

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

相关文章

保存Google Colab数据文件或目录到Google Drive云盘

一、背景 在Google Colab上使用T4 GPU完成微调训练的模型,保存了模型和训练状态的文件存放在Google Colab /content目录内,需要备份。考虑到下载到本地需要大量的流量,且下次继续训练还会上传,最后确定直接保存到Google Drive&am…

linux 上安装 minio

第一步,下载 wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio 第二步,修改权限 chmod x minio 第三步,设置 Path mv minio /usr/local/bin/ 第四步,创建 minio mkdir minio 第五步,启动 …

C#中var、object和dynamic的区别

在C#编程语言中,我们经常会遇到var、object和dynamic这三个关键字。它们都用于声明变量,但在使用方法和特性上存在一些重要的区别。本文将详细介绍这三者的差异。 目录 var关键字object关键字dynamic关键字总结 var关键字 var是C#语言中的隐式类型推断…

JDBC学习,从入门到入土

JDBC引入 JDBC概念: JDBC是使用Java语言操作关系型数据库的一套API。全称:(Java DataBase Connectivity)Java数据库连接 JDBC的本质: 官方定义的一套操作所有关系型数据库的规则,即接口。 各个数据库厂…

Windows操作系统重装【老毛桃、软碟通、硬盘装机以及装机原理介绍】

目录 一、老毛桃装机 1.1 老毛桃介绍 1.2 注意事项 1.3 操作步骤 1.3.1 老毛桃U盘制作 1.3.2 老毛桃u盘启动 1.3.3 老毛桃u盘重装系统 二、软碟通装机 2.1 软碟通介绍 2.2 主要特点及功能 2.3 操作步骤 2.3.1 用软碟通制作U盘安装盘 2.3.2 U盘启动 2.3.3 安装系统…

构建陪诊预约系统:技术实现与用户体验

在医疗服务不断创新的背景下,陪诊预约系统作为一种结合技术与人性化服务的应用,为患者提供了更为便捷和贴心的医疗体验。让我们通过简单的示例代码,了解一下如何构建一个基本的陪诊预约系统。 技术栈选择 在开始构建陪诊预约系统之前&…

【数据结构和算法】子数组最大平均数 I

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 滑动窗口含义 2.2 滑动窗口一般解法 2.3 方法一:滑动窗口 三、代码 3.1 方法一&#…

qt-C++笔记之app.processEvents()和QApplication::processEvents()的区别

qt-C笔记之app.processEvents()和QApplication::processEvents()的区别 code review! 代码1: QApplication app(argc, argv); app.processEvents(); 代码2: QApplication::processEvents(); 区别 代码1和代码2的区别在于代码1中使用了一个具体的QApplication对…

26--字符流与字节流

1、IO流概述 1.1 什么是IO流 Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。输入也叫做读取数据,输出也叫做作写出数据。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为…

力扣刷题记录(17)LeetCode:416、1049

416. 分割等和子集 可以将该问题看成是一个背包问题。背包的容量就是nums数组和的一半。我们如果能够将背包装满就意味着可以将数组分割成两个元素和相等的子集。 1.确定dp[i]的含义 索引i表示背包的容量,dp[i]表示当前容量能够装载的最大值 2.确定动态转移方程 …

JS - 设计模式持续学习中

通过例子持续学习JS设计模式中,接下来请跟随我的步伐走进我的学习笔记世界~ 什么是设计模式?我们为什么需要学习设计模式? 设计模式是可以更好解决问题的一种方案。 这意味着什么?如果你开发的项目的功能是固定的,永…

算法通关村第十四关—堆结构(青铜)

堆结构 一、堆的概念和特征 堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一个一维数组中的结构。堆有两种结构,一种称为大顶堆,一种称为小顶堆,如下图。 1.小顶堆:任意节点的值均小于等于它的左右孩子&#…

android 新版studio gradle 里面没有offline 勾选项

studio 右边 gradle 上面有个图标可以点击切换

宏基因组学中基于Kraken2、Blast、ViPhOG和VirSorter等工具分析病毒组的详细流程,包括数据预处理、病毒序列检测、分类和功能注释等步骤

宏基因组学中分析病毒组的详细流程,包括数据预处理、病毒序列检测、分类和功能注释等步骤。 示例代码使用了常用的生物信息学工具,如Kraken2、Blast、ViPhOG和VirSorter等。 1. 数据预处理 质量控制: 使用FastQC进行原始测序数据的质量检查…

机器视觉:AI赋能缺陷检测,铸就芯片产品的大算力与高能效

导言:近年来,国内芯片行业快速发展,市场对芯片需求的不断增大,芯片的缺陷检测压力也越来越大。芯片产品在生产制造过程中,需要经历数道工序,每个生产环节的材料、环境、工艺参数等都有可能造成产品缺陷。不…

低代码:万事俱备,就差一个程序员

前言 低代码技术,作为当前软件开发领域的一颗新星,正在逐渐改变着传统编程的面貌。其核心特点鲜明且富有创新性,如通过直观的拖拽组件来进行软件开发,这种方式极大地降低了编程的复杂性。可视化编程则是将复杂的代码逻辑转化为图…

js 图片 手动上传,并回显

效果展示&#xff1a; 代码&#xff1a; <label for"avatarUpload"><div><img v-if"avatatImageUrl" :src"avatatImageUrl" class"avatar"><img v-else src"../../assets/images/account/avatar-upload.png…

20231221将NanoPC-T4(RK3399)开发板适配Android12的挖掘机并打开AP6398SV

20231221将NanoPC-T4(RK3399)开发板适配Android12的挖掘机并打开AP6398SV 2023/12/21 17:46 SDK使用&#xff1a;rk356x_android12_220722.tgz android12-rk3588-new_20221229_1732toybrick.tgz【TB3588X】 1、【必须更换AP6398SV征集的驱动程序&#xff01;】 Z:\3TB\91rk_an…

Elasticsearch 性能调优基础知识

Elastic Stack 已成为监控任何环境或应用程序的实际解决方案。 从日志、指标和正常运行时间到性能监控甚至安全&#xff0c;Elastic Stack 已成为满足几乎所有监控需求的一体化解决方案。 Elasticsearch 通过提供强大的分析引擎来处理任何类型的数据&#xff0c;成为这方面的基…

Vuex的学习-3

基于Vuex的案例todos&#xff0c;篇幅有点长&#xff0c;可以根据目录将会的地方可以跳过 初始化项目 1.通过vue ui 命令打开可视化面板&#xff0c;创建新项目 2.安装vuex依赖包 3.实现Todos基本布局 课程代码在此&#xff0c;直接复制即可 main.js import Vue from vue …