如何解决PROGMEM R 中的 Arduino 变量"======( HTML
我想将 IPAddress ip = WiFi.localIP()
添加到我的 Arduino 上保存 HTML 页面的 const char root[] PROGMEM = R"=====(HTML code here)=====";
。
但我似乎无法让它在网页上显示。
IP 地址 ip = WiFi.localIP()
将被 String
转换为 ip.toString()
,我想将此 String
插入 HTML 中的 const char root[]
。
结果应该是:"<h4>IP:"+ip.toString()+"</h4>"
谁能帮我找到一种方法将 Arduino 的 LocalIP()
地址添加到存储在 PROGMEM
中的 HTML 页面?
解决方法
您不能更改存储在 char root[]
中的 HTML 页面,因为它是 const
,并且必须是 const
才能存储在 PROGMEM
.
您可以将网页分成两部分,一部分包含您要显示的 IP 地址之前的所有 HTML,另一部分包含之后的其余 HTML,然后将两个 HTML 片段存储在 PROGMEM
中,然后首先将第一部分、IP 地址和第二部分发送给您的客户端。
另一种选择是在您的页面中添加一些 Javascript,在页面加载后使用 XHR 从 Arduino 检索 IP 地址,然后将 IP 地址插入页面的正确位置。
第三个更简单的选项:如果您使用地址栏中的 Arduino 的 IP 地址在浏览器中打开网页,您可以在您的网页中使用以下内容将 Arduino 的 IP 地址插入页面:
<html>
<head></head>
<body>
<h4 ID="IP"></h4>
</body>
<script>
document.getElementById("IP").innerHTML = location.hostname;
</script>
</html>
请注意,这将插入主机名;如果主机是按名称而不是 IP 地址给出的,则会插入名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。