极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12075|回复: 4

用手机浏览器控制灯的开关

[复制链接]
发表于 2016-3-6 20:40:10 | 显示全部楼层 |阅读模式
由于上班,好久没用Arduino了,今天编了一个程序,用浏览网页的方式控制家里的电灯,效果挺好!请看程序:

/*
请用电脑或手机浏览器输入http://192.168.0.17/?1
*/

#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xBB, 0xBD, 0xBE, 0xBF, 0xBE, 0xBD};
IPAddress ip(192, 168, 0, 17);
EthernetServer server(80);

int redLED=7;
int yellowLED=6;
int greenLED=5;
char c;

boolean LedState1=LOW;
boolean LedState2=LOW;
boolean LedState3=LOW;

void setup() {
  Serial.begin(9600);
pinMode(redLED,OUTPUT);
pinMode(yellowLED,OUTPUT);
pinMode(greenLED,OUTPUT);

digitalWrite(redLED,LedState1);
digitalWrite(yellowLED,LedState2);
digitalWrite(greenLED,LedState3);



  Ethernet.begin(mac,ip);
  server.begin();
delay(1000);
  //Serial.print("server is at ");
// Serial.println(Ethernet.localIP());
}


void loop() {
  EthernetClient client = server.available();
  if (client.connected()) {
    while (client.available()) {
      c=client.read();
      if(c=='?'){
        c=client.read();
        switch(c){
         case '1':
         LedState1=!LedState1;
         digitalWrite(redLED,LedState1);
         Serial.println(c);
         break;
         
         case '2':
         LedState2=!LedState2;
         digitalWrite(yellowLED,LedState2);
         Serial.println(c);
         break;
         
         case '3':
         LedState3=!LedState3;
         digitalWrite(greenLED,LedState3);
         Serial.println(c);
         break;
        }
     
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
          client.println();
          client.println("<!DOCTYPE HTML>");
         
          client.println("<html>");
          client.println("<head>");
          client.println("<title>My title</title>");
          client.println("</head>");
          client.println("<body>");
         
            client.print("<a href=\"");
            client.print("/?1\">redled</a><br /><br /><br /><br />");

            client.print("<a href=\"");
            client.print("/?2\">yellowled</a><br /><br /><br /><br />");
            
            client.print("<a href=\"");
            client.print("/?3\">greenled</a><br /><br /><br /><br />");
  
            client.println("</body>");
          client.println("</html>");
          delay(10);      
      
       client.stop();
      }
    }
}
}
回复

使用道具 举报

发表于 2016-3-6 23:16:07 | 显示全部楼层
用的什么网络模块?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-7 06:23:17 来自手机 | 显示全部楼层
网络模块用w5100,将网线接到家里的无线AP上,在手机浏览器中输入网址即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-7 20:00:02 | 显示全部楼层
       添加了表格,定义了字号,控制网页比以前漂亮点了。   
          client.println("<body>");
          client.print("<table border=\"0\" width=\"500\" align=\"center\"><tr height=\"100\"><td align=\"center\">");
            client.print("<a href=\"");
            client.print("/?1\"><font size=\"8\">redled</a></td></tr>");
            client.print("<tr height=\"100\"><td align=\"center\">");  
            client.print("<a href=\"");
            client.print("/?2\"><font size=\"8\">yellowled</font></a></td></tr>");
            client.print("<tr height=\"100\"><td align=\"center\">");  
            client.print("<a href=\"");
            client.print("/?3\"><font size=\"8\">greenled</font></a></td></tr></table>");  
            client.println("</body>");
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-16 11:18:17 | 显示全部楼层
E:\Media\OFF.gifE:\Media\ON.gifE:\Media\客厅.gifE:\Media\饭厅.gifE:\Media\厨房.gifE:\Media\主卧.gifE:\Media\次卧.gifE:\Media\主卫.gifE:\Media\次卫.gifE:\Media\阳台.gif
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 02:15 , Processed in 0.033226 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表