iphone controlled DIY home automation

Yayınlandı: Mart 13, 2014 / Hardware & Software
Etiketler:, , ,

DSC_0199-600x600

  • MCU:Atmega328P low voltage version (16Mhz)
  • Ethernet:WIZ5100
  • Arduino Uno bootloader
  • Supply voltage:5~12v
  • Output voltage:5v/3.3v
  • Digital IO: 8
  • Analog In: 8

Arduino uyumlu  x-board modülü ile, ethernet kontrollü uygulamalar yapmak mümkün. iphone’un da bu modül için (veya UNO+ethernet shield) bir uygulaması var. Adı: xhouse.

Bu uygulama hakkında detaylı bilgiye aşağıdaki linklerden ulaşabilirsiniz.

xhouse

http://www.dfrobot.com/community/xhouse-intelligent-life-amazing-internet-of-things-technology.html

https://itunes.apple.com/us/app/xhouse/id643548682?ls=1&mt=8

700px-Xboard_v2_pinout_1024x586Modülün tek eksiği, usb üzerinden programlanabilir olmaması. Bunun için bir usb-ttl çevirici almanız gerekiyor. Bunun dışında, bu modül ile ethernet üzerinden UDP veya TCP uygulamalar geliştirmek çok kolay.

udp portu üzerinden nasıl haberleşebileceğinize dair basit bir arduino kodu:
program, 8888 portundan delen paketleri alır ve geri gönderir.

 #include <SPI.h>
#include <Ethernet.h>

#include <EthernetUdp.h>

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(10, 0, 0, 16);
unsigned int localPort = 8888;      // local port to listen on
// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE]; //buffer to hold incoming packet,
char  ReplyBuffer[] = “acknowledged”;       // a string to send back
// An EthernetUDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
void setup() {
  // start the Ethernet and UDP:
  Ethernet.begin(mac,ip);
  Udp.begin(localPort);
  Serial.begin(9600);
}
void loop() {
  // if there’s data available, read a packet
  int packetSize = Udp.parsePacket();
  if(packetSize)
  {
    Serial.print(“Received packet of size “);
    Serial.println(packetSize);
    Serial.print(“From “);
    IPAddress remote = Udp.remoteIP();
    for (int i =0; i < 4; i++)
    {
      Serial.print(remote[i], DEC);
      if (i < 3)
      {
        Serial.print(“.”);
      }
    }
    Serial.print(“, port “);
    Serial.println(Udp.remotePort());
    // read the packet into packetBufffer
    Udp.read(packetBuffer,UDP_TX_PACKET_MAX_SIZE);
    Serial.println(“Contents:”);
    Serial.println(packetBuffer);
    sprintf(packetBuffer,”%s”, ” “);
    // send a reply, to the IP address and port that sent us the packet we received
    Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
    Udp.write(ReplyBuffer);
    Udp.endPacket();
  }
  delay(10);
}
wiki:

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s