ESP8266 作为客户端 透传的实验

配置流程

在这里插入图片描述

1.配置WIFI模式
AT+CWMODE=1 配置成Station模式

2.完成配置后重启
AT+RST 重启

3.连接路由器
AT+CWJAP=“777”,“123456lzg” 连接wifi

4.配置单路连接模式
AT+CIPMUX=0

5.开启透传模式
AT+CIPMODE=1

6.建立TCP连接
AT+CIPSTART=“TCP”,“172.20.10.10”,8081 //注意服务器和esp8266的IP地址要同一个网段

7.进入透传模式
AT+CIPSEND

单片机程序

void ESP8266_Init(void)
{
	

	GPIO_InitTypeDef GPIO_Initure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

	//ESP8266复位引脚
	GPIO_Initure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Initure.GPIO_Pin = GPIO_Pin_14;					//GPIOC14-复位
	GPIO_Initure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_Initure);
	
	GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_RESET);
	delay_ms(250);
	GPIO_WriteBit(GPIOC, GPIO_Pin_14, Bit_SET);
	delay_ms(500);
	
	ESP8266_Clear();
 
	// 0.复位
	UsartPrintf(USART_DEBUG, "0.准备复位模块\r\n");
	while(ESP8266_SendCmd("AT+RST\r\n", ""))
		delay_ms(500);
	
	//1.配置WIFI模式
	UsartPrintf(USART_DEBUG, "1.准备配置WIFI模式\r\n");
	while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"))
		delay_ms(500);
	
	// 2.复位
	UsartPrintf(USART_DEBUG, "2.准备复位模块\r\n");
	while(ESP8266_SendCmd("AT+RST\r\n", ""))
		delay_ms(500);

	
	// 3.连接路由器
	UsartPrintf(USART_DEBUG, "3.连接路由器\r\n");
	while(ESP8266_SendCmd(ESP8266_WIFI_INFO, "GOT IP"))
		delay_ms(500);
	
	//4.获取IP地址
	UsartPrintf(USART_DEBUG, "4.获取IP地址\r\n");
	WIFI_IP_Get();
		delay_ms(500);
	
 
	
	//5.配置单路连接模式
	UsartPrintf(USART_DEBUG, "5.配置单路连接模式\r\n");
	while(ESP8266_SendCmd("AT+CIPMUX=0\r\n", "OK"))
		delay_ms(500);
	
	//6.开启透传模式
	UsartPrintf(USART_DEBUG, "6.开启透传模式\r\n");
	while(ESP8266_SendCmd("AT+CIPMODE=1\r\n", "OK"))
		delay_ms(500);
	
	//7.建立TCP连接
	UsartPrintf(USART_DEBUG, "7.建立TCP连接\r\n");
	while(ESP8266_SendCmd(ESP8266_MYSELF_INFO, "OK"))
		delay_ms(500);

	//8.进入透传模式
	UsartPrintf(USART_DEBUG, "8.进入透传模式\r\n");
	while(ESP8266_SendCmd("AT+CIPSEND\r\n", "OK"))
		delay_ms(500);
	
	
	UsartPrintf(USART_DEBUG, "WIFI配置完成\r\n");
 
	
	
 
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙OS开发:【一次开发,多端部署】(典型布局场景)

典型布局场景 虽然不同应用的页面千变万化,但对其进行拆分和分析,页面中的很多布局场景是相似的。本小节将介绍如何借助自适应布局、响应式布局以及常见的容器类组件,实现应用中的典型布局场景。 布局场景实现方案 开发前请熟悉鸿蒙开发指导…

[机器学习聚类算法实战-1] | Scikit-Learn工具包进阶指南:机器学习聚类算法之层次聚类、特征集聚、均值移位聚类、k-均值聚类实战分析

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

面试八股之线程篇2.7——线程中的并发锁篇——死锁与并发程序的问题

文章目录 2.6 synchronized和Lock有什么区别 ?2.7 死锁产生的条件是什么?2.8 如何进行死锁诊断?2.10 ConcurrentHashMap(1) JDK1.7中concurrentHashMap(2) JDK1.8中concurrentHashMap 2.11 导致并发程序出…

如何将Docker容器打包并在其他服务器上运行

如何将Docker容器打包并在其他服务器上运行 我会幻想很多次我们的相遇,你穿着合身的T恤,一个素色的外套,搭配一条蓝色的牛仔裤,干净的像那天空中的云朵,而我,还是一个的傻傻的少年,我们相识而笑…

洗地机品牌哪个牌子好?实力派洗地机品牌TOP10榜单

洗地机依靠其洗、拖、吸、烘为一体的功能,能高效的完成地面清洁的工作,深受大家的喜爱。但是洗地机的型号越来越多,功能也越来越多,对于不想花大价钱,又想要高性价比的精致人群来说实在不友好,所以笔者今天…

QMT如何编写策略获取沪深指数数据?(附开通QMT全攻略)

获取指数代码列表 提示 为了获取指数合约列表,首先需要使用函数get_sector_list来获取需要查询的指数索引。具体的索引信息可以通过键入您感兴趣的索引名(例如:"沪深指数"或"上证指数")等获得。接下来,通过…

《Effective Objective-C 2.0》读书笔记——对象、消息、运行期

目录 第二章:对象、消息、运行期第6条:理解“属性”这一概念第7条:在对象内部尽量直接访问实例变量第8条:理解“对象等同性”这一概念第9条:以“类族模式”隐藏实现细节第10条:在既有类中使用关联对象存放自…

域内 dcsync 权限维持

一、原理 DCSync 是域渗透中经常会用到的技术,其被整合在了 Mimikatz 中。在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。 Mimikatz的DCSync 功能: 该…

ubuntu20.04安装cmake3.22.1

背景 由于第一套上位机windows clion22 嵌入式ubuntu20.04的开发环境中,ubuntu20.04上安装的是cmake3.22.1, 为了保持一致,需要指定安装的cmake版本。 下载指定版本的cmake 进入cmake官网的download页面,https://cmake.org/download/&…

嵌入式学习——3——TCP-UDP 数据交互,握手,挥手

1、更新源 cd /etc/apt/ sudo cp sources.list sources.list.save 将原镜像备份 sudo vim sources.list 将原镜像修改成阿里源/清华源,如所述 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main …

建站平台布局结构

建站平台布局结构对于网站的成功至关重要。一个良好的布局结构能够有效地吸引用户,提升用户体验,并且有助于网站的搜索引擎优化(SEO)。在设计网站布局结构时,需要考虑到用户导航、信息层次结构、页面加载速度等方面&am…

跨境小白shopee被封号的原因?如何有效预防?

提到跨境电商平台,大家都知道亚马逊、Temu、TikTok shop这些是比较大的电商平台。但最近几年,在东南亚市场上,Shopee虾皮却是颇负盛名的一个跨境电商平台,这也让众多中国跨境小白蜂拥而至。目前shopee的商家正在不断增多&#xff…

基于Vue的验证码实现

一、验证码核心实现 创建slide-verify.vue&#xff0c;代码如下&#xff1a; <template><divclass"slide-verify":style"{ width: w px }"id"slideVerify"onselectstart"return false;"><!-- 图片加载遮蔽罩 -->&…

全面了解CC攻击和防范策略

前言 “ CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽&#xff0c;一直到宕机崩溃。” 什么是CC攻击&#xff1f; CC攻击前身是一个名为Fatboy的攻击程序&#xff0c;而之所以后来人们会称之为CC&#xff0c;也叫HTTP-FLOOD&#xff…

modbus开源库libmodbus的C语言使用记录(实现简单的modbus主机/丛机程序,解决libmodbus库安装出现的问题)

libmodbus简介 libmodbus 是一个开源的、跨平台的C库,用于实现Modbus通讯协议。它支持Modbus RTU(RS-232/485)和Modbus TCP协议,可以使开发者方便地在项目中集成Modbus通讯功能。libmodbus的设计目标是简单、灵活和高效,适用于各种大小的嵌入式和桌面应用。 编译运行测试…

Orca: FSS-based Secure Training and Inference with GPUs

目录 1.Abstract2.Accelerating FSS on a GPU2.1 Accelerating FSS-based compute on GPU2.1.1 Faster AES computation (AES)2.1.2 Optimized data layout for cache locality (LAYOUT)2.1.3 Optimizing memory footprint (MEM) 2.2 Reducing time to read FSS keys2.2.1 Bypa…

计算机图形学入门games103——碰撞检测

一.怎么发现碰撞&#xff0c;有没有碰撞 碰撞最难的是布料的碰撞 碰撞检测分为两个部分&#xff1a; 第一阶段&#xff1a;去除不可能发生碰撞的元素&#xff0c;输出的就是可能碰撞的备选目标&#xff0c;这阶段叫做碰撞剔除 这常用的套路有两种&#xff1a;第一种是Spati…

算法题解记录26+++翻转二叉树(百日筑基)

题目描述&#xff1a; 题目难度&#xff1a;简单 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;roo…

C++ TCP发送Socket数据

DEVC需要加入ws2_32库 #include <iostream> #include <winsock2.h>#pragma comment(lib, "ws2_32.lib")void sendData(const char* ip, int port, const char* data) {WSADATA wsaData;SOCKET sockfd;struct sockaddr_in server_addr;// 初始化Winsock…

HDR视频相关标准-HDR vivid(二)

上文介绍了HDRvivid的一些技术。今天从全局角度来看看HDR视频的处理流程&#xff0c;HDR视频系统&#xff0c;即建立一个比SDR视频更大的色彩/亮度坐标体系&#xff0c;并改变系统的传输函数&#xff0c;以再现更大的色域(WCG)和更高的亮度动态范围。 菁彩 HDR技术的专业术语 …