×

用3行代码做一个WebServer

消耗积分:0 | 格式:zip | 大小:0.05 MB | 2022-10-28

分享资料个

描述

这个项目的目标一直是让其他项目开发人员的工作更轻松。

与从青少年到老年人的各个年龄段的学生一起工作,我发现几乎无一例外,所有人都对尽快启动和运行他们的硬件项目非常感兴趣。看到他们自己的硬件项目实现的兴奋因素是肾上腺素激增。

物流-那个可恨的词是那个好奇者的存在的祸根学生为机器人生命的第一次心跳而死。通常,他们不想摆弄连接数字显示器以查看结果和控制他们的项目的罐子。构建任何可靠的通信系统的陡峭学习曲线,更不用说......我们目前可以访问的通用库中的快速可靠的网络服务器已经扼杀了许多学生的热情。即使成功,处理从 Sketch 中的变量到客户端显示的每一个事务也是很乏味的。或者更糟糕的是......必须从客户端获取一些人为触发的数据或事件并将其发送到服务器并放入变量或触发任务。一个学生,不……即使是专家,也可以轻松地在物流上花费十倍的时间与他们的项目交互,而不是他们项目的硬件布线和核心逻辑。我觉得必须有更好的方法。

InqPortal库(可在您的 Arduino IDE 库管理器中找到)是六年和数千小时的简化(对库用户而言)和完善的结晶,可提供坚如磐石、强大的体验。用户反馈和观察学生苦苦挣扎的挫败感......尝试建立自己的并重新启动和无法解释的断开连接已反馈到此InqPortal版本 5。

入门

InqPortal仅在 ESP8266 系列处理器上运行。这些通常连接到 Arduino 板以提供 WiFi 通信,但也可以独立使用,因为它们本身具有相当强大的处理器。

  • 如果您是 ESP8266 的新手,您首先需要使用 Arduino Boards Manager 安装其库。这是一个链接(互联网上有数百万个)可以帮助您完成该任务
  • 如果您已经安装了 ESP8266 库,则在使用InqPortal库之前需要一个补丁
  • 从您的 Arduino IDE 库管理器中搜索并安装InqPortal库。
  • 在新的 Sketch 中输入以下代码。
#include 
InqPortal svr;
void setup() 
{  
  svr.begin("MySoftSSID", NULL, "myRouterSSID", "myRouterPassword");  
}
void loop() 
{ 
}

这就是您开始所需的一切! 该库甚至可以通过将波特率设置为 74880 来配置您的串行输出。您将希望在串行监视器中查看来自服务器的启动信息。它将向您显示连接信息,甚至是帮助您克服新障碍的说明。

使用这些说明,浏览到Admin.html页面,您会看到类似标题图片的内容,您可以在其中:

  • 管理接入点设置
  • 监控系统指标,绘制服务器性能图表
  • 使用文件管理器将您的网页内容拖放到您的服务器
  • 使用您的 Sketch的无线二进制升级
  • 远程控制日志记录
  • 查看观察变量

力量与轻松

为了让您了解InqPortal可以在最入门级别完成的工作,我们将仅添加三行以及一些模拟传感器代码。对于该附加功能,您将看到以下功能:

  • 向客户端发布只读变量
  • 发布一个可以被客户端读取和更改的变量。
  • 设置定期回调以访问我们的模拟传感器以进行计算。
#include 
InqPortal svr;
double sine = 0;
double amplitude = 100.0;
void setup() 
{
 svr.publishRO("Sine", &sine, "Current Sine Value");
 svr.publishRW("Amplitude", &litude, "Amplitude Setting");
 svr.onInterval(calculate, 1000);
 svr.begin("MySoftSSID", NULL, "myRouterSSID", "myRouterPassword");  
}
void loop() 
{
}
void calculate(void*)
{
 sine = amplitude * sin((double)millis() * PI / 30000.0);
}

如果您熟悉任何 WiFi 通信代码,您会注意到完全没有明确的发送或复杂的接收代码。您可以自由地专注于您的核心项目逻辑。对于这三行,管理员已准备好监视和控制您的程序。

poYBAGNYuXGAGAJcAACiRzgxvlM187.png
InqPortal Admin App 选项卡显示您的自定义数据正在动态更新和控制。
 

在“历史记录”选项卡中进行一项设置允许我们将您的自定义项目数据添加到现有的系统性能指标 -循环率和内存使用情况。注意 - 在第一个周期完成后,我们将 App 选项卡中的 Amplitude 更改为 200。

pYYBAGNYuXOALEBrAAHXt6exBnQ997.png
InqPortal 历史选项卡显示与系统指标相关的自定义项目值
 

启动客户端任务

如您所见...在项目的开发阶段,InqPortal管理员可以提供您需要的所有基本反馈和控制,以确认您的核心逻辑,然后再抬起一根手指来处理您的客户端应用程序。但是...当您准备好创建更深入或更美观的客户端应用程序(如添加仪表、刻度盘和滑块控件)时,InqPortal管理员可以让您站稳脚跟...在这个新版本 5 中,我们添加了一个代码生成器,它将获取您发布的变量并设置单页 UI。它可能很简单,但它是显示和控制服务器端项目所需的完美教程。它还展示了截取该数据并将其应用于图形控件的高级用法 - 另一个历史仪表。是的,历史记录表可供您在任何项目中使用。

poYBAGNYuXaAN6-TAAEQoUqwjMU680.png
InqPortal 使用您发布的变量生成的起始页
 

下一步...

InqPortal具有更多功能,您可以在网站上跳转到它:专用于使用InqPortal库使用 ESP8266 进行 Arduino 编程。您将找到一组完整的交叉引用页面,包括快速入门指南、教程、服务器端 Sketch C++ API 参考和客户端 JavaScript API 参考。您甚至会发现InqPortal Admin 设置了上下文相关的帮助链接到网站的各个部分,就像 Arduino IDE 使用其参考菜单项一样。最后,我们开始积累由我们、学生,也许有一天你创建的项目的展示。

祝你好运,

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !