Raspberry Pi Home Hub
Create your own Home Hub with a Raspberry Pi and a touchscreen display, and Kivy
Video
For every project I create, I often make a corresponding YouTube video. Sometimes, there might be more than one video for a single project. You can find these videos in this section.
Explore more through this this dedicated video.
Project Chihuahua is a Raspberry Pi Home Hub that I built using a Raspberry Pi 4 and a 7β touchscreen display. The Home Hub is a central place in my home where I can control all my smart devices, check the weather and news headlines. Itβs a fun project that combines hardware and software to create a useful and interactive device.
Why Chihuahua?
I call this project Chihuahua because itβs small, cute, and always there when you need it. Just like a Chihuahua! I have two chihuahuas, Archie and Minnie!
Bill of Materials
| Item | Description | Quantity | Price | Total |
|---|---|---|---|---|
| Raspberry Pi 4 | single board computer | 1 | Β£33.30 | Β£33.30 |
| 7β Touchscreen | 7β touchscreen display | 1 | Β£55.00 | Β£55.00 |
| Touchscreen Case | Case for the touchscreen display | 1 | Β£15.99 | Β£15.99 |
| SD Card | 32GB SD card | 1 | Β£8.00 | Β£8.00 |
| Total | Β | Β | Β | Β£109.29 |
Kivy
I used the Kivy framework to create the user interface for the Home Hub. Kivy is an open-source Python library for developing multitouch applications. Itβs cross-platform and supports Android, iOS, Linux, OS X, and Windows. Kivy is easy to use and has a wide range of widgets and tools for creating interactive applications.
Aims for this project
I wanted to create a Raspberry Pi-based Home hub, like Amazons Echo Show or Google Nest Hub, but with more control over the software and privacy. I wanted to be able to:
- Display a large clock - with temperature and current weather icons
- Control my smart devices - showing data from sensors around the house
- Check the weather - from OpenWeatherMap
- Read the news headlines - from an RSS feed of my choosing
I also wanted to be able to customize the interface and add new features as I go.
Designing the User Interface
I designed the user interface for the Home Hub using Kivyβs kv language. The kv language is a declarative language that allows you to create user interfaces in a simple and intuitive way, and even store this configuration in a app.kv file. I created a main screen with navigation buttons for navigating to other screens.
Wireframes
Screens
- Home Screen - Will display the top 5 headlines from an RSS feed - Iβm going to use the BBC news feed for this.
- Weather Screen - This widget will show the 5 day weather forecast for my location. Iβm going to use OpenWeatherMap for this
- Smart Devices Screen - I will create a Chart widget that will display data from my smart devices. All of my sensors send data to an MQTT server on my network, so I can simply subscribe to the topics and display the data in a chart.
- Home Screen - Shows the Clock & Weather widget along with a menu button to navigate to the other screens and a background image.
Challenges with this project
First of all, it does run a litle slower than expected on Raspberry Pi 4 and the original 7β touchscreen display.
Secondly I spent way too long messing about with layouts and moving widgets around. Expect this, but make it easier by doing all this in the .kv file.
This page is awesome - Show some love!
Comments