IoT Bidirectional Visitor Counter using ESPP8266 & MQTT
In this project, we'll use NodeMCU ESP8266 and Ubidots MQTT to make an IR-based, two-way visitor counter that works with IoT. You can use Ubidots Dashboard to keep track of how many peopl…

Know the mission before touching a wire.
Understand what you are making, prepare the right tools, and make the workbench safe.
Project details
IoT Bidirectional Visitor Counter using ESPP8266 & MQTT is a iot project. In this project, we'll use NodeMCU ESP8266 and Ubidots MQTT to make an IR-based, two-way visitor counter that works with IoT. You can use Ubidots Dashboard to keep track of how many peopl…
- Source pages
- 1159-1163
- Named parts
- 8
- Build goal
- Working, tested prototype
Tools you need
- Digital multimeter
- Wire stripper and side cutters
- Soldering iron with a fine tip
- Current-limited bench supply
- Computer with a data-capable USB cable
Use eye protection, good lighting, and a clean insulated surface throughout the build.
Safety precautions
- Disconnect every power source before changing a connection.
- Check component polarity, pinout, and supply voltage twice.
- Use a current limit for the first power-up.
- Keep liquids, loose metal, and uninsulated wires away from the bench.
Gather, identify, and understand every part.
Use the standardized inventory, then open What's this? to learn each part's role, advantages, limitations, handling, and specifications.
What's this?Image, role, pros, cons, handling & specifications

ESP8266
A programmable controller that reads inputs, makes decisions, and drives the project's outputs.
What it does hereIt is the control centre and must use the documented board, pin map, supply, and logic level.
Buy / compare this part ↗Advantages
- Reprogrammable and reusable
- Large learning ecosystem
- Complex behaviour remains changeable
Limitations
- GPIO voltage and current are limited
- Some pins affect boot or communication
- Loads normally need a driver
Handling
- Disconnect power before rewiring
- Avoid static discharge
- Never power motors, relays, or pumps directly from GPIO
Specifications to verify
- Use the exact model, value, package, and rating listed for ESP8266; similar-looking parts are not always interchangeable.
- Confirm operating voltage, logic level, pinout, memory, USB interface, and maximum GPIO current.
What's this?Image, role, pros, cons, handling & specifications
MODULE LEARNING VIEWNodeMCU
A programmable controller that reads inputs, makes decisions, and drives the project's outputs.
What it does hereIt is the control centre and must use the documented board, pin map, supply, and logic level.
Buy / compare this part ↗Advantages
- Reprogrammable and reusable
- Large learning ecosystem
- Complex behaviour remains changeable
Limitations
- GPIO voltage and current are limited
- Some pins affect boot or communication
- Loads normally need a driver
Handling
- Disconnect power before rewiring
- Avoid static discharge
- Never power motors, relays, or pumps directly from GPIO
Specifications to verify
- Use the exact model, value, package, and rating listed for NodeMCU; similar-looking parts are not always interchangeable.
- Confirm operating voltage, logic level, pinout, memory, USB interface, and maximum GPIO current.
What's this?Image, role, pros, cons, handling & specifications

Relay module
An output component turns an electrical control signal into light, sound, motion, switching, or displayed information.
What it does hereIt presents the circuit result or acts on the physical world.
Buy / compare this part ↗Advantages
- Makes system state visible
- Can be tested separately
- Supports clear troubleshooting
Limitations
- Loads may exceed controller current
- Polarity or driver direction can matter
- Inductive loads create voltage spikes
Handling
- Use the documented driver stage
- Check polarity and load current
- Add flyback protection for inductive loads
Specifications to verify
- Use the exact model, value, package, and rating listed for Relay module; similar-looking parts are not always interchangeable.
- Confirm voltage, current, polarity, interface, driver requirements, and duty cycle.
What's this?Image, role, pros, cons, handling & specifications

OLED display
An output component turns an electrical control signal into light, sound, motion, switching, or displayed information.
What it does hereIt presents the circuit result or acts on the physical world.
Buy / compare this part ↗Advantages
- Makes system state visible
- Can be tested separately
- Supports clear troubleshooting
Limitations
- Loads may exceed controller current
- Polarity or driver direction can matter
- Inductive loads create voltage spikes
Handling
- Use the documented driver stage
- Check polarity and load current
- Add flyback protection for inductive loads
Specifications to verify
- Use the exact model, value, package, and rating listed for OLED display; similar-looking parts are not always interchangeable.
- Confirm voltage, current, polarity, interface, driver requirements, and duty cycle.
What's this?Image, role, pros, cons, handling & specifications

