使用Microchip PIC18F通过tcp ip发送数据

时间:2010-01-20 14:10:29

标签: tcp ethernet pic microchip

TCPIP演示应用程序中的所有示例都是使用自定义程序构建的,该程序设计的网页会在网页更改时触发回调。是否有可能每隔X秒从传感器获取一个值并通过HTTP POST发送数据?

2 个答案:

答案 0 :(得分:4)

我现在就这样做。每隔x秒读取传感器的值应该是不言自明的,但使用“POST”编码消息有点棘手。

我做了类似下面的通用数据包:

        TCPPutROMString(MySocket, (ROM BYTE*)"POST ");
        TCPPutROMString(MySocket, RemoteURL);
        TCPPutROMString(MySocket, (ROM BYTE*)" HTTP/1.1\r\nHost: ");
        TCPPutROMString(MySocket, ServerName);
        TCPPutROMString(MySocket, (ROM BYTE*)"\r\nContent-Length:         
                        [put number of all following characters here]\r\n\r\n");
        TCPPutROMString(MySocket, (ROM BYTE*)"variable1=whatever");
        TCPPutROMString(MySocket, (ROM BYTE*)"&variable2=whatever");
        TCPPutROMString(MySocket, (ROM BYTE*)"&variable3=whatever");

答案 1 :(得分:0)

我很确定您的网页必须从服务器请求数据。我从未见过服务器可以强制更新页面的地方。您可以尝试使用元标记刷新页面或构建Java小程序,以请求包含要读取的传感器数据的动态变量的文件。我还考虑过基于telnet编写自己的协议,将数据推送到在TCP / IP端口上连接到它的应用程序,但是认为这比使用已经支持的HTTP协议要好得多。数据到我的小程序。它可能要快得多,但也需要做更多的工作。这实际上取决于您希望数据更新的频率。如果它在5-10秒的数量级并且您只有一个连接,那么使用HTTP应该可以正常工作。如果您有多个连接并希望每秒更新一次数据,那么您可能希望使用Telnet路由。我没有看到任何这样做的演示应用程序,但是由于我遇到了同样的问题,因此Microchip提供演示应用程序会很好。