Mobile WiFi controlled Car : Node MCU
Since childhood, I wondered how remote control cars worked. The idea of operating a car without direct connection between the car and the remote always fascinated me. I was fortunate enough to pick Computer Science as my major in College where I came in touch with programming and IoT.
There are a lot of similar projects out there but most of them focus on either Arduino or lack proper steps and descriptions of implementation. So I wanted to write one to help my fellow enthusiasts out there. So here goes…
Hardware Requirements
- Node MCU
- L298D motor driver
- 2 motors
- 3 wheels
- Jumper wires
- Chassis
- USB battery with plug
I didn’t really buy a kit to put the car together. I had a mechanics set which I was able to integrate with my store bought electronics set to complete my project. So use your creativity along with the instructions to make the working model.
Motor driver L298D to motor connections
- Motor A connected to driver motor 1 terminals
- Motor B connected to driver motor 2 terminals
Motor driver L298D to Node MCU connections
- Driver IN1 and IN2 connected to board D3 and D4
- Driver IN3 and IN4 connected to board D7 and D8
- Driver GND to board GND
- Driver 5V to board VU
Mechanical Work
- Attach the tires to the motors
- Attach the motors to the chassis
- Attach a tire to front of chassis for balance
- Attach the motor driver and Node MCU board to the chassis
- Connect the battery to the board when you want to run the car
Node MCU Coding
Saving the reference of Node MCU digital pins corresponding to the motion they would create if they were set to high and all others set to low ( L-left, R-right, F-forward, B-backward )
Using the ESP8266 WiFi module to establish connection with and communicate on the network
Set the pins to output mode and try connecting to the WiFi in setup
Connecting to the WiFi. You can check the serial monitor to see the current connection status of Node MCU
The loop function which checks for incoming data and decides upon the direction to move in
The checkClient function reads the input from the client and strips away extra characters sent along with the direction instruction and returns the resultant string
One of the possible 7settings of motion for our car : Forward. You can figure out the rest similarly by playing around a little
Complete Node MCU module code here
Android Coding
Most of the tutorials online used MIT app developer to create their apps. You can find the code for one such app here. However, the design of those apps was unappealing. So I designed one using Android Studio which you can see. If you know Android development you can change the string “url” in MainActivity to the one in serial monitor of Arduino IDE to use this app. Code available here.
So I hope you liked my little project. I would love to hear from you guys what you thought about it. For any doubts or queries or any other projects you would like me to post, please comment below. Don’t forget to applaud the post. Keep geeking it out 🤓