M Musaed AlKout

Networking and Communications

Documentation for Networking and Communications, including both the individual and group assignments, using the same page style as the rest of the website.

Assignment

Networking and Communications

Boards

ESP32-C3 SuperMini

Methods

Bluetooth

Status

In Progress

Goal: Demonstrate how devices communicate with each other using wireless communication methods, and compare networking approaches through both group and individual work.

๐Ÿง  Learning Objectives

  • Understand how embedded devices exchange data using communication protocols.
  • Compare different networking methods for local and remote communication.
  • Build and test a communication system between two or more devices.
  • Document the workflow, setup, and results clearly.

๐Ÿ“‹ Assignments

Individual Assignment

  • Send a message between two projects

    Design and test communication between two microcontroller-based systems using a networking or communication method.

Group Assignment

  • Compare communication workflows

    Test and compare communication protocols, tools, or networking methods used in the lab.

  • Document and reflect

    Publish the group findings and reflect on what I learned on my individual page.

๐Ÿ› ๏ธ Tools & Components

  • Microcontrollers: ESP32-C3 / ESP32
  • Communication Method: Bluetooth
  • Software: Arduino IDE
  • Supporting Components: jumper wires, breadboard, sensors, output devices as needed

Why this matters: Networking allows different devices or parts of a system to exchange information and work together as a larger smart system.

๐Ÿ“ก Communication Theory

Embedded systems can communicate in different ways depending on the project requirements. Some protocols are best for short-distance board-to-board communication, while others are designed for wireless and remote data exchange.

Protocol Type Use Case
UART Wired serial Simple point-to-point communication
I2C Wired bus Connecting multiple sensors and devices
SPI Wired bus Fast communication with peripherals
Bluetooth / BLE Wireless Short-range wireless communication
Wi-Fi / ESP-NOW Wireless Data exchange between smart devices

๐Ÿ‘ฅ Group Assignment

The purpose of the group assignment was to compare communication and networking methods available in the lab. We explored how different protocols behave in terms of complexity, speed, ease of setup, and possible use cases.

  • Reviewed different wired and wireless communication options.
  • Compared setup requirements and code structure.
  • Observed how data is transmitted between devices.
  • Discussed which methods are most useful for future projects.
Group networking setup
Group setup used to test or compare communication methods.
Group assignment communication results
Observed results from the group communication comparison.

Group reflection idea: mention which protocol was easiest to use, which one was fastest, and which one best fits your future projects.

๐Ÿ‘ค Individual Assignment

For the individual assignment, I created a communication link between two devices/projects. The goal was to send data from one board to another and confirm that the receiving board correctly interpreted the message.

  • Sender device: replace with your actual board/project
  • Receiver device: replace with your actual board/project
  • Protocol used: UART / I2C / Bluetooth / ESP-NOW / other
  • Message type: text / sensor value / command / status signal
Wiring for individual networking assignment
Wiring and connection setup for the individual communication test.
Two communicating embedded boards
Two embedded boards communicating as part of the individual assignment.

๐Ÿ’ป Code

Replace the example below with your actual sender and receiver code.

// Example: UART Sender
void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Hello from sender");
  delay(1000);
}
// Example: UART Receiver
void setup() {
  Serial.begin(115200);
}

void loop() {
  if (Serial.available()) {
    String message = Serial.readStringUntil('\n');
    Serial.print("Received: ");
    Serial.println(message);
  }
}

In this example, one device sends a message repeatedly while the second device listens and prints the received message. Replace this with your real communication logic and protocol setup.

๐Ÿงช Testing & Validation

I tested the communication system step by step to make sure the sender and receiver were both working correctly.

Test Expected Result Observed Result
Sender transmission Message is generated and sent Success
Receiver listening Incoming data is captured Success
Data interpretation Correct message is shown/used Replace with your result
Full system communication Reliable data exchange between projects Replace with your result

โœ… Results

Replace placeholders below with your actual screenshots, serial monitor logs, or setup photos.

Serial monitor showing transmitted and received data
Serial monitor showing communication between devices.
Final networking setup with communicating boards
Final setup of the networking and communications assignment.

Evaluation notes to add: reliability, speed, signal stability, distance (if wireless), and ease of debugging.

โš ๏ธ Issues & Fixes

  • No data received: checked wiring, baud rate, and TX/RX pin mapping.
  • Incorrect messages: verified data format and timing between sender and receiver.
  • Unstable wireless connection: checked pairing/setup and simplified the test environment.
  • Logic mismatch: added debugging prints and tested each board separately first.

๐Ÿ“ฆ Downloads

Replace the placeholder files below with your actual code and notes.

Example paths: assignments/aX/sender-code.ino

Reflection โ€” What I Learned

  • Communication protocols are essential for building multi-device systems.
  • Testing sender and receiver separately makes debugging much easier.
  • Wired and wireless methods each have different strengths depending on the application.
  • Good documentation of pins, data format, and timing prevents confusion later.