I think everyone knows about the amazon's latest product Amazon Echo which is a voice controlled device i.e. we can control the device with our voice and it can even talk to us.
So inspired by this idea i've created my own version, which can also be controlled by the voice and even it can control the home appliance with our voice commands.
Step 1: Materials Required
parts no. of parts
1.Arduino uno - 1
2.Arduino mega -1
3.Voice recognition module -1
4.Sd card module -1
5.Audio amplifier -1
7.Relay 8 channel -1
8.Temperature and humidity sensor(DHT11) -1
9.Gas/smoke sensor (MQ2). -1
10.Motion sensor (PIR) -1
11.OLED display (0.96 inch) -1
13.Bread board -1
14.M-M, M-F connecting wires
15.Power supply (9-12v)
All these equipments i've gathered from my nearest electronic store.
In this instructable i am going to split the whole process into parts to simplify the process.
1-talking robot part
Step 2: Talking Robot Part
(for this part I'm going to use arduino uno)
Here in this part you'll get to know about how to make talking robot.
With the help of VR module(voice recognition module) the robot can listen to my voice commands. And with help of Sd card module and speaker the robot can speak.
To simplify the connections of multiple modules here i'm going to split this further.
1-voice recognition module connection with arduino
2-SD card + speaker connection with arduino
1) Voice recognition module connection with arduino
Arduino D2 pin -- txd pin
Arduino D3 pin -- rxd pin
Arduino 5v pin -- vcc pin
Arduino gnd pin-- gnd pin
voice recognition module needs library, you can download the library from here VR3 module library
2) Sd card + speaker connection
Arduino D4 -- Sd cs pin
Arduino D11 -- Sd MOSI pin
Arduino D12 -- Sd MISO pin
Arduino D13 -- Sd SCK pin
Arduino 5v -- Sd vcc pin
Arduino gnd -- Sd gnd pin
The signals from the arduino are not enough for the speaker for that i've used Lm386 audio amplifier.
for SD card module you need to install sd library. you can download the SD library here sd library
Connect audio amplifier to speaker
Speaker +ve -- amplifier +ve
Speaker -ve -- amplifier -ve
Connect to audio amplifier to arduino
Arduino D9 -- amplifier IN pin
Arduino gnd -- amplifier gnd pin
External power source 9-12v to amplifier
This power source is used to amplify the signals coming from the arduino.
Battery +ve -- amplifier +ve
Battery -ve -- amplifier gnd
Note: Short the gnd of arduino and battery
With this all connections of this part are completed.
Preparation of VR module for listening
For this you can find a pdf file in the below link.
Preparation of Sd card module for speaking
For the preparation we need audio files in wav format so that it can speak.
These audio files can be prepared by using voice recording apps in android phones.
Features of audio files should be:
Bit resolution -- 8
Sampling rate -- 16000hz
Audio channel -- mono
Format -- .wav
(There is one more alternative for this, instead of using Sd card module you guys can use text to speech synthesizer circuit which is available in the market.
In this there is no need of preparing the audio files separately because it can convert the text into speech on its own.)
here you can covert text in to speech text 2 speech
here you can convert mp3 file into .wav file mp3 to wav format convert
Step 3: Sensors Part
(in this part i'm using arduino mega)
Here i'll connect the sensors
Dht 11- to get the temp. and humidity
MQ2 - to detect the gas leakage or smoke
PIR - to detect the motion
To display the DHT data i've used OLED display and for gas sensor i've used buzzers which will be activated when sensor detects the gas leakage/smoke. For motion sensor i've used decorative LED's which will be turned ON when the motion is detected.
arduino D2 -- DHT OUT pin
arduino 5v -- DHT vcc pin
arduino gnd -- DHT gnd pin
for DHT sensor library is necessary you can download the library from here DHT library
PIR sensor connection
arduino D4 -- PIR OUT pin
arduino 5v -- PIR vcc pin
arduino gnd -- PIR gnd pin
arduino A14 -- MQ3 A0 pin
arduino 5v -- MQ3 vcc pin
arduino gnd -- MQ3 gnd pin
OLED display connection
arduino D12 -- OLED CS pin
arduino D11 -- OLED DC pin
arduino D13 -- OLED RST pin
arduino D9 -- OLED SDA pin
arduino D10 -- OLED SCK pin
arduino 5v -- OLED vcc pin
arduino gnd -- OLED gnd pin
to make the oled working some library files will be needed you can download them here. gfx library
Buzzers connection is similar to the led connection.
Step 4: Adding Leds
Here i'm adding LED's to make the robot attractive. So whenever I say 'Wakeup' these LED's will be turned ON creating a feel that robot is going to turn ON.
For this i've used 16 LED's which are connected to arduino mega (I can't connect the LED's to arduino uno //which works as talking robot//
Because i'm exhausted with the pins) that is why i've used 2 arduinos.
And here i'll make 2 arduinos to communicate with each other.
This is simple when I say wakeup the arduino will to that command and will give the command analogWrite(A0,500) (because i've connected arduino uno A0 to arduino Mega A15. So whenever arduino mega receives this command it will activate the Led's.
Step 5: Interfacing the Home Appliances With the Robot
For this part i've used RELAY 8 channel to the arduino uno. So whenever i want to turn ON the lights/fan I can control that just with my voice commands. So it will give you feel of iron man controls the devices with the help of JARVIS there.
Relay channel connection.
Step 6: Software and Source Code
Here is the list of source codes for each part of this instructable.
Actually for most of the parts you can find the basic programs in there respective libraries.
source code for arduino mega (i.e. sensors part) - test1
source code for arduino uno (i.e. talking robot part) --final talking
Step 7: Conclusion
So guys enjoy with this own version of amazon echo.
There is one drawback in this version this robot can't gather the data from Internet just like the amazon echo can do.
I'm working on that and i'll update that once it is done.
Step 8: Update
Actually I was thinking about to make this project compact because it just occupied a lot of space.
So this is the modified version of the previous one.