My question isn't specific to Arduino but can concern Raspberry Pi and all Internet of Things homemake projects.

As I'm preparing a personal projet with sensors, data storage and visualisation/reporting web page (not yet Android app) I'm looking about Internet of Things platform.

It seems all that I can find are cloud related system. I would prefer a home localized solution but I'm not able to find one (and maybe open source) where datas don't go outside home.

The goal is to be able to :

  • send datas from my Arduino to a home storage server
  • store these data into database for later query (may be MySql)
  • trigger some computation or aggregation job over datas
  • prepare some graphs
  • generate some html page from template
  • option: allow Android client to connect and get datas/graphs
  • Before starting thinking how to create my own (non standardized) system is anyone can give me some advice ? some name of such existing system ?



    2 Answers 2


    I recently worked extensively on a Home Automation Project and here's what I would recommend based off of that:

    1. Use Arduino for hardware interfacing.
    2. Use Raspberry Pi for hosting your server.
    3. Write your server using Node.js (or Python if you wish).
    4. Use Express, Socket.io (or Python simple server). Google these.
    5. Use Serial (USB) for communication between Arduino and Raspberry Pi
    6. Use RF/BLE if you want to go wireless.
    7. Use Redis or MySQL for database.
    8. Use a graph JS API for charting.
    9. To build an android app, send http requests (or a Socket.io link), for communication.

    This is a simple to implement, but you'll need to put some time. Good luck. All of the above steps are abstracted from each other. This means that if you want to incorporate additional features, you can change any stage without affecting the whole.


    Setting up a basic webserver on the Raspberry Pi is fairly straightforward, and as long as you have a firewall and aren't port-forwarding the data will be restricted to your home network. You can also setup the firewall on the Pi to allow only local access fairly easily. I did a similar project, and here was my process.

    1. Get the Arduino to output the data in a standard way. I used CSV format, but as long as it easy to parse you should be fine.
    2. Get the Arduino to make the data available. I ended up using the webserver sketch to generate a page with all of my values, but you could just as easily have it send data instead.
    3. Insert the data into a database. I had a cron job that every x minutes would pull the webpage, parse the data, and insert it into the database.
    4. Make the webpage. There are a ton of open source graphing projects, and I chose a PHP based one as that is the language I am most comfortable with. Javascript, Python, and CSS can also do it if you prefer.
    5. Since I used PHP it was fairly easy to setup a template system. Basically it had some standard include statements, then worked off of $_GET variables to call a variety of graphs.

    Your Answer

    By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

    Not the answer you're looking for? Browse other questions tagged or ask your own question.