Video of the robot interfaced with a web-server:
WiFi Module – ESP8266:
The ESP8266 is a Micro-controller with WiFi capabilities. It has an inbuilt pre-programmed firmware which supports serial interface and can be controlled using AT commands. In short, the ESP8266 module is a “serial to wireless internet” device.
The ESP8266 WiFi Module is a self contained SOC (System on Chip) with integrated TCP/IP protocol stack that can give any micro-controller access to your WiFi network.
This module has a powerful on-board processing and storage capability that allows it to be integrated with sensors.
The ESP8266 Module is not capable of 5-3 V logic shifting and will require an external Logic Level Converter. Please do not power it directly from your 5 V device board.
Features:
802.11 b/g/n
WiFi Direct ( P2P ), soft-AP
Integrated TCP/IP protocol stack
Integrated TR switch, Balun, LNA, power amplifier and matching network
Integrated PLLs, Regulators, DCXO and power management units
+19.5 dBm output power in 802.11b mode
Power down leakage current of <10 uA
1 MB Flash Memory
Integrated low power 32-bit CPU could be used as application processor
SDIO 1.1 / 2.0, SPI, UART
STBC, 1*1 MIMO, 2*1 MIMO
A-MPDU & A-MSDU aggregation & 0.4 ms guard interval
Wake up and transmit packets in < 2 ms
Standby power consumption of < 1.0 mW (DTIM3)
Step by step instructions & connections:
Vcc and ground connections: The outer hub of the breadboard is Vcc and the inner hub is Gnd.
LM 7805 connections: LM 7805 is a 5 V voltage regulator which reduces any voltage below 32 V to 5 V
L293D CONNECTIONS:
- Place L293D in such a way that the notch is facing towards the right
- Giving 5 V to Vs makes the robot move slow when compared to giving it 8 V ( in our case we have given 5 V)
- Pins 1,8,9,16 are connected to Vcc of the breadboard
- Pins 4,5,12,13 are connected to Gnd of the breadboard
Arduino ATmega16 connections:
- Pin 9 of the Arduino is given to Vcc and pin 10 to the Gnd of the breadboard
- Place the Arduino such that its notch is facing the notch of L293D
INTERFACING L293D WITH ARDUINO :
- Connect the pins 0 and 1 of the Arduino to the pins 15 and 10 of the L293D
- Connect the pins 24 and 25 of Arduino to the pins 2 and 7 of L293D
Motor connections
- Connect the left motor pins to the pins 11 and 14 of L293D
- Connect the right motor pins to the pins 3 and 6 of L293D
IR SENSOR CONNECTIONS
- Connect the Left, Centre and Right sensors to pins 26, 27 and 28 of the Arduino respectively
LM 35 Pin Configuration:
- LM 35 is a temperature sensor
- Connect the Vcc and Gnd to the breadboard and output pin to the 29th pin of the Arduino
- The LM 35 gives analog output so we have connected it to the analog pin of the Arduino
ESP8266 WiFi module pin out:
Steps to Connect the ESP8266 WiFi Module:
- The Vcc (3.3 V) of the ESP8266 is given to Vcc of the breadboard.(The 8 V of the breadboard is reduced to 3.3 V by means of a voltage regulator)
- The Tx and Rx pins of the ESP8266 are connected to the Rx and Tx pins of the Arduino respectively
- The Gnd pin of the ESP8266 is given to the Gnd of the breadboard
- The RESET pin of ESP8266 is connected to 3.3 V
- CHPD pin is given to 3.3 V
AT Commands:
ESP8266 by default boots up into serial modem mode. In this mode you can communicate with it using a set of AT commands. The set of AT commands used in this project is explained below:
AT commands used in programming the ESP8266 WiFi module:
(1) Connect to the WiFi network of the module. In our case it is AI-THINKER_FBB24A
(2) The AT command is used to check if the system and WiFi module are working correctly
(3) The AT+RST command is to reset the module
(4) The AT+GMR command is to know about the current firmware version
(5) The AT+CIFSR command is to return the local ip address (192.168.1.4)
(6) The AT+CWMODE command is used to enable both client and server
(7) The AT+CIPMUX command is used to enable multiple connections
(8) The AT+CIPSERVER command is to create a server
(9) The AT+CIPSEND command is used to send messages
(10) The message is displayed on the webpage
The AT commands used in programming the ESP8266 WiFi module can be understood better by a tabular column.
The AT commands used in this project are shown.
Algorithm:
void setup()
{
initialize input and output pins;
reset ESP8266;
set mode as 3;
enable multiple connections;
enable server;
}
void loop()
{
wait for GET request;
Check for obstacles;
Do the necessary actions;
Measure temperature using LM35;
send message to the server using AT+CIPSEND command;
}