Dear friends welcome back!
This is Nick from educ8s.tv and today we are
going to see how to develop a simple Graphical
User Interface in order to control the GPIO
pins of our Raspberry Pi.
Without any further delay, let’s get started.
The project we are building today is very
simple but very useful.
As you can see I am using an application that
I have developed to turn on or off the LED
simply by touching an on-screen button.
In this video, we are going to see how to
develop an application like this, and as you
are going to find out, it is extremely easy!
The hardware setup of today’s project is
this.
I am using a Raspberry Pi 3B+ but you can
use any Raspberry Pi you want that has 40
pins.
So this project will work with the newer Raspberry
Pi 4 as well as with the older ones.
I am also using a 5-inch touch display.
You can find links to all the parts I use
in the description of the video below.
If you don’t have a touch display, the Graphical
User Interface we are developing will work
fine with a mouse as well.
I have connected the positive leg of the LED
via a 100Ω resistor to pin 40 (GPIO pin 21)
of the Raspberry Pi.
The other leg of the resistor is connected
to pin 39 which is GND.
The pins of the Raspberry Pi use 3.3V logic
levels unlike Arduino which uses 5V, have
that in mind.
Then I connect the screen and we boot Raspberry
Pi up.
All we have to do is to run this simple Python
program I have developed using the guizero
library.
The program file is located at the desktop
so I run the following commands in order to
run it.
cd Desktop
sudo python3 demo.py
That’s it, the Graphical User Interface
has appeared and when I press the button the
LED lights up, when I press it again it goes
off.
When I press the exit button, the application
quits.
Now that we know how to run the application
let’s see the code of it.
In order to develop this Graphical User Interface,
we are going to use the guizero library.
This library is the easiest library I have
found to develop simple graphical user interfaces.
Since it is not included in the Raspberry
Pi OS we have to download it.
All we have to do is to open the terminal
and type the following command:
sudo pip3 install guizero
After a few seconds, the library is installed
and we are ready to use the library in our
code.
As you can see the code of the project is
simple and small.
We only need 25 lines of code.
At first, I import the libraries we are going
to use in the code.
Next, we declare that we are going to connect
an LED to GPIO pin 21 of the Raspberry Pi.
After that, there are two functions that I
am going to explain later.
Next, I create our main app window.
We set the window title to “First GUI”
and the dimension of it to 800x600 pixels.
The next step is to create the two Pushbuttons.
We first create the LED ON button with this
command.
We declare the function to execute when the
button is pressed, the text of the button,
the alignment on the screen, and lastly the
width and the height of the button.
Be careful here, the width and height value
is not pixels but characters.
The last step is to set the text size of the
button.
Following the same procedure, we create the
Exit button.
When the exit button is pressed the exitApp
function is executed and as you can see it
just exits the app.
The toggleLED function is executed when the
ledButton is pressed.
If the LED is ON, it turns it OFF and changes
the Button text to “LED ON” else it turns
the LED ON and changes the Button text to
LED OFF.
As you can see the code is very simple and
you can easily modify it in order to fit your
needs.
As you always you can find the code of this
project in a link in the description of the
video.
You can control anything with it and having
on-screen controls make things so much easier!
That’s today’s project.
I hope that you find it useful.
Are you going to use the guizero library to
make your own Graphical User Interfaces in
order to control your projects?
Please post any project ideas in the comments
section below.
Until next time, Watch, Learn, Build!
