Lilium is a software system composed by a varied set of modules; the only thing that they have in common is being developed and used by myself. While it won’t probably be useful to anyone but myself, it has a cool logo. 😉
I have published the source code on GitHub: https://github.com/bernarpa/lilium
So far, Lilium includes the following modules:
- Cecilia, a network of temperature and humidity sensors deployed throughout my home.
- PBOTS, a collection of web scrapers and a mailing system to notify updates of the target data sources. As of the time of writing I’ve implemented scrapers for the registers of the following public bodies: municipality of Montecastrilli, municipality of Acquasparta, region of Umbria and De Filis primary school.
The most prominent feature of the Lilium system is the web interface: Lilium is a Django project and each module is an app that implements some sort of dashboard or “command and control” interface.
However, both Cecilia and PBOTS rely on back-end support programs as well. The most interesting of them, perhaps, are the PBOTS web scrapers: depending on the target website they are Python-based (the preferred option) or PhantomJS/CasperJS-based (for websites whose only feasible scraping option is interacting with JavaScript code).
Cecilia has a fairly structured hardware and software back-end: it comprises two ethernet-connected Arduino Uno units with DHT22 temperature/humidity sensors and a Raspberry PI with a further DHT22 sensor. The Raspberry PI has the additional task to collect the readings and to send them to the Lilium web application, which is installed in my QNAP NAS.
Code names trivia
As you might have guessed by now, I have a tendency to give code names to almost everything. 🙂
Lilium, the project name, doesn’t have a specific meaning: it is just the Latin name for the lily flower. Most importantly, this code name facilitated the design of the project logo, since fleur-de-lis outlines are widespread and well-known. A previous attempt at naming the project, “Iris”, fell short of a decent logo design.
Cecilia, the sensor network module name, takes after the code name of my house, which in turn is inspired by its location: Saint Cecilia is the patroness saint of Acquasparta.
PBOTS, the web scraper and mailing list module, is a pun on my name which just sounds good and barely applicable to this context (after all, a scraper is a kind of bot).