如何通过网络界面与微控制器通信?

How to communicate with microcontroller through a web interface?

就在我们决定旅行几天后,我想我必须在我们不在的时候以某种方式监视房子。所以,我需要将微控制器连接到设备并通过 Web 界面控制它以打开或关闭它们,我想做的是将我的家用 PC 变成服务器并且我已经安装了 apache 并进行了配置,现在要通过网页控制微控制器,我需要通过 DB9 端口发送串行数据。问题是,从 HTML 发送串行数据的最佳方式是什么?是通过 javascript 还是其他方式?以及如何?

简答:

HTML

Java脚本

...和 ​​1 种支持 TCP 套接字和设备(对于 DB9)的语言。

这可能是 c、c++、python、ruby、c#、Objective-C、Java 等等。

长答案: 这个系统有 3 个组件:

  1. 网络服务器(HTML/Javascript/CSS)

  2. RESTful 服务器(C 或 Java 或其他)

  3. DB9 串行服务器(微型 C/Assembly/Other)

实现这些结果的最佳方法是创建所谓的 RESTful API 服务器,该服务器使用与您的操作系统良好集成的语言编写。您必须编写一个接受 TCP 连接的程序,最好通过端口 80 或 443(出于安全考虑)。然后程序会解析http数据,headers和body等,并相应地向微控制器发出命令。

这里有一个很好的休息指南: Dr. Dobbs Rest

我假设您知道如何通过串行线路发送数据。如果您在 linux 中并且在 "dev" 目录中安装了一个,您只需写入适当的文件即可。在其他情况下,我之前编写了 linux 程序 "screen" 的脚本。

您可以使用任何可以访问 TCP 套接字的语言编写服务器程序,这通常由操作系统上的 sys 调用提供便利。

RESTful API 可以与您实际的 HTML 服务器程序分开...这是 apache。然后在您交付的 html 内容中,包含一个 javascript onclick 事件,该事件将向您的 restful 服务器发送 restful 请求。