Raspberry Pi Wall Calendar and Home Monitor
by MauritzVerbeke in Circuits > Raspberry Pi
41 Views, 0 Favorites, 0 Comments
Raspberry Pi Wall Calendar and Home Monitor
Ever wished your wall calendar could do more than just hang there? That's exactly what sparked this project.
The Smart Wall Calendar is a fully interactive, wall-mounted digital calendar built around a Raspberry Pi and a touchscreen display. Instead of scribbling appointments on paper and hoping you don't lose track, this system lets you add, edit, and delete events directly on the screen — mounted right on your wall where a regular calendar would be.
But I didn't want to stop at just a calendar. The real fun starts with the environmental monitoring station I built alongside it. A small unit equipped with sensors tracks temperature, humidity, and CO₂ levels throughout the home. An ESP32 microcontroller reads those sensor values and sends them wirelessly to the Raspberry Pi via Bluetooth — no cables running across the room.
Everything ties together through a web interface that runs directly on the Raspberry Pi. You can pull it up on the touchscreen itself or on any other device on your network. From there, you manage your calendar and browse both live and historical sensor data — all in one place.
It's part smart home hub, part environmental dashboard, and part calendar — and it all fits on your wall.
Supplies
Tools:
- A soldering iron/station
- Laser cutter
- 3d Printer
Components:
- DS18B20 x 1
- BME280 x 1
- SCD40 x 1
- Raspberry pi 5 8GB x 1
- HiLetgo ESP32 ESP-32D x 1
- WS2812B LED Strip (1m) x 1
- Active Buzzer x 1
- HAMTYSAN Raspberry Pi 10,1 inch draagbaar HDMI 1024x600 touchscreen x 1
- Custom PCB's (see additional Fritzing diagrams | 1 time of each type of pcb)
- cables x 1
- PLA 600G Zwart x 1
- PETG translucent 150g x 1
- Multiplex 8mm (600mmx450mm) x 1
Please find attached the Bill of Materials (BOM), which includes links to all the required components. The total estimated cost of the project is approximately €420, depending on supplier pricing and availability.
Buy Components
The first step is as follows: you need to purchase all the components, without this you cannot start the project. This is the part that will take the longest, because it can take some time for the PCB to be manufactured and delivered. You can export the PCB design from the Fritzing file and then order it from your supplier of choice
3D Printing
Before starting the practical part of the project (soldering, programming and assembling everything), you first need to begin with 3D printing. It is best to do this as early as possible, since it can also take some time before all parts are printed. You can find all the files that need to be printed in the attachment.
Materials and quantities:
- Main_frame
- Material : PLA
- Quantity: 1x
- Main_deksel
- Material : PLA
- Quantity: 1x
- Main_frame_locker
- Material : PLA
- Quantity: 4x
- Main_frame_support
- Material : PLA
- Quantity: 1x
- Main_frame_HDMIHoleder
- Note: This part must be split into two separate pieces in the 3D printing software before printing, so that the HDMI and USB ports can be properly inserted after the print.
- Material : PLA
- Quantity: 1x
- Main_frame_ledDecksel
- Material : Petg translucent
- Quantity: 1x
Lazer Cutting
Before starting the practical part of the project (soldering, programming, and assembling everything), you first need to begin with laser cutting. I have already prepared a complete file containing all the parts that need to be laser cut, including the correct quantities and dimensions required for proper use with your laser cutter. You can find this file in the attachment.
Materials:
- Material : Multiplex
- thickness : 8mm
Soldering the PCB
Once all the required ordered parts have arrived, we can finally start soldering the components onto the PCB. If you carefully follow the schematics (You can find this files in the attachment), the assembly process should be quite straightforward.
You can also choose to mount all components using female headers, which would make them hot-swappable. I initially built the project this way, but I experienced some issues with it, so I eventually decided to solder everything directly onto the PCB for a more reliable connection.
Setting Up the Pi
Before programming the components there are some steps that have to be taken with the pi.
Step 1: Setting up WLAN as static and using WLAN 1 as wifi connection
For this step I am going to drop the link to the official site of Raspberry where you can just follow the steps (you can find the steps here)
Step 2: Setting up a Mysql database on the pi
This is required to get sleep data out of later. On this you can also find enough tutorials on the internet so i am not going to explain it all here. (link to one of the tutorials here)
Step 3: Setting up apache webserver
This one is pretty simple. You just need to do 'sudo apt install apache2' and that's it. Now you can change the site in the directory '/var/www/html' to the html,css and js. A simple online tutorial can be used if needed (link to one of the tutorials here)
Fetching the Code
To get started, clone or download the project from my GitHub repository. This will give you access to all the necessary files, including the ESP32 code, backend, and configuration files. Make sure you place the project in a suitable directory before continuing with the setup.
Import SQL Database
Now that all the electronics have been correctly built, we can move on to the coding part of the project. I started by creating a normalized database, which you need to import into your MySQL server. The database query file can be found in my Git project.
Making Config.py
Fill in the config.py file, which you can find in my GitHub project, with the details of your database.
Installing the Library's
To make the code work properly, you need to install all required libraries. First, create and activate a virtual environment (venv), then install the dependencies using the requirements file:
Then install the required libraries:
Installing the ESP32
I programmed the ESP32 using the Arduino IDE. Before uploading any code, you need to install the required ESP32 board package in the IDE so it can communicate with the board properly (tutorial link here). The full source code can be found in my GitHub repository.
Assembly
Now that all the individual parts are ready — the soldered PCB, 3D printed components, and laser cut enclosure — it's time to bring everything together into one finished, working project.
Carefully fit the Raspberry Pi and touchscreen into the enclosure, route all cables neatly, and secure every component in place. Take your time during this step: a tidy assembly makes troubleshooting much easier down the line.
Once everything is mounted, power on the system and verify that all components are communicating correctly — the sensors, the display, and the web interface should all be up and running.
Congratulations — your smart wall calendar is complete and ready to be mounted on the wall!