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.ComponentsDistributorLink To Buy
1SIM900AmazonBuy Now
2Arduino UnoAmazonBuy 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:
Components List Amazon Ali Express
Give Your Suggestions !!!
Arduino UNO R3 Click Here to Buy Price: $10.99 Click Here to Buy Price: $2.79
GSM Module Sim900 Click Here to Buy Price: $28.99 Click Here to Buy Price: $10

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.

Introduction to Arduino YUN

Hello everyone, I hope you all are doing great. In today's tutorial, I am going to give you a detailed Introduction to Arduino YUN, and we will also have a look at its basic functionalities. Arduino YUN is a latest microcontroller board, manufactured by Arduino. It's the most advanced and highly stylish arduino board. The beauty of Arduino YUN lies in having two on board processors, which I haven't seen yet in any other Microcontroller board. One of them is simple Arduino processor which is similar to that of Arduino Leonardo while the second processor is Atheros AR9331. Atheros supports Linux server, which is the new thing in Arduino YUN. Because of these two processors, one now can do anything in the world of automation as well as web servers. You can say it's kind of a replica to Raspberry Pi 3.

Arduino YUN can be used as a server, you can also run python scripts quite easily on it, which we will cover in coming posts of this tutorial. You can run the Telnet session on it, can access the FTP servers, in short you can do anything with it quite easily. Let me give you an example, around 3 months ago I have designed a project on Arduino YUN in which the sensors data attached to the YUN were uploading directly on the web server via FTP and were saved in the sql database and I did all of it, just by using Arduino YUN alone. No computer was attached for FTP connection as python scripts in the Arduino YUN were doing this task. Now, I think you have gotten better idea of capability of Arduino YUN.Arduino YUN also have built in Wifi, Ethernet, USB host and SD card slot.

One another unique feature of Arduino YUN is that you can upload Arduino sketches in it wirelessly without any cable connection, if your computer and Arduino YUN are connected with the same Wifi connection. Now, let's have a look at how to manually connect the Arduino YUN with available wifi connection, which should be your first step after buying an Arduino YUN.

Manually Connect Arduino YUN with Available Wifi Connection

Now I suppose that you have got your Arduino YUN. After getting the Arduino YUN, open your box and plug the mini usb cable into your Arduino YUN and the other side of cable in your computer. I am also assuming that you are plugging it first time with your computer via usb cable.

Note:

  • You should download the Arduino software version 1.5.5 instead of 1.0.3 because Arduino sketches will be only compiled in 1.5.5 version which is specifically designed for Arduino YUN. In this tutorial, we will not use Arduino software.
  • After plugging the Arduino YUN, open your Wireless Network connections and wait for the Arduino YUN to appear as shown in below figure. It will take some time to appear so be patient.

  • In the above figure, you can see YUN connection is available, now the question is why is it available?? It is available because it is not connected to any wifi connection rite now and is acting as an access point. In other words, its just similar to a Wifi router having no wifi connection.
  • So, what we need to do is to connect with this YUN so click on YUN wifi connection and hit connect, so you will get disconnected with previous connection and will get connected with Arduino YUN as shown in below figure.
  • After connecting with Arduino YUN, yur computer has came in the same network with YUN.
  • YUN has a built-in page saved in it from where you can quite easily configure its properties.
  • So, opne your browser and write http://192.168.240.1/ and hit enter, its the current IP adress of Arduino YUN, so when you hit enter, a page similar to the below figure will open up asking for the password.

  • The default password for this page is "arduino" so insert this password and click on Log in as in above figure.
  • After log in, you will be directed to a page similar to one shown in below figure and you can see in the below figure different properties or values of Arduino YUN like current ip address, netmask etc.
  • For Wifi, it is giving connected but for Ethernet, it is showing disconnected because we haven't yet connected with Ethernet.
  • Now click on the Configure button shown in the above figure.
  • After clicking on the configure button, you will be directed to the configuration panel of YUN shown in below figure and you can see there are many fields which are ready for configuring.
  • First one is YUN NAME, which I have gven is TEP, you can give it any name which you can easily remember.
  • Second field is password, the default password as we have seen before is "arduino" so if you want to change that password then add a new password here, which I dont want, so I have left it blank.
  • Next is TIMEZONE, select our time zone from drop down list.
Note:
  • If your project involves time log or date, then its very important to select your time zone so that you get your local date and time.
  • Next are wireless parameters, where we are gonna select the wifi connection with which we want to connect our Arduino YUN.
  • Select the SSID of your network with which you wanna connect, its a drop down list which will have all the currently available networks, so you just need to connect with the one you want and also give its password and hit Configure & Restart button.
  • That's all, when you hit this button, the below screen will appear which will say Configuration Saved and the YUN is restarting.
  • It will take around 10 to 15 minutes to get completely restarted meanwhile, what you need to do is to connect with that wifi connection with which you have connected your Arduino YUN. In my case its SALAM so I connected my computer with SALAM.
  • After restart, now your Arduino YUN will be connected to the wifi connection and you won't see it in the local wireless connections as we have seen in the start.
  • So now your Arduino YUN and computer both are connected with the same network, which in my case is SALAM.
  • So, now open your Arduino 1.5.5 software and click on Tools and then Port and you can see below Aduino YUN is available and named as "TEP at 192.168.1.1" , where TEP is the name of Arduino YUN board which we have given in above steps and the ip address is the current ip address of Arduino YUN.
  • By selecting this 4th option shown in above figure, you can burn any sketch in your Arduino YUN wirelessly without any cable unless your computer and YUN are connected with the same wifi connection.
  • I don't think it was much difficult connecting YUN with the wifi connection, but quite interesting, isn't it?
  • So, give it a try and have fun. I will post more tutorials on YUN soon so stay connected and have fun. :))

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.

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 !!! :)
Syed Zain Nasir

I am Syed Zain Nasir, the founder of <a href=https://www.TheEngineeringProjects.com/>The Engineering Projects</a> (TEP). I am a programmer since 2009 before that I just search things, make small projects and now I am sharing my knowledge through this platform.I also work as a freelancer and did many projects related to programming and electrical circuitry. <a href=https://plus.google.com/+SyedZainNasir/>My Google Profile+</a>

Share
Published by
Syed Zain Nasir