嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

title

 

使用Arduino乙太网作网络连接的控制和传感器。

我以前用过各种的Arduino板﹐但是我从来没有使用过有乙太网连接的Arduino板。虽然我有一台电脑及使用Wi-Fi等﹐像其他人一样﹐我已经把电脑网络视为理所应当的﹐因为这些通常由DHCP负责,没有人需要理会它。

午后阅读

在我开始使用Arduino之前﹐我阅读了一些关于网络和TCP / IP的资料﹐所以我理解当中的一些基础。

LED服务器

为了开始去使用它﹐我决定先使用Arduino乙太网遥距控制电路板上的LED。我在网上看了一下并找到了一个可以完成这个控制的范例sketch程序。我将八个LED和相应的电阻连接到数字引脚﹐然后将它们连接到GND。

title

此sketch程序唯一需要更改的是配置MAC地址﹐网关﹐子网和分配的IP地址。 IP地址对于您所在的网络是唯一的﹐而MAC地址对于世界上每个乙太网的设备是唯一的。此sketch程序中的默认MAC地址为DE-AD-BE-EF-FE-ED – 而在技术上﹐如果连接到同一网络的两个或多个内容共享此MAC地址﹐则无法使用。

title

确保MAC地址有效的最佳方法是使用分配给乙太网设备的MAC地址。这通常会打印在板上的某处 (在Arduino以太网的底部)。

title

上传后,LED就可以通过基本网页来控制。虽然这只是一个非常简单的项目,但是这可以让你了解到用Arduino乙太网透過网络可以控制到什么。

title

逆向工作

在使用Arduino乙太网来控制LED之后﹐我想倒过来试试。这次我将使用乙太网板上的模拟引脚来获取读数并通过网页显示。

我在IDE中查看了一些范例并很快决定使用WebServer的范例。

title

读取数值

为了熟悉sketch程序﹐我决定当模拟输入连接到板上,就会进行读取。所以在一开始﹐我使用了第二块Arduino板 (Uno) 并上传了一个LED闪烁sketch程序。

title

然后我将Arduino乙太网连接到这Arduino Uno 去读取和更新网页。

title

*上图显示了模拟引脚保持浮动状态时获得的数值。

添加传感器

为测试sketch程序是否准确运作﹐所以我接下来会继续去使用Arduino乙太网的配件。我想创建一个遥距温度计﹐以便您可以远程监控房间的温度。

title

我使用TMP36温度传感器与WebServer的范例。我把这三个引脚连接到A1﹐5V和GND。这开始通过网页显示读数﹐但是﹐数值都破百了!对置于盛夏的英国来说﹐这似乎有点不太对劲。我很快就意识到我需要在sketch程序中加入一条算式﹐把这些读数转换为实际温度。我在制造商的数据表中发现了这一条算式﹐可以把读数转换为摄氏度。然后把它添加到sketch程序当中﹐令温度传感器的读数可以摄氏度的方式显示在网页上。

temperture = (((( reading/ 1024.0 ) * 5 ) -0.5 ) * 100 ))

title

编辑HTML

在这里﹐我开始研究如何编辑HTML﹐使网页更美观。我添加了标题并更改了开头的间距。我还修改了sketch程序﹐以便网页能更频密地自动刷新。

title

我接下来会把一个LDR与一个匹配的电阻连接到Arduino乙太网上的A2引脚。我更新了sketch程序﹐以便它会读取这个引脚及显示它的读数﹐以说明它正在读取﹐而不只是“引脚A0读取:...”。

title

一旦LDR和温度传感器接线并一起运作后﹐我在HTML上作最后检查。我为LDR添加了额外的标题﹐并在网络上得到很多的帮助之后﹐我弄清楚了如何改变页面的背景颜色。

title

title

总而言之﹐我认为网页看起来不算太糟糕 ( 对于第一次尝试来说 )。这个sketch程序的其中一个优点是﹐您可以随时连接最多6个模拟设备到Arduino乙太网。扩展WebServersketch程序可能会产生一些有趣和令人兴奋的未来项目!

Trainee Electronics Engineer, currently studying towards my degree in Electronic Engineering at the University of Hudderfsield. Completed my HND in Electrical & Electronic Engineering from Bradford College 2017. Love to try new things and build interesting projects!