Cover image for Raspberry Pi Home Hub

Raspberry Pi Home Hub

Create your own Home Hub with a Raspberry Pi and a touchscreen display, and Kivy

5 January 2025
3 minute read

By Kevin McAleer
Share this article on


Table of Contents


  Difficulty:
beginner

  Category:

Raspberry Pi Home Hub

Create your own Home Hub with a Raspberry Pi and a touchscreen display, and Kivy


 5 January 2025   |     3 minute read   |   By Kevin McAleer   |   Share this article on

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.



Code

View Code Repository on GitHub - https://www.github.com/kevinmcaleer/chihuahua