ESP8266 HTTP POST JSON 数据发送到服务器教程 - 使用 NTPClient 获取时间
该代码是一个 ESP8266 的 Arduino 程序,它连接到 WiFi 并使用 HTTP POST 请求将 JSON 数据发送到指定的服务器 IP 地址和端口。在发送数据之前,它还使用 NTPClient 获取当前时间。
在该程序中,您需要更改以下参数:
- STASSID:WiFi 网络的 SSID
- STAPSK:WiFi 网络的密码
- SERVER_IP:目标服务器的 IP 地址和端口号
以下是该程序的详细解释:
- 首先,该程序包括必要的头文件,包括
NTPClient.h,WiFiUdp.h,ESP8266WiFi.h和ESP8266HTTPClient.h。 - 然后,程序定义了一些常量,包括 NTP 服务器地址,NTP 偏移量和 NTP 更新间隔。
- 接下来,程序开始了 NTP 客户端,并连接到 WiFi 网络。
- 在主循环中,程序等待 WiFi 连接并获取当前时间。
- 如果 WiFi 已连接,程序将创建一个 WiFiClient 和 HTTPClient 对象,并使用 HTTP POST 请求将 JSON 数据发送到指定的服务器 IP 地址和端口号。
- 如果 POST 请求成功,程序将打印 HTTP 响应代码和响应负载。
- 最后,程序将等待 10 秒钟,然后再次循环。
要完善该代码,您需要在指定的服务器上运行一个 Web 服务器,并为 POST 请求设置一个路由,以便正确处理接收到的 JSON 数据。您可以使用 Node.js 和 Express.js 来创建一个简单的 Web 服务器,并在路由上解析 JSON 数据。以下是一个示例路由:
app.post('/upload', function(req, res) {
var data = req.body;
console.log('Received data:', data);
res.sendStatus(200);
});
在该路由中,服务器将在收到 POST 请求时解析 JSON 数据,并将其打印到控制台上。然后,服务器将发送一个 HTTP 200 响应,表示请求已成功处理。
请注意,您还需要在 ESP8266 的 Arduino IDE 中安装 NTPClient 库和 ESP8266HTTPClient 库。您可以通过打开“工具”菜单并选择“管理库”来安装这些库。然后,在搜索栏中输入库的名称,选择它,并单击“安装”按钮。
原文地址: https://www.cveoy.top/t/topic/mGFK 著作权归作者所有。请勿转载和采集!