Operational amplifier
A named project component whose exact role is defined by the source circuit and build guide.
What it does hereIt performs a documented electrical, control, interface, or construction function in this project.
Buy / compare this part ↗Advantages
- Selected for this project
- Can be checked independently
- Supports modular troubleshooting
Limitations
- Substitutes may differ
- Generic names can hide variants
- Pinouts and ratings vary
Handling
- Compare the received part with the source
- Keep it labelled
- Do not force connectors or adjusters
Specifications to verify
- Use the exact model, value, package, and rating listed for Operational amplifier; similar-looking parts are not always interchangeable.
- Confirm dimensions, ratings, connection method, polarity, and environmental limits.
What's this?Image, role, pros, cons, handling & specifications

IR sensor
A sensor converts a physical condition into an electrical signal the circuit can measure.
What it does hereIt provides project input as an analogue, digital, resistive, frequency, or calibrated signal.
Buy / compare this part ↗Advantages
- Adds real-world awareness
- Can usually be tested independently
- Often supports calibration
Limitations
- Readings can drift
- Placement affects results
- Some sensors need warm-up or calibration
Handling
- Protect the sensing surface
- Observe supply voltage and polarity
- Keep signal leads away from noisy power wiring
Specifications to verify
- Use the exact model, value, package, and rating listed for IR sensor; similar-looking parts are not always interchangeable.
- Confirm supply range, output type, measurement range, accuracy, response time, and pin order.
What's this?Image, role, pros, cons, handling & specifications

NEWBIE
A named project component whose exact role is defined by the source circuit and build guide.
What it does hereIt performs a documented electrical, control, interface, or construction function in this project.
Buy / compare this part ↗Advantages
- Selected for this project
- Can be checked independently
- Supports modular troubleshooting
Limitations
- Substitutes may differ
- Generic names can hide variants
- Pinouts and ratings vary
Handling
- Compare the received part with the source
- Keep it labelled
- Do not force connectors or adjusters
Specifications to verify
- Use the exact model, value, package, and rating listed for NEWBIE; similar-looking parts are not always interchangeable.
- Confirm dimensions, ratings, connection method, polarity, and environmental limits.
What's this?Image, role, pros, cons, handling & specifications
SEMICONDUCTOR LEARNING VIEWLM358
A semiconductor stage performs switching, amplification, regulation, rectification, or logic.
What it does hereIt controls current or signal flow at a defined point in the circuit.
Buy / compare this part ↗Advantages
- Fast and efficient
- Compact
- Can control larger loads from smaller signals
Limitations
- Pin order varies
- Sensitive to overvoltage and reverse polarity
- May need cooling or bias components
Handling
- Verify the datasheet pinout
- Avoid static and soldering heat
- Check notch, stripe, or flat-face orientation
Specifications to verify
- Use the exact model, value, package, and rating listed for LM358; similar-looking parts are not always interchangeable.
- Confirm pinout, maximum voltage/current, dissipation, gain or forward voltage, and package.
Connect one verified path at a time.
Explore the named components and standardized signal flow, then use Source Check to verify exact physical pins, values, and topology before applying power.
Trace this circuit.
IoT Bidirectional Visitor Counter using ESPP8266 & MQTT: interactive parts, standardized terminals, responsive anchored wires, student explanations, and the original circuit reference in one shared system.
Trace before wiring
Follow power, ground, inputs, processing, and outputs in that order. Never guess a pin from package shape alone.
Connect with power off
Make short, labelled connections and share a common ground only where the schematic requires it.
Inspect every joint
Check continuity, polarity, adjacent shorts, and loose connections before the first power-up.
Open all source diagrams and build views 4 visuals




