|
| Titre : |
Development of a Prayer Times Display Control System Using the Qt Framework and Socket Communication |
| Type de document : |
document électronique |
| Auteurs : |
Ikram Ouiz ; Fatima Belhaoui, Auteur ; Guellati, Nabil, Directeur de thèse |
| Editeur : |
Setif:UFA |
| Année de publication : |
2025 |
| Importance : |
1 vol (89 f .) |
| Format : |
29 cm |
| Langues : |
Anglais (eng) |
| Catégories : |
Thèses & Mémoires:Informatique
|
| Mots-clés : |
Socket Communication
Qt Framework |
| Index. décimale : |
004 Informatique |
| Résumé : |
This project presents the development of a digital prayer times display and control system
designed for mosque environments, integrating modern technologies to enhance the
worship experience. The system consists of a central controller application and remote
display units, enabling real-time and customizable presentation of daily prayer times.
Built using the Qt framework and C++ programming language, the system leverages
the capabilities of both TCP and UDP socket communication to ensure reliable and
efficient data transmission. Raspberry Pi devices serve as display units due to their
compact form, low power consumption, and continuous operational capabilities. The
interface offers flexibility and adaptability to meet the specific requirements of various
mosques, including features such as a countdown to the next prayer, automatic Adhan
playback, and receiving and displaying images over the network. This work bridges
academic learning with real-world application, demonstrating how embedded systems
and network technologies can support religious practices and community organization
in a modern and interactive manner. |
| Note de contenu : |
Sommaire
Acknowledgments 1
Dedication 2
Introduction 13
1 Qt Library 14
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 History of Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.1 Qt development period (1991 - 1993) . . . . . . . . . . . . . . . 15
1.2.2 Laborious start and introduction of Qt (1994 - 1995) . . . . . . 16
1.2.3 Period of commercial success (1996 - 1997) . . . . . . . . . . . . 16
1.2.4 Qt’s Transition to Open Source (1999 and Beyond) . . . . . . . 17
1.2.5 Continued global success of Qt . . . . . . . . . . . . . . . . . . 17
1.3 Getting Started with Qt . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.1 Installing Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2 Setting Up a Qt Project . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Layouts, Object Hierarchy, and Memory Management . . . . . . . . . 22
1.4.1 The Architecture of Layout Classes . . . . . . . . . . . . . . . . 22
1.4.2 Memory Management in Object Hierarchies . . . . . . . . . . . 28
1.5 Signals and Slots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.6 Core Network Tools in Qt . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.6.1 QTcpSocket and QTcpServer . . . . . . . . . . . . . . . . . . . 32
1.6.2 QNetworkAccessManager . . . . . . . . . . . . . . . . . . . . . 33
1.7 File Management and Database Handling Using Qt . . . . . . . . . . . 34
1.7.1 Saving Data with QFile . . . . . . . . . . . . . . . . . . . . . . 34
1.7.2 Using SQLite with QtSql . . . . . . . . . . . . . . . . . . . . . . 35
1.8 Improving GUI Design with Qt . . . . . . . . . . . . . . . . . . . . . . 37
1.8.1 Qt Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.8.2 Using Qt Style Sheets (QSS) . . . . . . . . . . . . . . . . . . . . 37
1.9 Dynamic Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.9.1 Creating a Simple Dynamic Dialog . . . . . . . . . . . . . . . . 38
1.9.2 Using QInputDialog for User Input . . . . . . . . . . . . . . . . 39
1.9.3 Advanced Dynamic Dialogs . . . . . . . . . . . . . . . . . . . . 39
1.9.4 Benefits of Dynamic Dialogs . . . . . . . . . . . . . . . . . . . . 41
1.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2 Raspberry Pi 43
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 History of Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.1 Origins and Development . . . . . . . . . . . . . . . . . . . . . 44
2.2.2 Major Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3 Impact and Future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4 Components of Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.1 Processor (ARM) and RAM . . . . . . . . . . . . . . . . . . . . 46
2.4.2 Input/Output Ports (USB, HDMI, Ethernet, etc.) . . . . . . . . 46
2.4.3 GPIO Pins and Their Uses . . . . . . . . . . . . . . . . . . . . . 48
2.4.4 Storage (microSD Card) . . . . . . . . . . . . . . . . . . . . . . 49
2.4.5 Networking Support (Wi-Fi, Bluetooth) . . . . . . . . . . . . . 50
2.5 Supported Operating Systems . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.1 Raspberry Pi OS (formerly Raspbian) . . . . . . . . . . . . . . 50
2.5.2 Other Operating Systems . . . . . . . . . . . . . . . . . . . . . 51
2.5.3 How to Install an Operating System on Raspberry Pi . . . . . . 51
2.6 Comparison Between Raspberry Pi and Similar Devices . . . . . . . . . 52
2.6.1 Comparison of Devices . . . . . . . . . . . . . . . . . . . . . . . 52
2.7 Device Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7.1 Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7.2 BeagleBone Black . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.7.3 NVIDIA Jetson Nano . . . . . . . . . . . . . . . . . . . . . . . 54
2.7.4 Odroid XU4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8 Applications of Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 54
2.8.1 Education: Teaching Programming and Electronics . . . . . . . 54
2.8.2 Internet of Things (IoT): Smart Home Systems . . . . . . . . . 55
2.8.3 Robotics: Building Simple Robots . . . . . . . . . . . . . . . . . 55
2.8.4 Multimedia: Media Center . . . . . . . . . . . . . . . . . . . . . 55
2.9 Practical Projects Using Raspberry Pi . . . . . . . . . . . . . . . . . . 56
2.9.1 Project Implementations . . . . . . . . . . . . . . . . . . . . . . 56
2.10 Challenges Facing Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . 57
2.10.1 Performance Limitations Compared to Traditional Computers . 57
2.10.2 Cooling and Power Consumption Issues . . . . . . . . . . . . . . 58
2.10.3 Compatibility Challenges with Certain Software . . . . . . . . . 59
2.11 Future and Expected Developments . . . . . . . . . . . . . . . . . . . . 59
2.11.1 Future Developments in Raspberry Pi Processors . . . . . . . . 59
2.11.2 Role of Raspberry Pi in Artificial Intelligence and Cloud Computing 60
2.11.3 Predictions for Its Use in New Fields . . . . . . . . . . . . . . . 61
2.12 Socket Communication in Raspberry Pi: Concepts, Implementation, and
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.12.1 Concepts of Socket Communication . . . . . . . . . . . . . . . . 62
2.12.2 Implementation of Socket Programming in Raspberry Pi . . . . 62
2.12.3 Applications of Socket Communication in Raspberry Pi . . . . . 63
2.13 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3 Desing and implementation 66
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2 Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.1 Operating System . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.2 Programming Language . . . . . . . . . . . . . . . . . . . . . . 67
3.2.3 Qt Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.4 Integrated Development Environment (IDE) . . . . . . . . . . . 69
3.2.5 Data Transmission . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.6 Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3 System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4 Interface Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.1 Time Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.2 Gregorian and Hijri Date Display . . . . . . . . . . . . . . . . . 71
3.4.3 Prayer Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.4 Quranic Verse Display . . . . . . . . . . . . . . . . . . . . . . . 72
3.4.5 Mosque Logo Display . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.6 Azan Audio Player . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.7 Remaining Time for Next Prayer . . . . . . . . . . . . . . . . . 73
3.4.8 Background Image Display . . . . . . . . . . . . . . . . . . . . . 74
3.5 Interface Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.6 Remote Control Application . . . . . . . . . . . . . . . . . . . . . . . 75
3.6.1 Connection Verification (Ping) . . . . . . . . . . . . . . . . . . 75
3.6.2 Sending Prayer Times . . . . . . . . . . . . . . . . . . . . . . . 76
3.6.3 Sending Images via TCP . . . . . . . . . . . . . . . . . . . . . . 77
3.6.4 Sending Mosque Name . . . . . . . . . . . . . . . . . . . . . . . 77
3.6.5 Feature Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.7 The Unified Modeling Language (UML) . . . . . . . . . . . . . . . . . 78
3.7.1 Use Case Diagram – Prayer Time Display System . . . . . . . . 78
3.7.2 Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.8 Performance and Resource Usage . . . . . . . . . . . . . . . . . . . . . 82
3.9 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9.1 Testing Environment . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9.2 Test Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9.3 Issues and Solutions . . . . . . . . . . . . . . . . . . . . . . . . 84
3.10 Potential Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 |
| Côte titre : |
MAI/0983 |
Development of a Prayer Times Display Control System Using the Qt Framework and Socket Communication [document électronique] / Ikram Ouiz ; Fatima Belhaoui, Auteur ; Guellati, Nabil, Directeur de thèse . - [S.l.] : Setif:UFA, 2025 . - 1 vol (89 f .) ; 29 cm. Langues : Anglais ( eng)
| Catégories : |
Thèses & Mémoires:Informatique
|
| Mots-clés : |
Socket Communication
Qt Framework |
| Index. décimale : |
004 Informatique |
| Résumé : |
This project presents the development of a digital prayer times display and control system
designed for mosque environments, integrating modern technologies to enhance the
worship experience. The system consists of a central controller application and remote
display units, enabling real-time and customizable presentation of daily prayer times.
Built using the Qt framework and C++ programming language, the system leverages
the capabilities of both TCP and UDP socket communication to ensure reliable and
efficient data transmission. Raspberry Pi devices serve as display units due to their
compact form, low power consumption, and continuous operational capabilities. The
interface offers flexibility and adaptability to meet the specific requirements of various
mosques, including features such as a countdown to the next prayer, automatic Adhan
playback, and receiving and displaying images over the network. This work bridges
academic learning with real-world application, demonstrating how embedded systems
and network technologies can support religious practices and community organization
in a modern and interactive manner. |
| Note de contenu : |
Sommaire
Acknowledgments 1
Dedication 2
Introduction 13
1 Qt Library 14
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 History of Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.1 Qt development period (1991 - 1993) . . . . . . . . . . . . . . . 15
1.2.2 Laborious start and introduction of Qt (1994 - 1995) . . . . . . 16
1.2.3 Period of commercial success (1996 - 1997) . . . . . . . . . . . . 16
1.2.4 Qt’s Transition to Open Source (1999 and Beyond) . . . . . . . 17
1.2.5 Continued global success of Qt . . . . . . . . . . . . . . . . . . 17
1.3 Getting Started with Qt . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.1 Installing Qt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2 Setting Up a Qt Project . . . . . . . . . . . . . . . . . . . . . . 18
1.4 Layouts, Object Hierarchy, and Memory Management . . . . . . . . . 22
1.4.1 The Architecture of Layout Classes . . . . . . . . . . . . . . . . 22
1.4.2 Memory Management in Object Hierarchies . . . . . . . . . . . 28
1.5 Signals and Slots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.6 Core Network Tools in Qt . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.6.1 QTcpSocket and QTcpServer . . . . . . . . . . . . . . . . . . . 32
1.6.2 QNetworkAccessManager . . . . . . . . . . . . . . . . . . . . . 33
1.7 File Management and Database Handling Using Qt . . . . . . . . . . . 34
1.7.1 Saving Data with QFile . . . . . . . . . . . . . . . . . . . . . . 34
1.7.2 Using SQLite with QtSql . . . . . . . . . . . . . . . . . . . . . . 35
1.8 Improving GUI Design with Qt . . . . . . . . . . . . . . . . . . . . . . 37
1.8.1 Qt Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.8.2 Using Qt Style Sheets (QSS) . . . . . . . . . . . . . . . . . . . . 37
1.9 Dynamic Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.9.1 Creating a Simple Dynamic Dialog . . . . . . . . . . . . . . . . 38
1.9.2 Using QInputDialog for User Input . . . . . . . . . . . . . . . . 39
1.9.3 Advanced Dynamic Dialogs . . . . . . . . . . . . . . . . . . . . 39
1.9.4 Benefits of Dynamic Dialogs . . . . . . . . . . . . . . . . . . . . 41
1.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2 Raspberry Pi 43
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 History of Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.1 Origins and Development . . . . . . . . . . . . . . . . . . . . . 44
2.2.2 Major Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3 Impact and Future . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4 Components of Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.1 Processor (ARM) and RAM . . . . . . . . . . . . . . . . . . . . 46
2.4.2 Input/Output Ports (USB, HDMI, Ethernet, etc.) . . . . . . . . 46
2.4.3 GPIO Pins and Their Uses . . . . . . . . . . . . . . . . . . . . . 48
2.4.4 Storage (microSD Card) . . . . . . . . . . . . . . . . . . . . . . 49
2.4.5 Networking Support (Wi-Fi, Bluetooth) . . . . . . . . . . . . . 50
2.5 Supported Operating Systems . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.1 Raspberry Pi OS (formerly Raspbian) . . . . . . . . . . . . . . 50
2.5.2 Other Operating Systems . . . . . . . . . . . . . . . . . . . . . 51
2.5.3 How to Install an Operating System on Raspberry Pi . . . . . . 51
2.6 Comparison Between Raspberry Pi and Similar Devices . . . . . . . . . 52
2.6.1 Comparison of Devices . . . . . . . . . . . . . . . . . . . . . . . 52
2.7 Device Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7.1 Raspberry Pi 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.7.2 BeagleBone Black . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.7.3 NVIDIA Jetson Nano . . . . . . . . . . . . . . . . . . . . . . . 54
2.7.4 Odroid XU4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.8 Applications of Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . 54
2.8.1 Education: Teaching Programming and Electronics . . . . . . . 54
2.8.2 Internet of Things (IoT): Smart Home Systems . . . . . . . . . 55
2.8.3 Robotics: Building Simple Robots . . . . . . . . . . . . . . . . . 55
2.8.4 Multimedia: Media Center . . . . . . . . . . . . . . . . . . . . . 55
2.9 Practical Projects Using Raspberry Pi . . . . . . . . . . . . . . . . . . 56
2.9.1 Project Implementations . . . . . . . . . . . . . . . . . . . . . . 56
2.10 Challenges Facing Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . 57
2.10.1 Performance Limitations Compared to Traditional Computers . 57
2.10.2 Cooling and Power Consumption Issues . . . . . . . . . . . . . . 58
2.10.3 Compatibility Challenges with Certain Software . . . . . . . . . 59
2.11 Future and Expected Developments . . . . . . . . . . . . . . . . . . . . 59
2.11.1 Future Developments in Raspberry Pi Processors . . . . . . . . 59
2.11.2 Role of Raspberry Pi in Artificial Intelligence and Cloud Computing 60
2.11.3 Predictions for Its Use in New Fields . . . . . . . . . . . . . . . 61
2.12 Socket Communication in Raspberry Pi: Concepts, Implementation, and
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.12.1 Concepts of Socket Communication . . . . . . . . . . . . . . . . 62
2.12.2 Implementation of Socket Programming in Raspberry Pi . . . . 62
2.12.3 Applications of Socket Communication in Raspberry Pi . . . . . 63
2.13 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3 Desing and implementation 66
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.2 Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.1 Operating System . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.2 Programming Language . . . . . . . . . . . . . . . . . . . . . . 67
3.2.3 Qt Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2.4 Integrated Development Environment (IDE) . . . . . . . . . . . 69
3.2.5 Data Transmission . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.6 Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3 System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4 Interface Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.1 Time Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.2 Gregorian and Hijri Date Display . . . . . . . . . . . . . . . . . 71
3.4.3 Prayer Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.4.4 Quranic Verse Display . . . . . . . . . . . . . . . . . . . . . . . 72
3.4.5 Mosque Logo Display . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.6 Azan Audio Player . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4.7 Remaining Time for Next Prayer . . . . . . . . . . . . . . . . . 73
3.4.8 Background Image Display . . . . . . . . . . . . . . . . . . . . . 74
3.5 Interface Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.6 Remote Control Application . . . . . . . . . . . . . . . . . . . . . . . 75
3.6.1 Connection Verification (Ping) . . . . . . . . . . . . . . . . . . 75
3.6.2 Sending Prayer Times . . . . . . . . . . . . . . . . . . . . . . . 76
3.6.3 Sending Images via TCP . . . . . . . . . . . . . . . . . . . . . . 77
3.6.4 Sending Mosque Name . . . . . . . . . . . . . . . . . . . . . . . 77
3.6.5 Feature Summary . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.7 The Unified Modeling Language (UML) . . . . . . . . . . . . . . . . . 78
3.7.1 Use Case Diagram – Prayer Time Display System . . . . . . . . 78
3.7.2 Sequence Diagram . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.8 Performance and Resource Usage . . . . . . . . . . . . . . . . . . . . . 82
3.9 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9.1 Testing Environment . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9.2 Test Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9.3 Issues and Solutions . . . . . . . . . . . . . . . . . . . . . . . . 84
3.10 Potential Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 |
| Côte titre : |
MAI/0983 |
|