用户工具

站点工具


ocrobot:alpha:enc28j60:tutorial06

WEB服务器

一个简单的Web服务器,显示的模拟输入引脚值。

搭建电路

1、将ALPHA ENC28J60堆叠于ALPHA MEGA328-U上;

2、用网线连接交换机与ALPHA ENC28J60,在拨码开关中,将10拨上;

3、将ALPHA MEGA328-U通过数据线连接上电脑

代码

/*
 网络服务器
 
一个简单的Web服务器 显示的模拟输入引脚值。
 使用一个Arduino WIZNET以太网盾。
 
 创建182009年12月
 由David A.梅利斯
 修改2012年4月9日
 由汤姆Igoe
 
 */
 
#include <SPI.h>
#include <UIPEthernet.h>
 
//输入MAC地址和IP地址下面控制器。
// IP地址将取决于你的本地网络上:
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,100,177);
 
//初始化以太网服务器库
//你要使用的IP地址和端口
//(端口80是默认HTTP):
EthernetServer server(80);
 
void setup() {
//打开串口通信和等待端口打开:
  Serial.begin(9600);
   while (!Serial) {
    ;//等待串口连接。
  }
 
 
 //启动以太网连接和服务器:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}
 
 
void loop() {
  //监听传入客户
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
   // http请求以一个空行结束
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
       //如果您收到了该行的末尾(收到一个换行符
        //字符)和行是空的,HTTP请求已经结束,
        //这样你就可以发送回复
        if (c == '\n' && currentLineIsBlank) {
        //发送一个标准的HTTP响应头
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  //连接将响应完成后关闭
	  client.println("Refresh: 5");  // 刷新页面会自动每隔5秒
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          //每个模拟输入引脚的输出值
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("<br />");       
          }
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // 你开始一个新行
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          // 你已经得到了在当前行的字符
          currentLineIsBlank = false;
        }
      }
    }
    // 给网络浏览器的时间以接收数据
    delay(1);
    // 关闭连接:
    client.stop();
    Serial.println("client disonnected");
  }
}

具体操作

1、打开IDE的串口监视器,查看ENC28J60分配的IP地址。

2、打开浏览器,输入IP地址,即可查看

返回上一级

ocrobot/alpha/enc28j60/tutorial06.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1