Hi, NS2 is the most famous simulator for this issue but you can use j-sim simulator too. It is a java based simulator for WSNs issues. You can find it in the following link:
It really depends on the level of accuracy you want in terms of energy consumption and signal propagation model. It seems to me that currently, after 10-15 years of intensive research on WSN worldwide, most researchers are focusing on accurate simulations with realistic signal propagation and realistic energy models (i.e. not Unit Disk Graph model and 1 packet sent = 1 energy unit spent), because they see simulations as a first step before implementation on real hardware. So basically, most of researcher I know working on WSN use Cooja (hardware emulation) sometimes in addition with NS2 or OPNET (for the scalability). Another thing to consider if you want to publish the results of your simulations: reviewers are often skeptical about home-made simulators (even if some are way better than NS2 or Opnet).
ns2 is open source, well documented, internationally accepted and very well proven simulator for WSN. There is already a lot of support in built into ns2, so reduces development effort. Moreover, being open source you can modify the source code and recompile to tailor your needs .... the results are reliable and scripts very easy to write in TCL and well documented test cases already available .. It is not that wise to try to develop a simulator code and then use it to evaluate results. Though many people try that, but one can get results which are not that correct when using some developed code. Many of the network features are complicated to be simulated and better to depend on well established simulators like ns2.
There are many simulators available. This is very important question that you ask. Don't relay on any one's answer and view as it is very important thing that which simulator you need to use and does it support to your work that is the main thing.
from my experience I would suggest NS3 and Castelia. Energy model is well supported in both of the simulator. There is one challenge with Castelia. People started to use this simulator so it may possible that you may get less support related to Castelia. NS3 is also capable for energy model. If you are working for energy model then don't go for NS2 as NS3 is more preferable for WSN and specially energy model and physical layer.
It depends on the level you are working at, and the purpose of your work.
Omnet/Castalia can do, if you want to perform rather accurate simulations .
If you plan to use real physical sensors, using TinyOs, a simulator like Tossim may allow you to simulate your applications and upload them directly on the nodes once they are validated.