Home Automation Using Arduino / XMPP Client for Arduino

I am trying to set up a system to automate certain tasks in my home.

I am thinking of a solution in which a server-side application could send / receive Arduino commands / data (supplied with Arduino Ethernet Shield ) over the Internet.

Here, the Arduino can act as a touch interface to a server application or an interface of a command executor for a server application.

eg. (user history):

  • In the upper water tank in my house, there is a water level sensor attached to the Arduino (attached to the Arduino Ethernet Shield screen).

  • Another Arduino (supplied with the Arduino Ethernet Shield) is connected using a relay / latch. This relay / latch is then connected to the water pump.

  • Now the server-side application on the Internet can receive / receive water level information from Arduino in the water tank.

  • Depending on the received water level information, the web application should send the appropriate signals / commands to the Arduino to the water pump in order to switch 'ON' or turn on the β€œOFF” water pump.

Now that such a system works over the Internet, I am thinking of using one of the types of solutions in order of my priority:

  • Using XMPP to communicate between the server application and Arduino.

  • Using an HTTP poll.

  • Using HTTP hanging GET.

To solve the number 1, I need to implement the XMPP client, which will be located on the Arduino.

Can I write an XMPP client small enough to live on an Arduino?

If so, what is the smallest possible XMPP client functionality that I need to write for Arduino so that it can access XMPP server solutions, such as GTalk , etc.

For solution number 2 and 3, I need guidance in the implementation.

And which solution would be cost-effective and easily extensible?

+4
source share
8 answers

Having studied all the available options, I was not satisfied with any other.

I am currently working to put my own solution to the problem that I identified above.

The solution is in the lines of the comment I answered "Dustin" above.

The project URL will be published as soon as I come up with the first release of my solution here.

0
source

You can take a look at MQTT, it has an arduino library, its a simple message broker for publisher subscribers.

+3
source

I do not think that I would be looking for anyone from what you are trying to do.

Just feed the sensor data from the Arduino at a given interval, and the other side will make the mind.

In addition, for these types of projects, I try to avoid Ethernet screens and use XBee or RFM12B . This will help you in this direction, but more importantly, greatly simplify the work with a large number of devices that perform both telemetry and control.

If something like XMPP was running on Arduino, it would be a really truncated presence protocol proxied through a more intelligent server. That is, it will be a similar amount of work. Although it’s possible, XMPP in 1 KB of RAM along with the application code sounds very painful.

+1
source

We are working on an open source relay infrastructure to make Arduinos (and any other device that supports TCP / IP sockets) available over the Internet. Your application can then call Arduinos through a simple REST API. See http://www.yaler.org/ for more information and a live demo.

Regards, Tamberg

+1
source

There is a project in development, has policies and data recording capabilities. (sensors / any_data_source via xmpp) http://middlewaresensing.wordpress.com/

+1
source

Why not use the good old RS485 to access the sensor drive? Just come up with a simple protocol (address, command, data). If you need something more complicated, use the other guy as the RS485 / ethernet bridge.

+1
source

Open source project

Sensor and Network Management | data logger data | charts | politics | history / date / sensor rules | sms / email / url / twitter / xmpp notifications | event registration | Google Maps | and much more

demo at http://dev.hci.uma.pt/sawa

wiki on dev.hci.uma.pt/mediawiki/index.php

blog at middlewaresensing.wordpress.com

You can use sending data to the server using HTTP Post, then the sensor data is published via XMPP. HTTP Post (for devices with limited resources, such as arduino) and sox_tools xmpp client for publishing via xmpp on this system

+1
source

There is a new library for creating REST HTTP requests and receiving JSON responses on Arduino (with Ethernet) called RESTduino. An HTTP interface may be useful for your Arduino project.

http://jasongullickson.posterous.com/restduino-arduino-hacking-for-the-rest-of-us

+1
source

All Articles