Muhammad
13+ years of professional experience in web, IoT (Internet of Things), and network applications Development using PHP/MySQL, WordPress, ASP.NET, C++, Node.js, Arduino, Raspberry Pi, and NodeMCU. Muhammad is also a book author and has published the book on Arduino IoT Cloud with Packt Publisher. He is also the official trainer of the EC-Council for the code-red project, where he is providing courses regarding IoT.
Tutorials by Muhammad

Introduction to Embedded Systems Security
Embedded systems security is one of the fastest-growing disciplines in both IoT and industrial engineering, yet it remains poorly understood by many of the engineers who build these devices. This article covers what embedded systems are, why they are uniquely difficult to secure, where real attacks have caused measurable damage and what threat categories you […]

Arduino vs ESP32: Complete Comparison Guide for IoT Projects in 2026
Introduction Choosing the right microcontroller for your IoT project can make or break your development experience. Two of the most popular options in the maker and professional communities are Arduino and ESP32 boards. While Arduino has been the go-to platform for beginners since 2005, the ESP32 has emerged as a powerful alternative with built-in WiFi […]

Getting Started with ESP32 DOIT DevKit v1 â Complete Beginnerâs Guide
Introduction The ESP32 DOIT DevKit v1 is one of the most popular development boards for IoT and embedded systems projects. Itâs a powerful microcontroller that comes with Wi-Fi and Bluetooth built-in, making it perfect for smart devices, automation, and sensor-based applications. In this tutorial, weâll set up the ESP32 for programming using the Arduino IDE, […]

Getting Started with ESP8266: A Beginnerâs Guide
Introduction The ESP8266 is one of the most popular Wi-Fi microcontrollers used in IoT (Internet of Things) and embedded systems. Itâs low-cost, powerful, and easy to program, making it perfect for beginners who want to build smart devices such as Wi-Fi switches, temperature monitors, and home automation systems. In this tutorial, youâll learn what ESP8266 […]

Embedded System Attack Surfaces
Every interface, protocol and memory region in an embedded system is a potential entry point for an attacker. Understanding the embedded system attack surface starts with understanding the architecture itself: how hardware layers, firmware, memory types, debug interfaces and communication protocols connect and where each one introduces exploitable exposure. This article works through all of […]

ESP32 vs ESP8266: Complete Comparison Guide for IoT Projects in 2026
Introduction When it comes to WiFi-enabled microcontrollers for IoT projects, two names dominate the conversation: ESP32 and ESP8266. Both developed by Espressif Systems, these powerful yet affordable boards have revolutionized DIY electronics and professional IoT development. But which one should you choose for your next project? The ESP8266 started the WiFi microcontroller revolution in 2014, […]

LED Blinking with ESP32 DOIT DevKit v1 â Step-by-Step Tutorial
Introduction The LED blink program is often called the âHello Worldâ of embedded systems. Itâs the simplest way to test if your ESP32 is working properly and if you can control an output device. In this tutorial, we will blink an external LED connected to GPIO 12 of the ESP32 DOIT DevKit v1. This will […]

LED Blinking with ESP8266: Step-by-Step Tutorial for Beginners
Introduction The Blink LED program is the first step for anyone learning micro controllers. With the ESP8266 Wi-Fi micro controller, itâs even more exciting because you can later control LEDs through Wi-Fi and IoT platforms. In this tutorial, weâll blink an external LED using ESP8266 and Arduino IDE as in the previous tutorial we explained […]

Common Embedded System Vulnerabilities and Threats
The most common embedded system vulnerabilities are not exotic zero-days. They are repeating patterns: buffer overflows from unsafe C functions, credentials compiled directly into firmware, debug ports left open on shipped hardware, third-party libraries nobody maintains any more. This article works through every major vulnerability category in the embedded threat landscape, from firmware-level coding flaws […]

ESP32-E22: The Game-Changing Wi-Fi 6E Development Board You Need to Know About
The ESP32 family just got a massive upgrade. Espressif Systems has unveiled the ESP32-E22, marking a revolutionary leap in IoT connectivity with tri-band Wi-Fi 6E support, dual-mode Bluetooth 5.4, and blazing-fast data rates up to 2.4 Gbps. If you’ve been working with older ESP32 boards, this new powerhouse changes everything. What is the ESP32-E22? The […]

