We are a team of four members working on developing a PC-based MQTT AdHoc mesh networking protocol. Our primary goal is to establish a robust messaging system using MQTT and Mosquitto. This project serves as a precursor to implementing the protocol on IoT devices, ensuring that we thoroughly understand the underlying mechanisms and requirements.
- Understanding Mesh Networking: Before transitioning to IoT devices, we aim to grasp the essentials of mesh networking and the MQTT protocol.
- Testing and Validation: By implementing and testing the protocol on PCs, we can validate our approach and troubleshoot any issues in a controlled environment.
- Scalability: Our setup will provide insights into the scalability of the network and its efficiency in message routing.
- Lightweight Protocol: MQTT is designed for constrained devices and low-bandwidth, high-latency networks. Its lightweight nature makes it ideal for IoT applications.
- Publish/Subscribe Model: This model allows for efficient message distribution and decouples the producers and consumers of information.
- Scalability: MQTT can easily scale from small home networks to large industrial applications.
- Redundancy: Mesh networks provide multiple paths for data to travel, ensuring reliability and redundancy.
- Self-Healing: In case of node failures, mesh networks can automatically reconfigure to maintain communication.
- Scalability: Adding more nodes to a mesh network is straightforward and doesn't require significant changes to the existing infrastructure.
- Dynamic Topology: AdHoc routing protocols can handle frequent changes in network topology, which is common in IoT environments.
- On-Demand Routing: Routes are established on an as-needed basis, reducing the overhead of maintaining unused routes.
- Flexibility: AdHoc protocols are well-suited for scenarios where network infrastructure is unavailable or impractical.
- MQTT Broker (Mosquitto): We use Mosquitto as our MQTT broker to facilitate message routing between nodes.
- PC Nodes: Each PC in the network acts as a node, capable of sending and receiving messages.
- Routing Protocol: We implement a custom AdHoc routing protocol to determine the best path for message delivery.
- Connection Establishment: Each node establishes a connection with the MQTT broker.
- Topic Subscription: Nodes subscribe to relevant topics for message routing.
- Message Publishing: Messages are published to the broker, which forwards them to the appropriate nodes based on the routing protocol.
- Simulation: We simulate various network scenarios to test the resilience and efficiency of our protocol.
- Debugging Tools: We use tools to view and debug routing tables and monitor message flow between nodes.
- Transition to IoT Devices: After validating the protocol on PCs, we plan to implement it on IoT devices.
- Performance Optimization: We will optimize the protocol for better performance and lower latency.
- Security Enhancements: Adding security features to ensure secure communication between nodes.
Our PC-Based MQTT AdHoc Mesh Networking project is a significant step towards creating a reliable and scalable messaging system for IoT applications. By thoroughly understanding and validating the protocol on PCs, we ensure a smoother transition to IoT devices in the future.