Microduino W5500网络(七)/zh

来自Microduino Wikipedia
跳转至: 导航搜索

目的

本教程将教大家如何用web浏览器来控制Microduino,从而控制一个led。

设备

  • 其他硬件设备
    • USB数据连接线 一根
    • 220欧姆电阻 一个
    • LED灯 一个
    • 面包板跳线 一盒

一些HTML

先来了解一下HTML,当你的浏览器请求Microduino时,它会向你的浏览器发送如下图的HTML:

上图绿色为HTML部分,显示的是Led的实际工作状态和一个按钮来改变它。

从HTML页面的源代码我们可以找到变量的元素,即根据Led状态来改变的元素。

从代码中,我们还可以了解,当用户单击按钮时发生了什么事情:浏览器会请求Microduino如下页面。

  • /?status=ON,如果我们要打开Led;
  • /?status=OFF,如果我们要关闭Led。

name=value它的作用是通过GET方法向web服务器发送一个标准的表单。

原理图

  • Microduino-W5500
  • Microduino-RJ45
  • Microduino-Core
  • Microduino-USBTTL

层层堆叠,再插上网线。

如下图所示:

程序

[MicroduinoW5500Seven]

调试

步骤一:首先需要确保你的IDE中有_02_Microduino_Ethernet_WIZ库,如果没有下载放到你的IDE的libraries文件夹中,重启IDE。

步骤二:如果你的IDE的libraries文件夹中还有之前的Ethernet库的话,需要删除掉,因为之前的Ethernet是根据W5100协议编写的。

然后需要改动一下_02_Microduino_Ethernet_WIZ文件以使库函数与Microduino-W5500模块的引脚对应:

先找到_02_Microduino_Ethernet_WIZ库中的utility文件夹里的w5100.h

把代码中的 #define wiz_cs_pin 8 //CS_PIN 改为 #define wiz_cs_pin 10 //CS_PIN 就可以了。

步骤三:解释一下代码:

//定义了2个静态字符串(ON,OFF)和2个字符串变量,字符串变量将用来创建HTML页面,将2个静态字符串之一赋值给这2个变量。

   char* on = "ON";
   char* off = "OFF";
   char* statusLabel;
   char* buttonLabel;

//在setup()种配置Led的初始状态(off)。

     pinMode(ledPin, OUTPUT);
     digitalWrite(ledPin, LOW);
     ledStatus = false;

//在Ethernet_data()中,我们的代码解析浏览器的请求,寻找状态ON/OFF命令。

 if(strstr((char *)buffer, "GET /?status=ON") != 0) {
   Serial.println("Received ON command");
   ledStatus = true;
 }
 if(strstr((char *)buffer, "GET /?status=OFF") != 0) {
   Serial.println("Received OFF command");
   ledStatus = false;
 }

//更新ledPin(Microduino与Led相连的端口)状态,把statusLabel与buttonLabel两个变量关联到正确的标签。

       if(ledStatus) {
         digitalWrite(ledPin, HIGH);
         statusLabel = on;
         buttonLabel = off;
       } else {
         digitalWrite(ledPin, LOW);
         statusLabel = off;
         buttonLabel = on;
       }

步骤三:连接好灯泡,如下图:


步骤四:下载代码并编译通过。

步骤五:用浏览器访问Microduino的IP地址后,点击页面上的ON/OFF,看看灯泡有啥反应。

结果

访问你的Microduino IP地址,如果能看到如下界面:

你就可以用浏览器控制灯泡了。

视频