ESP32设置AP模式与手机连接,并向手机发送数据

说在前面的话:本文采用的是windows环境,工程是开源一小步之ESP32开发指南教程中的示例工程hx-tcp,主要是为了自己记录吧,如果有解决问题的注意一下。我在开发环境没问题的前提下进行了如下操作:
1. 将示例工程复制到esp32-dir相应的位置在这里插入图片描述
这个工程是开源的,github上可以直接下载,源码地址:https://github.com/HX-IoT/ESP32-Developer-Guide

2. 配置AP模式
配置AP模式主要就是让ESP32做服务器端,需要连接的手机做客户端。
这部分配置在tcp_bsp.h中,具体配置如下:
在这里插入图片描述
注意:这个工程本来的功能是客户端发送给服务器端数据,如果服务器端成功接收,则将数据再发给客户端。在使用手机或者电脑进行数据收发测试时,使用网络调试助手连接就需要IP和端口号,那
么这里默认IP为192.168.4.1,端口号为12345

3. ESP32采集数据,然后向手机发送数据
在我们具体应用中,肯定不是回环收发那么简单,所以我们可能需要使用ESP32采集自己需要的数据,然后发送给手机,这部分修改则在tcp_bsp.c中。
首先从main函数中的调用来看,主要是调用wifi_init_softap()和wifi_init_sta()两个函数。
在这里插入图片描述
所以在tcp_bsp.c中就定义了这两个函数。
在这里插入图片描述
在这里插入图片描述
由于我配置的是AP模式,然后我们的外设初始化就可以放在wifi_init_softap()函数中,我这里配置的是ADC,首先把需要的头文件以及变量定义写在开始位置,然后把ADC的初始化放在了该函数中。
在这里插入图片描述

在这里插入图片描述
接下来就是向手机发送数据了。这里的数据发送在recv_data(void *pvParameters)这个函数中,所以需要修改该函数来将ADC采集的数据发送到手机。
在这里插入图片描述
这里我只是稍微修改了一下,就是在客户端随便发送一点东西,服务器端只要接收到了,ADC就会采集数据然后发送给手机。

4. 测试
我是在手机上安装了一个网络调试助手进行测试,结果如下:
在这里插入图片描述
总结:写一篇博客,方便自己下次解决问题能快一点,另外在调试的时候,可以打开串口调试助手,通过查看打印日志来解决问题。如有不足之处,欢迎批评指正。

ESP32-C3是一款Wi-Fi模块,它可以支持以下几种Wi-Fi模式: 1. Station(STA)模式:在该模式下,ESP32-C3可以作为一个Wi-Fi客户端连接到一个已存在的Wi-Fi网络。 2. Access Point(AP模式:在该模式下,ESP32-C3可以作为一个Wi-Fi热点创建一个新的Wi-Fi网络,并允许其他设备连接到它。 3. Station + Access Point(STA+AP模式:在该模式下,ESP32-C3同时作为一个Wi-Fi客户端和一个Wi-Fi热点,可以连接到一个Wi-Fi网络并允许其他设备连接到它。 关于密码设置连接,你可以按照以下步骤进行配置: 1. 首先,你需要设置Wi-Fi的SSID(即网络名称)和密码。可以通过以下代码进行设置: ```c #include <WiFi.h> const char* ssid = "YourNetworkSSID"; const char* password = "YourNetworkPassword"; void setup() { WiFi.begin(ssid, password); // 其他设置... } void loop() { // 循环中的其他代码... } ``` 将"YourNetworkSSID"替换为你要连接的Wi-Fi网络的SSID,将"YourNetworkPassword"替换为对应的密码。 2. 在`setup()`函数中调用`WiFi.begin(ssid, password)`来连接到Wi-Fi网络。 3. 接下来,你可以添加其他设置或操作,例如等待连接成功、获取IP地址等。 关于数据发送,一旦连接成功,你可以使用ESP32-C3的Wi-Fi功能发送数据。你可以使用TCP或UDP协议进行数据传输。以下是一个简单的示例代码: ```c #include <WiFi.h> WiFiClient client; void setup() { // Wi-Fi连接设置... // 连接到服务器 if (client.connect("serverIP", serverPort)) { // 连接成功 client.println("Hello, server!"); } } void loop() { // 循环中的其他代码... } ``` 将"serverIP"替换为服务器的IP地址,将"serverPort"替换为服务器的端口号。在`client.println()`语句中,你可以发送任何数据到服务器。 这只是一个简单的示例,你可以根据实际需求进行更详细的配置和操作。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值