使用以太网屏蔽为您的Arduino项目提供自己的微型Web服务器

您将需要:

  • 一个
  • Ethernet Shield(〜$ 35)–确保您拥有一个与Arduino匹配的版本路由器或交换机上的备用端口和以太网电缆均不兼容
  • Arduino应用程序中提供的WebServer示例
  • 设置

    以太网屏蔽使用 10到13 引脚来控制网络连接,因此将其排除在项目之外;针4也用于SD卡,但我们今天将不再使用。

    首先,请先打开文件->示例->以太网-> WebServer 。找到引用MAC和IP地址的行。

    我的MAC地址在盒子上找到–您的MAC地址可能在防护罩上。调整值的第一行–不过,您需要保留前面的 0x 位。从技术上讲,只要您的子网中没有任何冲突的值,您放置在这里的内容并不重要–即便如此,这是制造商分配的地址,因此我们应该坚持下去。只知道如果您弄错了它,它仍然可以工作。

    下一个是IP地址。我们需要一个特定的固定地址,以便我们可以正确设置端口转发-屏蔽层能够从DHCP获取地址,但这仅在仅用作客户端而不是服务器时才有用。填写您的本地网络上未使用且值得记忆的IP地址,路由器IP和255.255.255.0(子网)。如果这对您没有意义,请阅读我们免费的彻底的家庭网络指南。

    端口转发

    编辑显示 EthernetServer服务器(编号)的行,然后将数字更改为 8081 。如果您的ISP阻止了传统端口80上的网络流量,这将使我们的服务器侦听端口8081。

    此时上传演示并从本地计算机进行测试。当然,您也需要插入以太网电缆。保持USB插入状态,以备不时之需-以后可以用9V电源替换它,但我们仍在测试中。

    菜鸟提示:如果收到此错误,则表示您在MAC地址区域中误输入了大写O 而不是 0 。十六进制值中没有O!如果您真的是新手,那么值得参考我们的初学者Arduino指南!

    要访问Arduino,请直接从浏览器中输入地址和端口号。

    您应该会看到类似的东西-到目前为止一切都很好。不幸的是,这现在只能在局域网上访问,因此请进入路由器的端口配置页面,以设置从端口8081到Arduino IP (< / em>请参阅:什么是端口转发?

    从禁用了Wifi的移动3G互联网设备进行测试;请记住使用您的公共IP地址,而不是您的本地网络地址。您的路由器应该可以告诉您,或者只是问Google“我的IP是什么"。

    了解输出结果

    演示中提供的页面正在从中读取值模拟引脚-但是由于那里没有连接,您将变得毫无意义。尝试使用也在 A0 上的 10k电阻将光传感器(光敏电阻)连接到端口 A0 + 5v >和 gnd (这是一个分压器,因为模拟引脚只能读取电压,而不能读取电阻)只是为了确认服务器实际上正在读取值。请注意,当光强度发生变化时,其他引脚上的值实际上也会发生变化–这是因为它们都未连接。

    开始互动

    读取这些值非常好,但是从这里跳到 controlling Arduino是一个很大的飞跃,这超出了本教程的范围。我将向您介绍Arduino论坛用户hari,他写了一个用于与数字引脚进行交互的基本API,而不是重新发明轮子。使用此代码(我将其修改为与最新的以太网库配合使用),将LED的长引线(阳极)连接到引脚8,短引线连接到引脚7(使用合适的电阻器)。然后,您可以使用 http:// ip:port / digitalWrite / 8/1 形式的URL打开LED,并使用 http:// ip:port / digitalWrite / 8 / 0 将其关闭,并使用 analogRead / 0 读取模拟值。

    bildr的此示例还将教您如何通过读取来控制LED序列

    您可能还想检出此示例,该示例在页面上输出一个表单来控制眨眼RGB LED,尽管您可以轻松地将其适应RGB条纹,例如动态环境照明项目我们建立了一段时间。

    标签: