RabbitMax Weather Station with Raspberry Pi Sense HAT
The Idea
RabbitMax is an open source platform for Internet of Things written primary in JavaScript. The pivots are the MQTT broker Mosquitto, Node.js and the Yocto Project. RabbitMax also takes advantage of other popular open standards and open source technologies such as MySQL, Paho, npm, Express, jQuery, jQuery Mobile, font Awesome, Python, systemd, connman and many more.
RabbitMax uses MQTT to connect Internet of Things to the Cloud. It also offers RESTful HTTP API and HTML5 user interface with a responsive design. Custom GNU/Linux distribution created using the Yocto Project and Openembedded is running on each embedded device.
DIY Weather Station
Open IoT Challenge 2.0 was an excellent opportunity for me to develop the first prototype of a device for RabbitMax. I managed to create a headless weather station using off the shelf low cost components: Raspberry Pi 2, Sense HAT, WiFi USB adapter, microSD card and a power supply.
As a result this DIY device is easy to use for end consumers. Anyone can get it working in just three steps:
Assemble the weather station
Connect to the open WiFi network provided by the weather station and configure it
Monitor and control the weather station through a web browser on your smartphone, tablet or personal computer.
From hardware point of view, the weather station is not that interesting because there are a gazillion devices withe same hardware capabilities. The value of the project is in the open source software and the innovative combination of other well known open source projects.
RabbitMax users are divided into organizations. Each user can join multiple organizations and each device is owned by a single organization. For example, this way the whole family can have access all of weather stations at their home.
Show me the Code
RabbitMax is entirely open source project. The whole source code is available at GitHub. JavaScript is the primary programming language for both front and back end. Even some of the applications on the embedded device are developed with JavaScript and deployed in its GNU/Linux distribution created with the Yocto Project. Therefore RabbitMax is very convenient for both web developers and students. The weather station can be used for home automation and educational purposes.
There is GitHub organization for RabbitMax with several sub-projects:
Weather Station - Python and Node.js scripts for Raspberry Pi Sense HAT
RabbitMax-config - scripts and user interface to configure the device on first boot
meta-rabbitmax - Openembedded meta layer for building RabbitMAX GNU/Linux distribution for embedded devices using the Yocto Project
As part of my efforts in the Open IoT Challenge 2.0 I was able to submit a couple of patches related to Raspberry Pi Sense HAT to the upstream of meta-raspberrypi:
If you are interested in technical details please have a look at the documentation of the project and the additional resources. I have published video tutorials with technical details about specific parts for RabbitMax. These tutorials are dedicated to popular open source projects so I hope that the bring value not only to RabbitMax developer but to the whole community.
Conclusions and Next Steps
Initially the project was called RabbitPi but during Open IoT Challenge 2.0 I realized that this name is not that good because it sounds similar to Raspberry Pi and its pronunciation may lead to confusion. Recently I renamed it RabbitMax and got the domain rabbitmax.com. Soon I will upload a simple web site to promote the project.
There is still plenty of work to be done on the source code. New contributors are always welcome. In long term future I am considering the possibility to design open source hardware weather hat for Raspberry Pi using 1602 LCD display, RGB LED, buzzer, I2C sensors for temperature, humidity, barometric pressure, and a relay. Eventually I may start a crowdfunding campaign for the development of the hardware.