tag 标签: 远程控制车库门开关

相关博文
  • 热度 26
    2013-6-19 16:47
    1665 次阅读|
    0 个评论
    “我用一个以太网插板负载到Arduino上。如此我便实现了打开我的车库门……就是这样! 我也安装了一个磁传感器,门是开着的或者封闭的都可以让我知道。所有都通过Telnet实现。 我修改了来自聊天服务器代码。现在贴出代码给爱好者使用。“   图一  安装在车库里的Arduino装置 图二 正在打开车库门 图三 用手机远程控制车库门开关 代码: #include SPI.h #include Ethernet.h String readString; // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network. // gateway and subnet are optional: byte mac[] = {   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1, 177); IPAddress gateway(192,168,1, 1); IPAddress subnet(255, 255, 0, 0); // telnet defaults to port 23 EthernetServer server(23); boolean alreadyConnected = false; // whether or not the client was connected previously const int analogInPin = A4; int relay = 3; int sensorValue = 0; void setup() {     pinMode(2, INPUT_PULLUP);   pinMode(relay, OUTPUT);     digitalWrite(relay, HIGH);   // initialize the ethernet device   Ethernet.begin(mac, ip, gateway, subnet);   // start listening for clients   server.begin();  // Open serial communications and wait for port to open:   Serial.begin(9600);    while (!Serial) {     ; // wait for serial port to connect. Needed for Leonardo only   }   Serial.print(“Chat server address:”);   Serial.println(Ethernet.localIP()); } void loop() {     // wait for a new client:   EthernetClient client = server.available();   // when the client sends the first byte, say hello:     if (client) {     if (!alreadyConnected) {       // clead out the input buffer:       client.flush();          Serial.println(“We have a new client”);       client.println(“Hello, client!”);       alreadyConnected = true;             }   while (client.available()) {            if (client.available() 0) {                  // read the bytes incoming from the client:            char thisChar = client.read();        readString += thisChar;       // echo the bytes back to the client:       //server.write(thisChar);  //     server.write(thisChar);       // echo the bytes to the server as well:      Serial.write(thisChar);       }   }   //check here for stuff     //Code to open if (readString.toInt() == 1111) {   server.println(“Running Opener”); if (checkOpen() == 0) { server.println(“Closing”); }else { server.println (“Opening”);}   digitalWrite(relay, LOW);   delay(1000);     digitalWrite(relay, HIGH);   }     //code to check if open/closed   if (readString.toInt() == 5555) {if (checkOpen() == 0) {       server.println(“Garage is OPEN”);     } else { server.println(“Garage is CLOSED”); }}     readString = “”; //end check   } } //checkopen int checkOpen() {sensorValue = digitalRead(2); if (sensorValue == 0) {return 1; }else {return 0;}} // 0 = OPEN so we close. //1 = CLOSE so we open.   更多信息与我们交流: WIZnet邮箱: wiznetbj@wiznettechnology.com WIZnet中文主页: http://www.iwiznet.cn WIZnet中文博客: http://blog.iwiznet.cn WIZnet企业微博: http://e.weibo.com/wiznet2012
  • 热度 29
    2013-6-19 16:36
    1940 次阅读|
    0 个评论
    “我用一个以太网插板负载到Arduino上。如此我便实现了打开我的车库门……就是这样! 我也安装了一个磁传感器,门是开着的或者封闭的都可以让我知道。所有都通过Telnet实现。 我修改了来自聊天服务器代码。现在贴出代码给爱好者使用。“   图一  安装在车库里的Arduino装置 图二 正在打开车库门 图三 用手机远程控制车库门开关 代码: #include SPI.h #include Ethernet.h String readString; // Enter a MAC address and IP address for your controller below. // The IP address will be dependent on your local network. // gateway and subnet are optional: byte mac[] = {   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,1, 177); IPAddress gateway(192,168,1, 1); IPAddress subnet(255, 255, 0, 0); // telnet defaults to port 23 EthernetServer server(23); boolean alreadyConnected = false; // whether or not the client was connected previously const int analogInPin = A4; int relay = 3; int sensorValue = 0; void setup() {     pinMode(2, INPUT_PULLUP);   pinMode(relay, OUTPUT);     digitalWrite(relay, HIGH);   // initialize the ethernet device   Ethernet.begin(mac, ip, gateway, subnet);   // start listening for clients   server.begin();  // Open serial communications and wait for port to open:   Serial.begin(9600);    while (!Serial) {     ; // wait for serial port to connect. Needed for Leonardo only   }   Serial.print(“Chat server address:”);   Serial.println(Ethernet.localIP()); } void loop() {     // wait for a new client:   EthernetClient client = server.available();   // when the client sends the first byte, say hello:     if (client) {     if (!alreadyConnected) {       // clead out the input buffer:       client.flush();          Serial.println(“We have a new client”);       client.println(“Hello, client!”);       alreadyConnected = true;             }   while (client.available()) {            if (client.available() 0) {                  // read the bytes incoming from the client:            char thisChar = client.read();        readString += thisChar;       // echo the bytes back to the client:       //server.write(thisChar);  //     server.write(thisChar);       // echo the bytes to the server as well:      Serial.write(thisChar);       }   }   //check here for stuff     //Code to open if (readString.toInt() == 1111) {   server.println(“Running Opener”); if (checkOpen() == 0) { server.println(“Closing”); }else { server.println (“Opening”);}   digitalWrite(relay, LOW);   delay(1000);     digitalWrite(relay, HIGH);   }     //code to check if open/closed   if (readString.toInt() == 5555) {if (checkOpen() == 0) {       server.println(“Garage is OPEN”);     } else { server.println(“Garage is CLOSED”); }}     readString = “”; //end check   } } //checkopen int checkOpen() {sensorValue = digitalRead(2); if (sensorValue == 0) {return 1; }else {return 0;}} // 0 = OPEN so we close. //1 = CLOSE so we open.   更多信息与我们交流: WIZnet邮箱: wiznetbj@wiznettechnology.com WIZnet中文主页: http://www.iwiznet.cn WIZnet中文博客: http://blog.iwiznet.cn WIZnet企业微博: http://e.weibo.com/wiznet2012