Training Error: Recognition Failed in EasyVR
Hello friends, hope you all are fine and enjoying life. Today's post is about removing a small error named as Recognition Failed in EasyVR, which I encountered while working with EasyVR shield with Arduino UNO. I have posted a complete project on EasyVR shield around a year ago in which I haven't mentioned this error because at that time I didn't encountered it. But today while working with EasyVR shield, I encountered this problem so I thought to share it with you guys.
EasyVR shield is a voice recognition module which is used for recognizing voices and operating accordingly. Using this module, one ca quite easily control anything using voice. In the previous project, I have controlled a robot using voice commands like when I say Forward then it starts moving forward, when I say REVERSE then it start moving backward and so on. So, its quite a cool feature to be added in projects but its not the perfect one as the efficiency of this module is not even 50%, if you are operating in a noise environment then it won't work as you want it to work.So ,let's get started with How to solve Training Error: Recognition Failed in EasyVR.
Training Error: Recognition Failed in EasyVR
- First of all, I connected my EasyVR with Arduino UNO and run the EasyVR Commander.
- I selected the Com Port of my Arduino UNO and hit Connect.
- After that, I added a new command in EasyVR Commander and hit Train Command and it asked for Phase 1.
- Everything was working perfect but when I train my command i.e. said the word which I wanted to save in the command, I got the error written as "Training Error: Recognition Failed", shown in below figure:
- I tried again and again to train the command but the error keeps on continuing, which creates quite a problem for me.
- So, below are the steps, which I have taken in order to remove this error, its kind of a troubleshooting which is quite important to learn for an engineer.
How to solve Training Error: Recognition Failed in easyvr
- First of all, what you need to check is whether your EasyVR shield is working or not, which I did exactly. So, I remove the EasyVR shield from the Arduino UNO and upload a sketch in Arduino UNO. The sketch I uploaded in Arduino UNO is the test EasyVR sketch comes with the EasyVR library.
- After uploading the sketch, I connected my EasyVR shield with Arduino UNO and check its output and I got a sigh of relief that my EasyVR shield is working fine, so there's no problem with EasyVR.
- Now I again opened the EasyVR commander and this time I placed the J12 jumper no SW instead of PC, and start the training procedure and I was like surprised, it worked great.
- I think the new versions of EasyVR shield doesn't need the jumper to be on PC for training mode.
- In the project, I have mentioned it that place the Jumper J12 on PC while working with EasyVR Commander and place it on SW while working with Arduino UNO, which is now not applicable for the new version of EasyVR.
- So, simply, place your jumper J12 on SW position and it will work smoothly.
Note:
- EasyVR shield doesn't give the 100% result, it got impressed by the noise in the surroundings very quickly so whenever you are using EasyVR shield, make sure that you use it in a calm place. I even turn off my fan in order to make it work properly.
Finally, after resolving this issue, I trained five commands into it for moving a robot, which are shown below:
- That's all for today, hope it will help you guys in some way. Thanks !!!
Send SMS with Arduino UNO and SIM900D using AT Commands
Hello friends, today's post as the name suggests is about how to send SMS with Arduino UNO and SIM900D using AT Commands. There are different types of SIM900D modules available in the market, so it doesn't matter which module you are using. All SIM900D modules work at AT commands basically so today I am going to show you how to send an SMS via AT commands without using any Arduino library. You should first read the AT commands manual which will give you an idea about AT commands. AT commands are special sets of commands which are used for communicating with SIM900 module. Using these AT commands we let our GSM work for us. Like if you want to send SMS then there's a specific AT command for sending the SMS similarly if you want to change the PIN code for your GSM module then you have a different AT command. So, there are lots of AT commands available. We can interface this GSM module with any microcontroller like PIC Microcontroller or 8051 Microcontroller but here I have interfaced it with an Arduino board. You should also check How to Send SMS with PIC Microcontroller if you wanna use PIC Microcontroller instead of Arduino board.
You must also check GSM Library for Proteus, using this library you can easily simulate your GSM module in Proteus ISIS. Moreover, also have a look at Send SMS with Sim900D in Proteus ISIS in which I have designed a simulation of SMS sending in Proteus ISIS.
Note:
Where To Buy? |
---|
No. | Components | Distributor | Link To Buy |
1 | SIM900 | Amazon | Buy Now |
2 | Arduino Uno | Amazon | Buy Now |
Components Used
I have shared the list of components used in this project. I am giving a comparison of three vendors below, you can buy from any of them:
Connect Arduino UNO with SIM900D
- First of all, connect Arduino UNO with SIM900D module, which isn't much difficult. If you have the module in hand then the first thing you need to do is to power it up and wait for the module to get connected.
- Usually, an LED is placed on the SIM900D module which keeps on blinking. If it's blinking fast, it means the modules haven't yet captured the signal. When the module captures the signal then the LED keeps on blinking but at lower speed.
- Now find the TX and RX pins of your SIM900D module and connect the TX of module with RX of Arduino UNO, which is pin # 0 and similarly RX of module with TX of Arduino UNO, which is pin # 1.
- The module, which I have used for my project is shown in the below figure, with labelled pin configurations and if you want to buy it in Pakistan then click here.
- One other thing mentioned in above figure is pKey, connect it with ground.
- Once your connections are ready, then upload the below sketch in your Arduino UNO and start sending messages.
void setup()
{
Serial.begin(9600);
}
void loop()
{
delay(1200);
Serial.print("AT");
delay(1200);
bool bOK = false;
while (Serial.available() > 0)
{
char inChar = (char)Serial.read();
bOK = true;
}
if(bOK)
{
index = 0;
Serial.println();
Serial.println("AT+CMGF=1"); // sets the SMS mode to text
delay(100);
delay(1200);
bool bOK = false;
while (Serial.available() > 0) {
//Serial.write(Serial.read());
char inChar = (char)Serial.read();
bOK = true;
}
if(bOK)
{
Serial.println();
Serial.print("AT+CMGS=""); // send the SMS number
Serial.print("+923004772379");
Serial.println(""");
delay(1000);
Serial.print("A new post is created by Zain."); // SMS body
delay(500);
Serial.write(0x1A);
Serial.write(0x0D);
Serial.write(0x0A);
}
}
}
- Change the mobile number with the number, on which you want to send the SMS, I have written mine.
- You should also change the body of the SMS and can write anything you wanna send as an SMS.
- The AT commands are required to send the SMS. I have added the comments in front of these commands but still if you get into any trouble, ask in comments.
- That's all for today, in the coming post, we will have a look how to receive SMS with SIM900 and Arduino.
Interfacing of EasyVR with Arduino
Hello friends, I hope you all are fine and having fun with your lives. In today's post we are gonna see Interfacing of EasyVR with Arduino UNO. In the previous post, we have seen Getting Started with EasyVR Commander. It was quite simple and if you follow the steps carefully you wont stuck anywhere but still if you into some trouble i am here.
Now this tutorial is quite a quick and important one as it contains the real code using which we will control our robot. After adding the voice commands, now close the EasyVR Commander and open the Arduino Software. Connect the arduino board with computer and double check that your jumper J12 in on position SW. You should also read
Training Error: Recognition Failed in EasyVR, if you got such error while working on EasyVR. So, let's get started with
Interfacing of EasyVR with Arduino UNO.
Interfacing of EasyVR with Arduino UNO
- First of all, download the Arduino Libraries for EasyVR Shield, you can easily find them from the official website of EasyVR.
- Simply connect your Arduino UNO with computer.
- Open the Arduino Software and copy paste the below code into it.
- Burn your code in the Arduino Board.
- Now open your Serial Monitor of ARduino UNO, and you will first see the message saying EasyVR Detected.
- Now speak any of the command you saved in the board on mic and you will see when the command match the serial terminal will send a specific character.
- You can change this character if you want to by make a simple change in the code.
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#include "SoftwareSerial.h"
SoftwareSerial port(12,13);
#else // Arduino 0022 - use modified NewSoftSerial
#include "WProgram.h"
#include "NewSoftSerial.h"
NewSoftSerial port(12,13);
#endif
#include "EasyVR.h"
EasyVR easyvr(port);
//Groups and Commands
enum Groups
{
//GROUP_0 = 0,
GROUP_1 = 1,
};
enum Group0
{
G0_ARDUINO = 0,
};
enum Group1
{
G1_FORWARD = 0,
G1_REVERSE = 1,
G1_LEFT = 2,
G1_RIGHT = 3,
G1_STOP = 4,
};
EasyVRBridge bridge;
int8_t group, idx;
void setup()
{
// bridge mode?
if (bridge.check())
{
cli();
bridge.loop(0, 1, 12, 13);
}
// run normally
Serial.begin(9600);
port.begin(9600);
if (!easyvr.detect())
{
Serial.println("EasyVR not detected!");
for (;;);
}
easyvr.setPinOutput(EasyVR::IO1, LOW);
Serial.println("EasyVR detected!");
easyvr.setTimeout(5);
easyvr.setLanguage(EasyVR::ENGLISH);
group = EasyVR::TRIGGER; //<-- start group (customize)
pinMode(2, OUTPUT);
digitalWrite(2, LOW); // set the LED off
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
pinMode(6, OUTPUT);
digitalWrite(6, LOW);
}
void action();
void loop()
{
easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)
Serial.print("Say a command in Group");
Serial.println(group);
easyvr.recognizeCommand(group);
do
{
// can do some processing while waiting for a spoken command
}
while (!easyvr.hasFinished());
easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off
idx = easyvr.getWord();
if (idx >= 0)
{
// built-in trigger (ROBOT)
// group = GROUP_X; <-- jump to another group X
return;
}
idx = easyvr.getCommand();
if (idx >= 0)
{
// print debug message
uint8_t train = 0;
char name[32];
Serial.print("Command: ");
Serial.print(idx);
if (easyvr.dumpCommand(group, idx, name, train))
{
Serial.print(" = ");
Serial.println(name);
}
else
Serial.println();
easyvr.playSound(0, EasyVR::VOL_FULL);
// perform some action
action();
}
else // errors or timeout
{
if (easyvr.isTimeout())
Serial.println("Timed out, try again...");
int16_t err = easyvr.getError();
if (err >= 0)
{
Serial.print("Error ");
Serial.println(err, HEX);
}
group = GROUP_1;
}
}
void action()
{
switch (group)
{
// case GROUP_0:
// switch (idx)
// {
// case G0_ARDUINO:
// write your action code here
// group = GROUP_1; //<-- or jump to another group X for composite commands
// break;
// }
// break;
case GROUP_1:
switch (idx)
{
case G1_FORWARD:
Serial.print("9");
digitalWrite(2, HIGH);
break;
case G1_REVERSE:
Serial.print("Q");
digitalWrite(3,HIGH);
break;
case G1_LEFT:
Serial.print("X");
digitalWrite(4,HIGH);
break;
case G1_RIGHT:
Serial.print("Y");
digitalWrite(5,HIGH);
break;
case G1_STOP:
Serial.print("Z");
digitalWrite(6,HIGH);
break;
}
break;
}
}
So, that's all for today. I hope now you can easily Interface
EasyVR with Arduino UNO. Have fun and take care !!! :)
Getting Started with EasyVR Commander
In the previous post we have seen the project description of Voice Recognition Project using EasyVR shield. Today we will have a look at Getting started with EasyVR commander. EasyVR shield is a module which is used for voice recognition. First of all, we save our commands in the EasyVR shield and then we use these commands to control anything. In this project, I need to control the robot with voice commands like when someone says FORWARD then the robot start moving in forward direction.
Now first of all what I need to do is to save this FORWARD voice in the shield, which we will see today how to save the command in the shield and after that I will show you the
Interfacing of EasyVR shield with Arduino UNO. So that when I say Forward the motor start to move in forward direction, which we will see in the next post. When I was working on EasyVR Shield then I got into a problem which was
How to solve Training Error: Recognition Failed in EasyVR and I solved it so you should also have a look at this tutorial if you got such error.
What is EasyVR Commander?
- EasyVR Commander is a software using which we save the voice commands in the EasyVR Shield. You guys can easily find it using google and its totally free.
- Download this software and install it.
How to use EasyVR Commander?
- First of all connect your EasyVR shield with the Arduino UNO Shield as shown in below figure.
- Now be careful in this step as it took the most of my time, on EasyVR shield you will find a jumper J12. Put this jumper on position PC.
Note: When you are adding commands in EasyVR shield using EasyVR Commander, then this jumper J12 must be on position PC and when you are using this shield in the circuit with arduino then this jumper J12 must be on position SW.
- Connect your Arduino UNO shield with the computer and run the software EasyVR commander. The software will open up as shown in the figure below.
- Now select the COM Port on which Arduino UNO is attached, which in my case was at COM20.
- After selecting the COM Port, click the Connect icon as shown in below figure.
- When you hit on Connect icon, the software will connect to the COM Port and will open up as shown below:
- If you check the left pane, there are many groups and wordset.
- In wordset, there are pre defined words, which are already saved in the EasyVR shield.
- The words which I want to save in the shield, will be saved in the Groups.
- Now to save these words click on any group where you want to save.
- In the below figure, I have selected Group 2 and then click on the Add Command button (Click # 1) shown in the figure.
- It will add the command in the group as you can see I have saved the command OK.
- Now I have saved the command OK but I have to give it some voice to this command.
- In order to do so, click on the Train Command icon ( Click # 2 ).
- Now when you click on the Train Command icon, a message box will pop up as shown in below figure.
- Click on the button which says Phase 1.
- Now as you click on this button, a box appears which say "speak now", now its the time to say your command in the mic like I said OK.
- After listening the command this pop up will again show up and this time the button will be Phase 2.
- Again click on the button and it will ask for "speak now" and you again speak the same command in the mic.
- After that the software verifies the two words and if they are same it will confirm the command.
- You should also have a look at these Arduino Projects for Beginners.
- In my case, I have saved total 5 commands in my software as shown in the below figure.
- These were my five commands to control my robot.
- Now after adding the commands, simply close the software as the voice commands are now saved in the EasyVR shield.
- Place the jumper J12 back to position SW.
Note:
- You can also test your added commands,to do so click on Test Command icon on the software and speak up any of the commands from the selected group.
- If the command matches, then the software will indicate it. Test it and you will see.
In the next post we will check the
arduino side of controlling this shield. I will post the code as well so that you can easily test it. If someone's having any problem in using this shield post in comments and I will surely help you out and subscribe us via email to get such exciting tutorials rite in your mailbox. Take care !!!
Voice Recognition using EasyVR Shield
Hello friends, today's post is, as the name suggests, about the Voice Recognition using EasyVR Shield. Voice recognition is quite a difficult task and usually done on software like MATLAB, but what if someone needs a stand alone project, a kind of autonomous voice recognition project, which doesn't use computer.
EasyVR is the solution for such projects. I recently did one project on this module named as Voice Recognition using EasyVR Shield and it worked really cool so I thought to share this new technology with you guys. I couldn't write the next part of Proteus tutorial, actually firstly I was busy in this project and then I thought to share this one as its quite exciting one. After completing this project, I will come back to Proteus tutorial.
This is the first tutorial in this EasyVR shield series. In the next tutorial, I have shared Getting Started with EasyVR Commander and once you got familiar with the EasyVR Commander then you must read Interfacing of EasyVR Commander with Arduino. When I was working on this awesome shield, I got Training Error: Recognition Failed in EasyVR so if you got such error this read this tutorial.
Project Description - Voice Recognition using EasyVR Shield
- The complete project was quite messy, it involves a lot of sensors as well as dtmf control, so I am not explaining that part in this tutorial. In this project I will explain that section of the project where we used this module.
- The functioning of this module is to control the robot movement using voice.
- So, when someone says FORWARD in the mic of this module, the robot moves forward. Someone says RIGHT and the robot moves right and so on.
- I have divided this project in parts so that you can easily understand the basic concept behind this project.
- If you are working on such project and are unable to make the code work then you can also get our services by Contacting Us.
- I have plans on designing this same project on PIC Microcontroller as well as 8051 Microcontroller and I will share their links once I uploaded them.
So, that was all about the Project Description of Voice Recognition using EasyVR Project. In the next posts, we will first see how to add these voice commands in the EasyVR shield and after that we will have a look at the code, I used in Arduino.
Relay Interfacing With Microcontroller using ULN2003A
Hello friends, I hope you all are doing great. In today's tutorial, I am going to explain the Relay Interfacing with Microcontroller using ULN2003A. In the previous lecture, we have discussed the detailed Introduction to Relay along with its working. Now we are going to practically interface the relay with a microcontroller to design an automatic switch. Relay is a key component in almost every electronic circuit. It can be
used as a switch and can also be used as a voltage regulator.
The microcontroller I am going to use here is PIC18F4552 but you can use any other Microcontroller. You just need to change the syntax of coding but the logic will remain the same. Here, I am using ULN2003A to control the relay and from this relay, we can control anything.
So, let's get started:
Relay Interfacing With Microcontroller
- I am using a 12V relay, meaning we need to provide a 12V at its input coil, in order to get it energized.
- In simple words, when we send the +12V signal from our PIC microcontroller, it will actuate the relay coil and the relay output gets connected and when we make the input LOW, the coil de-energized.
Now, the question is ???
- But the real question is PIC gives 5V at its high signal but the relay operates at 12V so how to convert this 5V signal into 12V?
What's the Solution ???
- The solution to this problem is ULN2003A.
- ULN2003A is used in between the PIC and the relay, so when the PIC sends the HIGH signal i.e. 5V, ULN converts it to 12V, sends it to the relay and the relay gets actuated.
Circuit Diagram of Relay with ULN2003A
- Here's the circuit diagram for this complete project:
- Resistance R1 is used as a pull-up resistance.
- LED is used for the indication, when the relay is actuated LED goes ON otherwise OFF.
- The programming portion is not much, just send high and low signals from PIC to ON and OFF the relay.
That's all for today guys. If you guys have any problem in any part of this tutorial ask in the comments, and I will reply to your queries. Till next tutorial ALLAH HAFIZ .... :))
Introduction to Relay
Hello everyone! I hope you will be fine and having fun. Today, I am going to give a detailed Introduction to Relay. In this tutorial, we will learn the basics of relays, the working principle of relays, the types of relays and their applications in detail.
A relay is a simple automatic switch that opens and closes the circuit(either electronically or mechanically) based on its input signal. A relay is an electromechanical switch that uses electromagnetism from a small current or voltage to switch higher current or voltage for different appliances. When a relay is in a Normally Open (NO) state, no current passes through it and when the relay is energized, the current starts to flow and we can say the relay is in a Normally Closed state. You should also have a look at Relay Interfacing with Microcontroller using ULN2003.
A Relay is used to control high-power devices with small current devices i.e. microcontrollers. When a small voltage is applied(normally from microcontrollers) to the input coil of a relay, it gets energized and the relay output changes its position from NO to NC. Relays are also used for protection purposes i.e. overload, reverse, under current, over current etc.
Now let's have a detailed overview of What is Relay???
What is a Relay?
Relay is an automatic switch, which opens and closes the circuit electronically. It uses electromagnetism from small voltage to provide higher voltages. It has two basic contacts i.e. NO (Normally Open) and NC (Normally Closed). When input voltage is applied across its coil, NC changes to NO and NO changes to NC. When input voltage is supplied, we say that the relay is energized. It has several features e.g. it can be used for switching smaller voltage to higher. But it can not be used in power-consuming devices. It has a wide range of applications. It can be used in home appliances, electronic circuits where there is a need of protection, robotics for controlling its motors for the proper motion and many more. A basic relay is given in the figure shown below.
1. Relay Pins
- Relay has total five (5) pins with different individual functions.
- Three pins are at one side of the structure.
- The other two pins are on the opposite side of the structure.
- All of these pins are provided in the table given in the figure shown below.
- I have also made a relay pin configuration diagram.
- Pin configuration diagram is shown in the figure given below.
2. Relay Pins Description
- Each pin has different functions to perform.
- So, we must know about each of the function before using it, for the better use of it.
- All these pin descriptions are listed in the table shown in the figure below.
3. Relay Internal Structure
- Internal structure of any electronic device leads to the better understanding about its working principle.
- I have made a completely labeled internal structure of relay along with its pin configurations.
- Relay internal structure is shown in the figure given below.
4. Relay Pinout
- If you want to know about the pin configuration of any electronic device you must have a look at its pinout diagram.
- Pinout diagram helps us to understand the pin configurations in a better way.
- I have made a pinout diagram which contains relay animation, internal structure and the real image.
- Relay pinout diagram is given in the figure shown below.
5. Relay Working Principle
- Relay works on a pretty simple principle.
- Initially when the power is not supplied and relay is in normally open condition, its contact will be opened.
- When relay is in normally closed condition, its contact will be closed.
- When power is supplied to its coil, it gets energized and its normally open condition is changed to normally closed and normally closed condition is changed to normally open.
- If we want to control the device via relay through a software then we have to attach this device to its normally open terminal.
- When the relay gets energized, that device will be turned on for the appropriate operation.
- Working principle of array can be understand from the visuals given in the figure shown below.
- Initially, when the power is not supplied and you can see the relay has normally closed contact as shown in the figure give below.
- As I have told earlier, when we supply power the normally closed contact will changed its state to normally open contact and vice versa.
- The explanation of the above step is given in the figure shown below.
- From the above figure, you can see contact has been changed to normally open contact.
6. Relay Functions
- Relay has the three basic functions to perform.
- All of these three functions are provided in the table given in the figure shown below.
- Air conditioning control (to limit & control a very high power load) are the examples of on/off control of the relay.
- Limit control includes motor speed control (to disconnect it if it is moving with slow or faster than the desired speed).
- Test equipment is an example of logic operation, which connects the device with no. of test points.
7. Types of Relays
- This section will focus on the major types of relays commonly used these days.
- There are several different types of relays.
- The basics types are listed in the table given in the figure shown below.
- Electromagnetic Relay is made up of magnetic, electrical and mechanical components. It has operating coil and mechanical contacts. When AC or DC supply is provided its mechanical contacts get either open of close. An electromagnetic relay is given in the figure shown below.
- Solid State Relay consists of solid state components. It is used to perform switching operation without any movement in its parts. Its power gain is higher than the electromagnetic relays because it requires low power as in input and provides high power at the output. Solid state is given in the figure shown below.
- Hybrid Relay is made up of electronic components and electromagnetic relays. Its input part consists of electronic circuitry which performs rectifications tasks. Its output part consist of electromagnetic relay. Hybrid relay is given in the figure shown below.
- Thermal Relay works on a very simple principle based on heat effect i.e. the rise in ambient temperature changes one position of the contact to another. Mostly it is used for the motor protection purposes. It consists of temperature sensors and control elements. Thermal relay is given n the figure shown below.
- Reed Relay has two magnetic strips. These strips are known as reed. These are sealed with a glass tube. The reed acts as blade as well as an armature. When magnetic field is applied to the coil. It wraps around the tube and reed start to move to perform the switching operation. Reed relays are given in the figure shown below.
8. Relay Applications
- Relay has a wide range of application in real life.
- Some of the major applications are listed in the table given in the figure shown below.
- Relay can also be used in relay boards for controlling either DC or stepper motor.
- One relay can control a single device, since two relay module has two relays so it can control two device simultaneously.
- Two relay board is given in the figure shown below.
- TV remote is another example of relay applications.
- TV remote is given in the figure shown below.
- Relay can also be used in mobile robots to control their motion properly.
- Visuals for the above step is given in the figure shown below.
9. Relay Simulation in Proteus
- I have made relay simulation in Proteus ISIS in order get a better idea about it.
- As the relay is energized, LED will be turned ON.
- A simple relay simulation in Proteus is given in the figure shown below.
- I have also made another relay simulation in Proteus ISIS as shown in the figure below.
- When the relay gets energized, LED will be turned ON, as shown below.
In the tutorial,
Introduction to Relay, I have discussed the basics of relay. This is a fully detailed article the basically focuses on the the basics of relay including its pins configurations, its functions, types, working principle and many other things. I hope you have enjoyed the tutorial and I am sure you will appreciate my efforts. If you have any sort of problem you can freely ask us in comments anytime. Our team is always there to help you and to entertain you. I will also try my level best to answer your questions. I will share further interesting topics in my upcoming tutorials. Till my next tutorial, take care and bye :)
strong>
XBee Arduino Interfacing
Hello friends , I hope you all are fine and having fun with your lives. Today, I am going to share a new project which is XBee Arduino Interfacing. In my previous tutorials in the XBee series, we have had first Introduction to XBee Module and after that we have also discussed How to Interface XBee Module with Computer. Now we are all well aware of XBee Module and can easily do the XBee Arduino Interfacing. We have seen in the previous tutorial that XBee Module works on Serial protocol so we have to use the Serial Pins of Arduino UNO board.
If you want to use any other microcontroller then you can its not a big issue, just see the way how the programming goes and convert it to the language of your microcontroller i.e. PIC Microcontrollers or 8051 Microcontrollers. If you guys have any question, you may contact me or can ask in the comments. so, let's get started with XBee Arduino Interfacing:
Other XBee Projects:
XBee Arduino Interfacing
- First of all you need to do is XBee Arduino Interfacing.
- So, in order to do that you have to connect the Pin # 2 and Pin # 3 of Xbee with the Tx and Rx of Arduino and Pin # 1 to 3.3V of Arduino and Pin # 10 to ground of Arduino as shown in the below figure:
Note :
- Don't solder the XBee pins directly into the Arduino as it may damage the XBee.
- You can buy the XBee Shield for Arduino.
- After that attach your XBees with the two Arduino Boards and use the below code:
int b1 = 2;
int b2 = A3;int mode1 = A4;
int mode2 = A5;void setup()
{
Serial.begin(9600);
delay(100);
pinMode(b1,OUTPUT);digitalWrite(b1, LOW);
pinMode(b2,INPUT_PULLUP);
pinMode(mode1,INPUT_PULLUP);
pinMode(mode2,INPUT_PULLUP);
}
void loop()
{
if (Serial.available() > 0)
{
delay(500);
Serial.print("+++"); delay(1000);
Serial.print("rnATDL1"); delay(100);
Serial.print("rnATCN"); delay(100);
Serial.print("A");
}
}
- Now add this code in one of your Arduino Board and a simple serial receiving code on the second arduino.
- Now whenever you press the button you will get A on the second arduino board.
- You can change it with anything you like and on the second side you can do anything by adding a condition.
That's all for today. I hope you have enjoyed this tutorial XBee Arduino Interfacing. I will share more projects on XBee Arduino Interfacing soon. If you are getting any problem you can ask in comments. Thanks. ALLAH HAFIZ :))
Interfacing of XBee with Computer
Hello friends, I hope you all are fine and having fun with your lives. In today's tutorial, I am going to show you the Interfacing of XBee with Computer. In the previous part of this tutorial, I have given the Introduction to XBee Module. Hope you guys have read it and if not then go visit it so that you may have some idea about XBee module.
Now come to the second part about how to interface xbee with computer because its important as if you cant interface the xbee with computer then you cant interface it with any microcontroller and later I will tell you its interfacing with microcontroller. You should also check this XBee Library for Proteus which will help you to simulate XBee module in Proteus.
We will cover arduino with more detail as its the most usable microcontroller these days with XBee. In this tutorial, I will remain to the basics of XBee i.e. we will just simple send data from one xbee to another but in coming tutorials we will have a look on quite difficult projects i.e. plotting of nodes using Rssi value. I have also posted a tutorial on Interfacing of XBee Module with Arduino. If you guys have any question, you may contact me or can ask in the comments. So, let's get started with Interfacing of XBee with Computer:
Interfacing of XBee with Computer
- XBee works on the TX / RX logic so if we want to interface xbee with computer, we need to use a serial module.
- There are two type of module, one is usb module available at sparkfun and its costly for the students of Pakistan.
- So we have created our own module, its based on serial port and works is a similar way as this sparkfun module.
- This serial module consists of MAX232 and here's its circuit diagram.
- You just need to do is, the pins going to the uC are now go to the pin # 2 and pin # 3 of XBee.
- Moreover, +3.3 V to the pin # 1 of XBee and Ground to the pin # 10 of XBee.
- One more thing , dont forget to common the grounds of XBee and this circuit.
Software to Download
- There is a software named X-Ctu, is used for Interfacing of XBee with Computer.
- So first of all, download X-Ctu and install it in your computer.
- Attach your module's serial port with the computer after placing the XBee in it.
- Open the software, the first interface of this software is shown in the image below :
- The White Box in which there is written USB Serial Port (COM 9) indicates the serial ports attached to your computer.
- In my case it is COM 9 and in your case it will be mostly COM 1.
- Now Click on the Test / Query button and if everything's going fine then the following window will pop up.
- This prompt box tell us a few things about XBee.
- In case if something's missing and not working properly then you will get something like that :
Configuring the XBee
- There are a lot of AT commands used for the configuring XBee. I will tell you where to enter these commands but first lets have a view at these commands.
- Here I am explaining those which we are going to use for the simplest communication.
- + + + : This command will initiate the command mode and now our xbee is ready for taking orders and in this mode it wont transmit data.
- ATMY2 : ATMY is used to set the address of xbee we are using and 2 is the address we have set for our module.
- ATDL5 : ATDL is used to set the address of the destination module and 5 is the address. In other words now our module 2 only send data to that module which has address 5 .
- ATWR : This command is used to write these configurations into XBee . If you don't use these commands then once you removed your xbee your values will be erased.
- ATCN : To terminate the command mode and after that you are ready to send data.
NOTE :
- ATDL of tranmitter = ATMY of reciever
- Suppose I have two modules so in order them to communicate I will set the first module as ATMY = 2 and ATDL = 5 and the second module as ATMY = 5 and ATDL = 2. Now both the modules can send data to each other.But if I change the second module's ATDL = 3 then my second module can't send the data to first but still my first module can send data to the second. ( a bit complicated :) )
- Only this +++ command doesn't require ENTER but in all other press the ENTER tab after entering command.
Where to Enter These Commands
- Now the most common question is where to enter these commands.
- Let's come back to X-Ctu,Now click the Terminal tab on top of the software as shown below :
- Now Enter the Commands one by one as shown in the image below :
- In the above figure, I have set my first xbee as ATMY = 1111 and ATDL = 2222.
- Now remove the first XBee and attach the second XBee , restart the software and do the same steps as for first but now the settings will be as follows :
- In the above figure, I have set my first xbee as ATMY = 2222 and ATDL = 1111.
- Check the difference in addressing of both XBees.
- Your both XBees are configured.
Communication Between XBees
- Now attach first XBee to one computer using the module and the second to other computer using another module.
- Open the software and click the terminal tab.
- Now whatever you enter in the terminal tab of first xbee , it will be receiving on the terminal tab of second and vice versa.
- So, that's all about Interfacing of XBee with Computer.
That's all for today and I am a bit tired too while writing this tutorial on Interfacing of XBee with Computer, so I will continue it tomorrow regarding the microcontroller part. One more thing play with the software and do let me know what you find in the comments. Thanks. ALLAH HAFIZ :))
Introduction to XBee Module
In this tutorial, we are gonna hanve an Introduction to XBee Module. XBee is an RF module and these days its using in lots of student projects and I am getting a lot of queries reagarding this module. So first we will cover the introduction of XBee in this post. Soon I will tell you about Interfacing of XBee Module with Computer and also after this discussion we will also discuss Interfacing of XBee Module with Arduino. You can also Interface it with other Microcontrollers like PIC Microcontroller or 8051 Microcontroller.
We will cover arduino with more detail as its quite famous and easily accessible microcontroller these days. In this tutorial I am gonna add just simple interfacing of XBee module with arduino but soon I will post few quite difficult project on XBee like mesh networking. If you guys have any question, you may contact me or can ask in the comments. So, let's get Started with Introduction to XBee Module:
What is XBee ?
- XBee is a very complicated module used for RF communication. It is used for wireless communication.
- It is used these days in many projects as it is very easy to use and its advantages are more than any other RF module.
- You can use XBee for point to point communication also.
- There are two commonly used versions of XBee, one is XBee series 01 and other is XBee pro.
- The only difference between the two is in their range.XBee pro has more range to operate than the simple XBee.
- Its hardly available in Pakistan so if you want to buy XBee Series 01 in Pakistan then use our Contact Form. You will get it within 2 days.
- Download the datasheet of XBee and must read it as reading datasheet is always beneficial.
How to operate XBee ?
- To operate XBee, you will need two XBees, one will act as a transmitter and the other will act as a receiver.
- Now suppose you want to send something from one side to another, now you have to connect one xbee at the transmitter side and the other at the reciever side.
- Let's take an example of home automation project in which you are using a remote to switch on your light or fan etc.
- So in that case there must be one XBee in your remote and the second one in your board where the light circuit is placed.
- So when you press the button of remote, the XBee in remote will send an instruction to the XBee in the board.
- As soon as the XBee in the board recieve the instruction from XBee in the remote it will on the light.
- Obviously there will be microcontrollers attached with both the xbees and you need hell of a programming to do this operation but I was just explaining the procedure.
So, that's all about Introduction to XBee Module, I hope you have enjoyed this Introduction to XBee Module and are gonna use it in your projects. Thanks for reading and have fun !!! :)