RGB LED with ESP32 DOIT DevKit v1 â Step-by-Step Tutorial
Introduction An RGB LED is a special LED that can emit Red, Green, and Blue light. By combining these three colors in different intensities, we can create almost any color. There are two types of RGB LEDs: In this tutorial, weâll control a Common Anode RGB LED using the ESP32 DOIT DevKit v1. Components Required […]

LDR with ESP8266: Measure Light Intensity Step by Step
Introduction The LDR (Light Dependent Resistor) is a simple but powerful sensor that detects light intensity. Its resistance decreases when light falls on it, and increases in darkness. By connecting an LDR with an ESP8266 Wi-Fi microcontroller, you can build smart IoT projects like: In this tutorial, youâll learn how to connect an LDR with […]

Secure Software Development for Embedded Devices
Secure embedded software development is not a checklist you run at the end of a project. It is a discipline applied to every function, every memory allocation and every build step from the first line of code. This article covers the complete practice: the six foundational security principles that shape good firmware design, memory safety […]

ESP32-C6 vs ESP32-C5 vs ESP32-C3: The Ultimate Comparison Guide for IoT Developers
Choosing between the ESP32-C3, ESP32-C5 and ESP32-C6 can be confusing. All three are RISC-V based microcontrollers from Espressif’s cost-optimized C-series, but they target different use cases and feature sets. This comprehensive guide breaks down every difference to help you select the perfect board for your next IoT project. Quick Overview: ESP32-C3 vs ESP32-C5 vs ESP32-C6 […]

Push Button with ESP32 DOIT DevKit v1 â Step-by-Step Tutorial
Introduction A Push Button is a simple input device used to control circuits. When pressed, it makes a connection between its terminals and sends a digital signal to the ESP32. In this tutorial, weâll use a Push Button connected to GPIO 5 of ESP32 DOIT DevKit v1. When the button is pressed, the onboard LED […]

RGB LED with ESP8266 (NodeMCU / Wemos D1 Mini)
Introduction RGB LEDs are special LEDs that combine Red, Green, and Blue in one package. By adjusting the brightness of each color, you can create millions of colors đ. In this tutorial, youâll learn: This project is beginner-friendly and helps you understand analogWrite (PWM) on ESP8266. What You Need Understanding RGB LEDs There are two […]

Hardware Security and Secure Boot
Software security controls are only as strong as the hardware layer beneath them. An attacker who can bypass the boot sequence, read flash directly or inject a voltage glitch to skip an authentication check defeats every software protection you built, regardless of how correct that code is. This article covers embedded hardware security from the […]

Thread vs Zigbee vs Matter vs BLE: The Ultimate Smart Home Protocol Comparison Guide
Choosing the right wireless protocol for your smart home or IoT project can be overwhelming. Thread, Zigbee, Matter and BLE (Bluetooth Low Energy) are the four major players in 2026, but they serve different purposes and work in fundamentally different ways. This comprehensive guide breaks down every difference to help you make the right choice. […]

Buzzer with ESP32 DOIT DevKit v1 â Step-by-Step Tutorial
Introduction A buzzer is a simple sound-producing device that can be controlled using a microcontroller. There are two types of buzzers: In this tutorial, weâll use a buzzer connected to GPIO 4 of ESP32 DOIT DevKit v1 and make it beep using the Arduino IDE. Components Required Circuit Diagram â ď¸ If using a passive buzzer, […]

LED Brightness Control using PWM on ESP8266
Introduction The ESP8266 does not have a true analog output, but it uses PWM (Pulse Width Modulation) to simulate it. With PWM, you can adjust the LED brightness smoothly instead of just turning it ON or OFF. In this tutorial, you will learn: What is PWM? PWM stands for Pulse Width Modulation. On ESP8266, the […]