Confirm the hardware-only control path.
This project does not include firmware in the source. The circuit itself provides the required behaviour.
How to connect
- Match every controller label to the circuit view and source pin map.
- Join grounds before signal wires when separate low-voltage supplies are used.
- Keep motors, relays, pumps, and other loads on a suitable driver and external supply.
Common mistakes
Reversed VCC/GND, board-label versus GPIO-number confusion, missing common ground, and charge-only USB cables.
Troubleshoot
Disconnect loads, continuity-test one path at a time, then test with a current limit.
Software preparation
No IDE, board package, library, or firmware upload is required for this project.
If you add a programmable controller as an extension, document its pin map separately.
How to upload code
The original design is implemented entirely in hardware, so proceed after verifying the circuit and supply.
Assemble, deploy, test, and troubleshoot.
Use the complete source notes in build order, then pass the final checks before calling the project finished.
Build in functional stages
- Power and regulation
- Controller or processing stage
- Inputs and sensors
- Outputs and loads
- Enclosure and strain relief
Power up safely
- Inspect unpowered continuity first
- Apply the lowest safe current limit
- Measure supply rails before signals
- Add one load at a time
- Record expected and actual results
Work from simple to complex
- Confirm power, ground, polarity, and orientation
- Compare each pin with the source
- Test inputs separately from outputs
- Replace only one variable at a time
- Power off before every correction
Follow the documented instructions.
These notes come from this project's source and remain in their original order.
Project overview
Project build noteIn this project, we'll use NodeMCU ESP8266 and Ubidots MQTT to make an IR-based, two-way visitor counter that works with IoT. You can use Ubidots Dashboard to keep track of how many people are coming to, leaving, and staying on your site from anywhere in the world. Use an Infrared or IR Sensor to keep track of how many people are coming and going. The NodeMCU ESP8266 WiFi Module automatically sends the data about visitors to Ubidot's cloud. This NodeMCU Bidirectional Visitor counter can be used to count the number of people who come into a room, office, shopping mall, or event at the front gate. The device counts how many people come in and out of the gate. It also counts how many people leave through the different gates. And finally, it figures out how many people are currently online by subtracting the number of people who left from the number of people who came in. If
there is even one person in the room, the light will turn on by itself. When no one is in the room, the light automatically turns off. In one of my past projects, I used Arduino to make the Visitor Counter Project. But this time, instead of watching the data on an OLED screen, we will send it to the cloud. We can use an ESP8266 Wifi Module, a pair of IR Sensors, an OLED Display, and a Relay Module to make this IoT Visitor Counter. Aside from these main parts, we also need a PCB Board and some passive electronic parts. The project is so simple that even a newbie can do it with no trouble. IR Sensor as Visitor Detector The IR sensor, which works as an obstacle detector, is the most important part of this IoT project. When the IR sensor sees a person, it counts them and adds them to the total from before. The IR Sensor module is very good at adapting to the light around it. It has a sender and a receiver for infrared. The infrared emitting tube sends out a certain frequency, which gets reflected back to the signal when it hits something. The receiver tube then gets the signal that was sent back.
Opamp, a variable resistor, and an output LED are the other parts of the circuit. The Sensor consists of the following electronics components. 1. IR LED Transmitter IR LED emits light, in the range of Infrared frequency with a wavelength of 700nm – 1mm. IR LEDs send out light at an angle of about 20 to 60 degrees and can reach up to 5 to 10 cm away.
2. Photodiode Receiver The photodiode is the IR receiver because it conducts electricity when light hits it. The outside of a photodiode is black, making it look like an LED. 3. LM358 Opamp Operational Amplifier (Op-Amp) LM358 is used in the IR sensor as a voltage comparator. The comparator circuit checks the difference between the voltage set by the preset and the voltage of the photodiode's series resistor. When the voltage drop across the Photodiode's series resistor is more than the threshold voltage, the Op-output Amp's is high, and vice versa. When the Op-Amp output is high, the LED at the output terminal lights up. This means that an object has been found. 4. Variable Resistor In this case, the variable resistor is set. It is used to set the range of distances where the object should be picked up. IoT Two-Way Visitor Counter Schematic or Circuit
The Circuit for NodeMCU ESP8266 Bidirectional Visitor Counter is very easy to understand. Here is a diagram of how the project will work. You can use Fritzing Software to make the schematic. Connect the 0.96" OLED Display's I2C pins (SDA and SCL) to the NodeMCU's D2 and D1 pins. Connect the IR sensors' output pins to NodeMCU's D5 and D6. One of the IR sensors will count how many people come in, and the other will count how many people leave. Connect a 5V Relay Module to NodeMCU's D4 Pin in the same way. At 5V VCC, both the IR Sensors and the Relay Module work. You can get 5V from the Vin pin on the Amica NodeMCU or the VU pin on the Lolin NodeMCU. Schematic & PCB Designing
You can put this circuit together and test it on a breadboard. But if you don't want to put the circuit together on a breadboard, you can look at this schematic and make a custom PCB. For drawing the Schematic, I like to use EasyEDA, which is an online Schematic & PCB Designing Tool.
You built IoT Bidirectional Visitor Counter using ESPP8266 & MQTT.
You followed the full workflow from understanding the mission to testing the finished project. That is a real engineering achievement - well done.
Browse all 500 projects