I had a discussion with a friend of mine on Why the hell are you designing a new PCB instead of buying one ? He is right: there is a lot of great cheap boars like Moteino, Anarduino, Jeenode… But on the other side:
- I like to learn.
- Some of them are expensive compared to a full DIY solution.
- It is not so difficult: it is just an ATmega, an RF chip, an optional voltage regulator and some passives selected to optimize power consumption.
- Adapted to my needs (RFM69hw, dedicated footprint for some sensors, form factor, regulator, connectors…).
- I am not reinventing the wheel, so I will use libraries from these boards.
- Regarding firmware they have done a great job, but I did not found it flexible enough or too complicated for my needs.
Software & IHM
A lot of big softwares, hhis time too, I see the pros and cons:
- Good GUI design, looks pretty
- Only use of MySQL, not really adapted for storing sensors data on a small embedded Linux card
- Open-source but commercial aspects are really intrusive
- Not so easy to add a module
- Seems more open and lightweight than Jeedom
- Bad GUI design
- Seems to be based on SQLite, lightweight but some old test on a Gumstix gave me issues after a few months
- Created to be linked to any modules or database
- Not lightweight, might be related to the use of Java
- Bad GUI design for version 1, the v2 seems great.
- The v2 will be too late for me
Also, I discovered Node-Red which is really easy to use and created “for wiring together hardware devices, APIs and online services in new and interesting ways”, exactly what I am doing. The main drawback is that everything is asynchronous.
On the database side I wanted to try time-series databases which are made to collects metrics, and NoSQL.
- MongoDB with or without cube layer: I heard good things but never tried.
- Graphite: I tried on a Raspberry Pi, it works but it is a complete solution: too big for me, a lot of dependencies and components
- InfluxDB: I like the approach, the v0.9 add ‘tags’ which are good for my application, perform well on the rPi. Maybe a too unstable but I will give a try :)
On the GUI side, I did not found what I want yet, so I am testing Grafana to display data and might use some links inside to start actions until I find something great. I might also do it myself, but I am far away from being a designer so it can be really ugly…