Nextion Touchscreen Outlook Calendar Meeting Reminder
by suriono in Circuits > Arduino
1573 Views, 2 Favorites, 0 Comments
Nextion Touchscreen Outlook Calendar Meeting Reminder


The reason I started this project was because often times I missed meetings and figured I need a better reminder system. Even though we use Microsoft Outlook Calendar but I spent most of my time on Linux/UNIX on the same computer. While working with Linux the PC Outlook Calendar popup reminder is hidden behind LInux VNC or behind another app on my Windows.
I came up with an idea of displaying a meeting reminder above my computer monitors so it is more visible. The plan was to have a touchscreen system to retrieve my next meeting from Outlook Calendar, and a button to press to dismiss a meeting.
Key Features:
1. Within two minutes before a meeting, a lever begins to move with a gentle motor sound.
2. The touchscreen displays the number of minutes until the next meeting (positive numbers) or indicates lateness with a blinking negative number.
3. The meeting subject and location are shown.
4. During a meeting, pressing the touchscreen "Dismiss" green button (bottom left corner) stops the lever and display from blinking, because it is annoying as it should. It then displays information about the next meeting.
5. Meeting appointments are retrieved from my Microsoft Outlook Calendar.
Supplies
Required hardware:
- Nextion touchscreen (from $22)
- Arduino Nano (from $4) or other Arduino board. I picked Nano because of small formfactor to fit into small case and it has USB port.
- Mini low power servo motor to allow the Arduino board to drive without requiring another motor driver to keep the project at low cost and simple.
Optional: Find a 3D printer or 3D printer service to print the casing.
I designed and 3D printed the case to fit my monitors and it may not fit other monitors. You may need to design the case.
Setting Up Nextion Touchscreen

- To learn about Nextion there are a number of tutorials including from this Instructible website, search for "Nextion".
- You can get any Nextion touchscreen from an online store such as Amazon.com (see the picture)
- Download my Nextion file for this project from the following link. You can modify it as desired: https://github.com/suriono/MyArduino/blob/master/Outlook%20Calendar/Polar_Calendar.HMI
- Open the file using the Nextion Editor. The Nextion Editor can be downloaded from: https://nextion.tech/nextion-editor/:
- Save the file into a micro SD card.
- Insert the card into the Nextion, then power up, it will automatically start the installation.
- Power down the Nextion.
- Remove the card.
- Power up the Nextion and you should see the display similar to what is shown in this tutorial.
Setting Up Arduino


- Open Arduino Sketch IDE, add the Easy Nextion library as shown in the picture.
- Upload my code into the Arduino Nano: https://github.com/suriono/MyArduino/tree/master/Outlook%20Calendar/arduino_outlook_servo
Wiring: Nextion to Arduino
![20200109_105607[1].jpg](/proxy/?url=https://content.instructables.com/FDU/H3CI/K55W3TNH/FDUH3CIK55W3TNH.jpg&filename=20200109_105607[1].jpg)
The following is the diagram of the wiring:
Nextion to Arduino
==================================
5V ------> 5V
TX ------> pin 10
RX ------> pin 11
GND ---> GND
Connect the Arduino to your computer.
Wiring: Servo to Arduino


Servo to Arduino
====================
5V --------> 5V
Signal ---> 9
GND -----> GND
Setting Up Python

I use Python code to retrieve Microsoft Outlook Calendar appointments/meetings and send it to the Nextion touchscreen via USB Serial port. It requires the installation of Win32 by typing "pip install pywin32" from a command terminal.
There are plenty of tutorials on how to install and programming in Python. Once you have Python installed, the next thing is to install Serial communication by typing: "pip install pyserial" from a command terminal.
Download my Python code from the following link: https://github.com/suriono/python/blob/master/outlook_calendar_nextion/calendar_nextion.py
Inside the Python code, you need to modify the USB Serial port to match the port used by your computer. To find out the port number, connect the Arduino board then go to the Device Manager. In my case it is "COM12" (see the picture.
Python line to modify for my example:
myserial = MySerial("COM12")
Note: I plan to continually improve the Python code, including adding GUI (Graphical User Interface) such as a pull-down menu to select serial COM number. Then a button to start and stop retrieving/sending calendar meeting to the touchscreen. I would recommend to follow this instructible to get the latest update.
Running Tests

After wiring the Nextion to the Arduino and connect the Arduino to a computer USB port, then it is ready for a test.
When you install Python, if you check a box to add Python to the Environment Variables, you can simply click my Python file: "calendar_nextion.py" mentioned in an earlier step. There is pop-up window (see the picture). If not, you can manually add the path of the Python to your Environment Variables first. Another option is to use the Windows Command, go to the folder where you download the "calendar_nextion.py" file from my GitHub then type "python calendar_nextion.py".
The program will retrieve your Outlook Calendar meeting every minute. It will show the remaining minutes or seconds before the next meeting. When it is less than 1 minute, it will start counting down every second before the start of the next meeting. This is the part where you are supposed to be running to the meeting :).
If you press the "DISMISS" button, it will skip the current next meeting reminder and jump to the next subsequent meeting.
Enjoy.....
Optional: to Run the Python Code Automatically With Docking Station
See my instructible of how to run a program, in this case the python code, automatically when you dock your laptop into a docking station.
https://www.instructables.com/id/Start-a-Program-Automatically-When-Hooking-a-Lapto/