5G vs LoRaWAN: The Ultimate Comparison for IoT Developers
5G vs LoRaWAN is one of the most critical decisions IoT architects and developers face when designing connected systems. Both technologies enable wireless communication, but they serve vastly different use cases, constraints and deployment models. Understanding their strengths, limitations and ideal applications is essential for building scalable, cost-effective and reliable IoT solutions. This in-depth comparison […]

MQTT vs CoAP: The Ultimate Comparison for IoT Protocols
MQTT vs CoAP is a fundamental question for IoT developers choosing a messaging protocol for constrained devices and networks. Both protocols are lightweight, open standards designed for machine-to-machine (M2M) communication, but they differ significantly in architecture, transport layer, use cases, and performance characteristics. This in-depth comparison breaks down their technical foundations, strengths, weaknesses, and ideal […]

Communication Security for Embedded Devices
Network communication is the attack surface exploited in the majority of large-scale IoT compromises. Mirai, the botnet that took down a large portion of internet infrastructure in 2016, spread entirely through network-accessible devices with weak or no authentication on their management interfaces. The devices themselves were not exotic: IP cameras, DVRs and home routers, all […]

LDR (Light Sensor) with ESP32 DOIT DevKit v1 â Step-by-Step Tutorial
Introduction An LDR (Light Dependent Resistor) is a sensor that changes its resistance based on light intensity: By connecting the LDR to an analog input pin of ESP32, we can measure the light intensity and use it in IoT projects. In this tutorial, weâll connect the LDR to GPIO 35 of ESP32 DOIT DevKit v1 […]

Buzzer with ESP8266 (NodeMCU/Wemos D1 Mini)
Introduction Buzzers are small devices that produce sound. They are often used in alarms, timers, and notification systems. With ESP8266, you can control buzzers to create beeps, tones, and even simple melodies. There are two types of buzzers: đ In this tutorial, weâll cover both. Components Required Circuit Diagram Text description (for D5 / GPIO14): […]

