ESP32有线连接和https代替http进行api调用

ESP32有线连接和https代替http进行api调用,https,mqtt,esp32,aws-iot,Https,Mqtt,Esp32,Aws Iot,我正试图弄明白如何让ESP32使用RJ45端口而不是车载wifi,并通过HTTPS而不是HTTP从ESP32向网站进行API调用 我知道了如何将以太网屏蔽连接到ESP,但是我只能从以太网设备检测链路的上行或下行 我没有找到任何像样的图书馆,也没有找到任何像样的关于我在这里遇到的问题的解释 我目前使用HTTPClient.hlibrary通过wifi调用API。这很好用。但当我尝试添加RJ45以太网模块并尝试完全相同的操作时,请求甚至没有被触发 然后我尝试使用Ethernet.h库处理整个裸请求,

我正试图弄明白如何让ESP32使用RJ45端口而不是车载wifi,并通过HTTPS而不是HTTP从ESP32向网站进行API调用

我知道了如何将以太网屏蔽连接到ESP,但是我只能从以太网设备检测链路的上行或下行

我没有找到任何像样的图书馆,也没有找到任何像样的关于我在这里遇到的问题的解释

我目前使用
HTTPClient.h
library通过wifi调用API。这很好用。但当我尝试添加RJ45以太网模块并尝试完全相同的操作时,请求甚至没有被触发

然后我尝试使用Ethernet.h库处理整个裸请求,但这一点都不好。它可以正常工作,请求在服务器上永远挂起,并且永远不会关闭,实现将当前请求转换为简单的http请求不仅仅是一件麻烦事

我不能使用wifi的原因是由于设备的“全球使用”。他们应该能够连接到任何给他们的网络,而不必输入网络凭据

还有一件事,我也使用AWS IoT core连接到MQTT。这也必须起作用

因此,总结一下:

  • ESP32不带wifi,但带以太网模块
  • https而不是从ESP到服务器的http调用(ESP不运行自己的Web服务器)
  • MQTT与AWS物联网核心的连接
这可能吗

如果是,我希望这是可能的,那么我应该如何创建我的https请求

此类请求的当前示例

HTTPClient-http;
国际httpResponseCode;
http.begin(数字\uHQ\uHeartbeat\uEndpoint);
addHeader(“内容类型”、“应用程序/json”);
http.setUserAgent(数字用户代理);
静态文件;
doc[“mac”]=设备mac地址;
doc[“key”]=设备机密;
文档[“类型”]=数字\u HQ\u软件\u类型;
字符串输出;
序列化JSON(文档,输出);
httpResponseCode=http.POST(输出);
//如果该设备已从HQ删除,请重新注册。
如果(httpResponseCode==202){
registerDevice();
}
http.end();
因此,
DIGITAL\u HQ\u HEARTBEAT\u端点
类似于任何其他类型的http请求端点,例如
http://myurl/api-endoint/to/send/request/to
,但这个应该成为https

对于物联网,我想我可以使用
WiFiClientSecure.h
,但那是用于wifi的。不适用于以太网,所以这是需要研究的问题,我不知道如何将其用于以太网

我目前的情况如下:

  • 我的代码是用Clion编写的,但是通过arduino IDE编译到ESP32上
  • 我写的所有代码都可以在wifi上完美运行,无需SSL
我需要实现但不知道如何:

  • 所有通信(包括MQTT)都需要通过HTTPS,最好不必在代码中传递任何类型的SSL证书
  • 通过以太网而不是wifi工作->请告诉我这很容易做到,而且是可能的。那么请告诉我怎么

谢谢

ESP32支持本机以太网,只需连接一个物理层模块,如LAN8720。然后,WiFi库可以使用与WiFi STA或SoftAP(包括安全连接)相同的方式使用此网络接口。使用Ethernet library,您无法使用安全连接。因此,如果我制作的PCB具有与ESP相连的物理层(如LAN8720),它将只使用(使用我当前的代码)该Ethernet连接?无需进一步设置?我的LAN8720尚未解包,但有esp32 WiFi库的ETH示例。这个问题有太多的部分。您需要将问题分解为每个组成部分,并一次解决一个。然后可以尝试组合结果。