VB.net web服务器

VB.net web服务器,vb.net,arduino,serial-port,webserver,Vb.net,Arduino,Serial Port,Webserver,我有一个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"

我有一个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>

此页上的脚本启动此时钟:

地位:

状态文本:

答复:

var myVar=setInterval(myTimer,1000); 函数myTimer(){ var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ 如果(xhttp.readyState==4&&xhttp.status==200){ document.getElementById('A1').innerHTML=xhttp.status; document.getElementById('A2').innerHTML=xhttp.statusText; document.getElementById('A3').innerHTML=xhttp.responseText; } }; open(“GET”,'TempXML.xml',true); xhttp.send(); }
简单XML

<TempXML>
<DateTime>28\02\2016 22:10:00 :: </DateTime>
<body>31 &#186;C :: 87 &#186;F</body>
</TempXML>

28\02\2016 22:10:00 :: 
31 ºC::87和186;F
现在,将XML另存为“TempXML.XML”,与HTML页面位于同一文件夹中,然后将HTML加载到浏览器中。。。。HTML页面中的计时器将每秒启动并读取XML,您只需将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
Imports System.Xml
模块1
副标题()
Dim NewTemp=新的TempData
'在此处设置日期时间和温度
NewTemp.DateTime=DateTime.Now
NewTemp.fahrenheit=80'来自Arduino的数据
NewTemp.celsius=来自Arduino的36'数据
'创建XmlWriterSettings。
作为XmlWriterSettings的Dim设置=新的XmlWriterSettings()
settings.Indent=True
使用writer作为Xml.XmlWriter=Xml.XmlWriter.Create(“\TempXML.Xml”,设置)
“开始写作。
writer.WriteStartDocument()
writer.writeStarteElement(“TempXML”)的根。
writer.WriteElementString(“DateTime”,NewTemp.DateTime.ToString)
writer.WriteElementString(“body”,String.Format(“::{0}°C::{1}°F”,NewTemp.cercific.ToString,NewTemp.fahrenheit.ToString))
'结束文件。
writer.WriteEndElement()
writer.WriteEndDocument()
终端使用
端接头
端模块
公共类临时数据
Private\u DateTime作为DateTime
公共属性DateTime()作为DateTime
得到
返回日期时间
结束
设置(ByVal值作为日期时间)
_日期时间=值
端集
端属性
私人_华氏温度为Int32
公共财产华氏温度()为Int32
得到
返回华氏度
结束
设置(ByVal值为Int32)
_华氏温度=数值
端集
端属性
私有摄氏度为Int32
公共属性()作为Int32
得到
返回摄氏度
结束
设置(ByVal值为Int32)
_摄氏度=数值
端集
端属性
末级
请记住更改XML文件的路径,以适应PC上“XML.XmlWriter.Create”行中的位置


顺便说一句,要获得“°”度符号(您可以在上面的代码中看到)。。。将光标放在正确的位置,按住“Alt”键并键入0176,然后放开“Alt”…

这个问题太宽泛了,不可能有一个像样的答案。检查@WtfArdDev我已经用一个示例控制台应用程序更新了我的答案,要将DateTime&Temp数据写入XML文件,当您从Arduino接收串行端口上的数据时,您需要实现类似的功能