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 ºC :: 87 º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' 去吧......
我有一个 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 ºC :: 87 º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' 去吧......