风筝
发表于: 2020-2-20 11:27:52 | 显示全部楼层

在本篇文章中,我们将在两个ESP32开发板之间建立HTTP连接,以通过Wi-Fi共享数据而无需使用无线路由器。通过不使用路由器,您就可以为需要轻便和便携式的项目设置此系统,尤其是在室外使用时。无论您身在何处,都不必担心携带笨重的路由器!


HTTP协议类似于串行协议,因为两者都可以让您在两个ESP32开发板之间发送和接收数据。但是,如果我们将它们相互比较,则有两个主要区别:

●    ESP32 HTTP协议不需要有线连接。

●    ESP32服务器可以连接到多个ESP32客户端。


项目的工作原理

该项目使用Arduino IDE。为了展示数据交换,我们使用BMP180传感器将数据从一个ESP32流传输到另一个客户端ESP32模块,然后再将数据显示在OLED模块上。


本文使用两个ESP32模块:第一个作为服务器,第二个作为客户端。在服务器上,我们需要连接BMP180。在客户端,我们使用Adafruit公司的I2C SSD1306 OLED显示模块。下图显示了此项目的通信设置。

1.jpg


我们来谈谈这两个ESP32模块的通讯范围。当我在一个空旷空间中设置此项目时,能够在两个ESP32模块之间传输长达50米的数据。


所需的硬件

●    ESP32模组

●    BMP180传感器模块

●    面包板

●    跳线

●    I2C OLED显示器

●    手机

hardware .jpg


必备的软件

●     Arduino IDE

●     BMP180库

●     SSD1306库

●     GFX库


硬件接线图

如下图所示,连接硬件。

wire.png

wire-2.png


将代码上传到ESP32

Arduino草图Server.ino上传到连接BMP180传感器的ESP32模块。Arduino草图Client.ino上传到连接到OLED模块的ESP32。


将手机与服务器ESP32连接

将代码上传到服务器ESP32之后,让我们用手机测试项目。打开串口监视器,该监视器将显示以下内容:

4.png


接下来,将手机的Wi-Fi连接到ESP32模块,以测试服务器端编程。 SSID为“ Maker.pro”,密码为87654321。

5.png


Wi-Fi连接后,打开手机的Internet浏览器。然后转到以下链接:

●    192.168.4.1/temperature

●    192.168.4.1/altitude

●    192.168.4.1/pressure

6.png

7.png

如果您在浏览器中看到如上所示的数据,则该代码正在正确运行。


上载Client.ino

现在,将Client.ino代码上传到另一个ESP32模块。将开发板靠近,然后供电。上电后,打开串口监视器,该监视器应显示以下内容:

8.png

通过以上配置就可以实现ESP32模块在无需路由器时即可进行通信。

9.jpg


本文使用的代码: Server.ino.zip (1.68 KB, 下载次数: 449)

Client.ino.zip (2.23 KB, 下载次数: 408)


跳转到指定楼层
yibing
发表于: 2021-6-11 10:14:11 | 显示全部楼层

这两个程序可以实现双向通信么
回复

使用道具 举报

songxp03
发表于: 2022-11-10 21:27:43 | 显示全部楼层

yibing 发表于 2021-6-11 10:14
这两个程序可以实现双向通信么

那估计需要websocket
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 56 | 回复: 109



手机版|

GMT+8, 2024-12-21 21:11 , Processed in 0.070593 second(s), 10 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表