gpt4 book ai didi

ssl - ESP OTA 通过 https 网络服务器更新

转载 作者:行者123 更新时间:2023-12-04 22:43:08 27 4
gpt4 key购买 nike

我有一个运行良好且没有问题的旧代码,但有人要求我更改 OTA 配置,以便此代码可以从 SSL 服务器进行自我更新。我有证书和所需的指纹(从谷歌浏览器下载)。我已经用谷歌搜索并尝试了大多数通过 HTTPS 进行 OTA 的建议方法。但没有一个对我有用。我从“ESPhttpUpdate.update”得到的结果总是“-1”,这意味着“连接失败”。
任何人都可以提出一种可行的方法吗?因为我没有任何正确的代码,所以我没有发布任何代码。我只想要一个建议或示例代码。
谢谢大家

最佳答案

问题解决了。
我将服务器地址分成两部分(如示例代码所示),URL 和 URI;但我不知道为什么,当我将它们连接在一起时,问题就解决了。
这是可能需要的人的代码:

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <FS.h>
#include "ESP8266httpUpdate.h"

/********************************************************
********************************************************
********************************************************/
const char* ssid = "********"; // modify this
const char* password = "********"; // modify this

const char* host = "https://server/steamer_v1_2.bin"; // modify this

/********************************************************
********************************************************
********************************************************/
void setup() {
Serial.begin(115200);

WiFi.mode(WIFI_STA);

for (uint8_t t = 4; t > 0; t--)
{
Serial.printf("[SETUP] WAIT %d...\n", t);
Serial.flush();
delay(1000);
}

Serial.println();
Serial.print("connecting to ");
Serial.println(ssid);

if (WiFi.SSID() != ssid) {
WiFi.begin(ssid, password);
}
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());

// configure time
configTime(3 * 3600, 0, "pool.ntp.org");

BearSSL::WiFiClientSecure client;
const uint8_t fingerprint[20] = {0xdd, 0xa5, 0x2d, 0x31, 0x25, 0x31, 0xae, 0x7a, 0x10, 0x0b, 0x68, 0xba, 0x22, 0x84, 0x1a, 0x94, 0xec, 0x79, 0xb4, 0xbb}; // modify this
client.setFingerprint(fingerprint);

auto ret = ESPhttpUpdate.update(client, host);
// if successful, ESP will restart
Serial.println("update failed");
Serial.println((int) ret);
}

/********************************************************
********************************************************
********************************************************/
void loop() {
}

关于ssl - ESP OTA 通过 https 网络服务器更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com