微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PROGMEM R 中的 Arduino 变量"======( HTML

如何解决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 举报,一经查实,本站将立刻删除。