Secure SDLC for Embedded Projects
A vulnerability found in production firmware costs ten to a hundred times more to fix than the same vulnerability found during design or code review. For embedded devices already in the field, a firmware update may require physical technician access, OTA (Over-the-Air) update infrastructure, regulatory resubmission or a product recall. The secure SDLC (Software Development […]

Potentiometer with ESP32 DOIT DevKit v1 â Step-by-Step Tutorial
Introduction A potentiometer (often called a pot) is a variable resistor that allows you to adjust resistance manually by rotating its knob. It is commonly used for volume control, brightness adjustment, and sensor calibration. When connected to an ESP32, a potentiometer works as a voltage divider, giving an analog output that the ESP32 can read. […]

Push Button with ESP8266 (NodeMCU / Wemos D1 Mini)
Introduction A push button is a simple switch that connects or disconnects a circuit when pressed. With ESP8266, push buttons are used for: In this tutorial, weâll learn how to: Components Required Circuit Diagram Weâll connect the button to GPIO D5 (GPIO14). Wiring: đ This means the button is normally HIGH, and goes LOW when […]

Threat Detection and Incident Response for Embedded Devices
Detecting and responding to attacks on embedded devices is a fundamentally different discipline from IT security operations. Embedded devices cannot run endpoint detection agents, have kilobytes rather than gigabytes of storage for logs, operate for years between maintenance windows and often lack a persistent management interface that an incident responder can reach remotely. Yet the […]

LED Brightness Control with Potentiometer using ESP32 DOIT DevKit v1
Introduction An LED can be turned ON or OFF using a digital pin, but controlling its brightness requires PWM (Pulse Width Modulation). The ESP32 supports PWM on almost all GPIOs, which makes it easy to adjust LED brightness smoothly. In this tutorial, weâll use a potentiometer (GPIO 34) to control the brightness of an LED […]

DHT11 / DHT22 with ESP8266 (NodeMCU / Wemos D1 Mini)
Introduction The DHT11 and DHT22 are widely used sensors to measure temperature and humidity. In this tutorial, youâll learn how to: Introduction The DHT11 and DHT22 are widely used sensors to measure temperature and humidity. In this tutorial, youâll learn how to: DHT11 vs DHT22 Comparison Feature DHT11 DHT22 (AM2302) Temperature Range 0°C to 50°C […]

Deployment, Updates and Maintenance for Embedded Devices
The firmware update mechanism is simultaneously the most important security capability in a deployed embedded device and one of the most dangerous attack surfaces it exposes. A robust OTA (Over-the-Air) update process is how you patch vulnerabilities discovered after deployment and keep a device fleet defensible across a five-to-fifteen-year operational lifetime. A broken or insecure […]

Interfacing 1602 LCD with I2C Module using ESP32 DOIT DevKit v1
Introduction The 1602 LCD is a 16Ă2 character display commonly used in electronics projects. Normally, it requires 16 pins for operation, which makes wiring complex. By using an I2C module (PCF8574) attached to the back of the LCD, we can reduce the connections to just 4 pins: VCC, GND, SDA, and SCL. In this tutorial, […]

MQ-2 Gas Sensor with ESP8266 | Gas & Smoke Detection Tutorial
Introduction The MQ-2 gas sensor is one of the most popular sensors used in embedded systems and IoT projects for detecting harmful gases in the air. It can detect gases like LPG, methane, butane, smoke, alcohol, and hydrogen. Because of its low cost and wide availability, it is commonly used in home safety systems, industrial […]

Tools for Embedded Security Testing
Embedded security testing spans four disciplines that each require their own toolset: static and dynamic code analysis to find vulnerabilities before firmware ships, hardware attack tools to test the physical security of the device itself, network protocol analyzers to verify that communication is correctly secured, and firmware forensics tools to reverse-engineer and investigate binary images. […]

Reading Temperature & Humidity using DHT11 and ESP32 DOIT DevKit v1
Introduction The DHT11 is a low-cost digital sensor that measures temperature and humidity. Itâs easy to use, but less accurate compared to the DHT22. It communicates with the ESP32 using a single digital pin, making it perfect for beginnersâ IoT projects. In this tutorial, weâll connect the DHT11 sensor to GPIO 25 of the ESP32 […]

Single Channel Relay with ESP8266 (Step-by-Step Guide)
Introduction A relay module is an electrically operated switch that allows the ESP8266 to control high-voltage devices like lamps, fans, and home appliances using its low-voltage GPIO pins. Since ESP8266 works at 3.3V logic, it cannot directly switch high-power loads. Thatâs why we use a single channel relay module, which acts as a bridge between […]

Embedded Security Best Practices and Guidelines
The majority of embedded device security incidents are caused by a small, well-documented set of avoidable mistakes: hardcoded credentials, unvalidated inputs, broken cryptography, open debug interfaces left enabled in production, and missing update mechanisms. These failures are not exotic; they appear repeatedly across product categories and vendors because the pressures of embedded development (resource constraints, […]

Interfacing MQ-2 Gas Sensor with ESP32 DOIT DevKit v1
Introduction The MQ-2 Gas Sensor is one of the most popular sensors for detecting gases like LPG, propane, methane, hydrogen, alcohol, and smoke. It works on the principle of resistance changeâthe sensorâs internal resistance decreases when exposed to gas, which changes the output voltage. The MQ-2 module provides both: In this tutorial, we will connect […]

Trimmer Potentiometer with ESP8266 (Step-by-Step Guide)
Introduction A potentiometer is a variable resistor that allows you to adjust resistance manually. A trimmer potentiometer (or trimpot) is a small, adjustable version usually used on PCBs for fine-tuning voltage, brightness, contrast, or calibration in circuits. When we connect a trimmer potentiometer with the ESP8266, we can use it as an analog input device. […]

Future Trends in Embedded Security
Embedded security does not stand still. The threat landscape that engineers design against today is materially different from the one that existed when the Mirai botnet demonstrated in 2016 that millions of unpatched, default-password IoT devices could be weaponised into the largest DDoS infrastructure ever assembled. Since then, the scale of the connected device ecosystem […]

Interfacing Capacitive Soil Moisture Sensor with ESP32 DOIT DevKit v1
Introduction The Capacitive Soil Moisture Sensor is widely used in smart farming and gardening projects. Unlike the resistive type, it does not corrode easily, making it more durable for long-term use. The sensor measures the dielectric constant of soil: wetter soil has a higher dielectric constant, which changes the sensorâs output voltage. The sensor provides […]

Trimmer Potentiometer Controlling LED Brightness with ESP8266
Introduction A trimmer potentiometer is a small adjustable resistor used to vary voltage levels in a circuit. The ESP8266 has an ADC pin (A0) that can read the voltage from the potentiometer and convert it into values between 0 and 1023. On the other hand, the ESP8266 supports PWM (Pulse Width Modulation) on most GPIO […]

HC-SR04 Ultrasonic Sensor with ESP32 DOIT Kit v1
Introduction The HC-SR04 Ultrasonic Sensor is widely used for distance measurement in robotics, automation, and obstacle detection projects. It works by sending out ultrasonic waves and measuring the time it takes for the waves to bounce back after hitting an object. The ESP32 makes an excellent choice for working with the HC-SR04 because it offers […]

HC-SR501 PIR Motion Sensor with ESP8266
Introduction The HC-SR501 PIR (Passive Infrared) Motion Sensor is one of the most widely used sensors for detecting human and animal movement. It works by detecting changes in infrared radiation (heat) emitted by living beings. When motion is detected, the sensor outputs a HIGH signal, which can be read by a microcontroller like the ESP8266. […]

DS18B20 Temperature Sensor with ESP32 DOIT Kit v1
Introduction The DS18B20 is a digital temperature sensor that provides highly accurate temperature readings over a range of -55°C to +125°C. Unlike analog sensors, it communicates over the OneWire protocol, which means multiple DS18B20 sensors can be connected to a single pin of the ESP32. Key features include: In this tutorial, we will: Components Required […]

Capacitive Soil Moisture Sensor with ESP8266
Introduction A Capacitive Soil Moisture Sensor is an advanced version of the traditional resistive soil moisture sensor. Unlike resistive sensors, which corrode easily due to direct exposure to water and soil electrolytes, the capacitive sensor uses capacitance to measure moisture levels. This makes it more durable, accurate, and long-lasting. When soil is wet, its dielectric […]

Relay Module with ESP32 DOIT Kit v1
Introduction A relay module is an electrically operated switch that allows your ESP32 to control high-voltage or high-current devices like lights, fans, motors, and other home appliances. Since the ESP32 operates at 3.3V logic and canât directly handle high power loads, the relay acts as a bridge between low-power control (ESP32) and high-power devices (AC/DC). […]

HC-SR04 Ultrasonic Sensor with ESP8266
Introduction The HC-SR04 Ultrasonic Sensor is widely used to measure distance by emitting ultrasonic waves and measuring the time it takes for the echo to return. It works like sonar: The ESP8266 reads this timing and converts it into centimeters (cm) or inches (in). Ultrasonic sensors are commonly used in robotics, automation, parking sensors, and […]

HC-SR501 PIR Motion Sensor with ESP32 DOIT Kit v1
Introduction The HC-SR501 PIR (Passive Infrared) sensor is used to detect motion by sensing infrared radiation from objects, mainly humans and animals. Itâs widely used in security systems, automatic lights, and smart IoT projects. Key features: In this tutorial, weâll connect the HC-SR501 PIR sensor to ESP32 (GPIO 18), read motion detection signals, and display […]

Interfacing NEO-6M GPS Module with ESP32 DOIT Kit v1
Introduction The NEO-6M GPS module is a powerful, low-cost GPS receiver that allows your ESP32 projects to access real-time location data, including latitude, longitude, altitude, and time. GPS technology is widely used in applications such as navigation systems, asset tracking, robotics, weather stations, and even agriculture monitoring. The ESP32 DOIT Kit v1, with its built-in […]

SG90 Servo Motor with ESP32 DOIT Kit v1
Introduction The SG90 servo motor is a lightweight and low-cost motor commonly used in robotics, IoT, and automation projects. Unlike DC motors, which rotate continuously, a servo motor can be controlled to move to a specific angle (0°â180°) with great precision. The ESP32, with its PWM (Pulse Width Modulation) capability, is perfect for controlling servo […]