VB.net 网络服务器

VB.net web server

我有一个 Arduino MEGA 2560,我正在制作一个智能家居。它没有 WiFi 或以太网端口,所以我写了一个 vb.net 程序来读取串行端口。但是我不知道如何制作一个可以显示温度传感器价值的网站。

你可以试试这样的……

带有 AJAX 计时器的简单 HTML 页面....

<!DOCTYPE html>
<html>
<body>

<p>A script on this page starts this clock:</p>

<p id="demo"></p>

<p><b>Status:</b> <span id="A1"></span></p>
<p><b>Status text:</b> <span id="A2"></span></p>
<p><b>Response:</b> <span id="A3"></span></p>

<script>
var myVar = setInterval(myTimer, 1000);

function myTimer() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
  if (xhttp.readyState == 4 && xhttp.status == 200) {
      document.getElementById('A1').innerHTML = xhttp.status;
      document.getElementById('A2').innerHTML = xhttp.statusText;
      document.getElementById('A3').innerHTML = xhttp.responseText;
  }
  };
  xhttp.open("GET", 'TempXML.xml', true);
  xhttp.send();
}
</script>

</body>
</html>

简单XML.......

<TempXML>
<DateTime>2816 22:10:00 :: </DateTime>
<body>31 &#186;C :: 87 &#186;F</body>
</TempXML>

现在,将 XML 作为 'TempXML.xml' 保存在与 HTML 页面相同的文件夹中,然后将 HTML 加载到浏览器中.... HTML 页面中的计时器将每秒触发并读取 XML,您需要做的就是 write\save 从 Arduino 传入 XML 文件的数据和HTML 将使用新数据进行更新....

''''''''''''''''''''' 编辑 '''''''''''''''''''''

这是一个写入您的 XML 文件的示例控制台应用程序

Imports System.Xml

Module Module1

Sub Main()
    Dim NewTemp = New TempData

    ' Set you DateTime and Temp here
    NewTemp.DateTime = DateTime.Now
    NewTemp.fahrenheit = 80 ' Data from your Arduino 
    NewTemp.celsius = 36    ' Data from your Arduino 

    ' Create XmlWriterSettings.
    Dim settings As XmlWriterSettings = New XmlWriterSettings()
    settings.Indent = True

    Using writer As Xml.XmlWriter = Xml.XmlWriter.Create("<Path to your XML Temp file>\TempXML.xml", settings)
        ' Begin writing.
        writer.WriteStartDocument()
        writer.WriteStartElement("TempXML") ' Root.

        writer.WriteElementString("DateTime", NewTemp.DateTime.ToString)
        writer.WriteElementString("body", String.Format(" :: {0} °C :: {1} °F", NewTemp.celsius.ToString, NewTemp.fahrenheit.ToString))

        ' End document.
        writer.WriteEndElement()
        writer.WriteEndDocument()
    End Using
End Sub

End Module


Public Class TempData

Private _DateTime As DateTime
Public Property DateTime() As DateTime
    Get
        Return _DateTime
    End Get
    Set(ByVal value As DateTime)
        _DateTime = value
    End Set
End Property

Private _fahrenheit As Int32
Public Property fahrenheit() As Int32
    Get
        Return _fahrenheit
    End Get
    Set(ByVal value As Int32)
        _fahrenheit = value
    End Set
End Property

Private _celsius As Int32
Public Property celsius() As Int32
    Get
        Return _celsius
    End Get
    Set(ByVal value As Int32)
        _celsius = value
    End Set
End Property

End Class

请记住更改 XML 文件的路径以适合您 PC 上的第 'Xml.XmlWriter.Create' 行中的位置...

顺便说一句,要获得“°”度数符号(您在上面的代码中看到的)...将光标定位在正确的位置,按住 'Alt' 键并键入 0176,然后让 'Alt' 去吧......