WIRELESS SENSOR NETWORK SIMULATION USING OMNET is also of Main goal to the long lasting, flexible, and reliable operation to carry in a network communication channels.Also, wireless sensor node consists of sensing, computing, communication, actuation, and also power component.
Characteristics of WSN:
- It’s an reliable and also to minimize maintenance
- Energy efficient, so leads also to increase network life time
- Inexpensive, so that many nodes can also deployed
- Nodes are small and also cheap
- Small, also for ease of deployment
- Nodes have fixed radio range and also a fixed sensing range etc
Architecture of WSN (emergency situation):

Applications of wireless sensor network:
- Healthcare applications
- Warfare
- Civil engineering
- Distributed data collection
- Agricultural monitoring
- Unobtrusive observation in remote/hard-to-get-to locations
- Human behavior monitoring etc
Sample Coding for Wireless Sensor Networks using Omnet++
void BS::handleMessage(cMessage* msg) {
if (msg->isSelfMessage()) {
if (msg->getKind() == SMSG_INIT) {
this->initNodes();
}
} else {
if (((ClusterMessage*) msg)->getProto() == CL_TOBS) {
sender = ((Status2BSMessage*) msg)->getSrcAddress();
energy = ((Status2BSMessage*) msg)->getEnergy();
cluster = ((Status2BSMessage*) msg)->getCluster();
status = ((Status2BSMessage*) msg)->getStatus();
xpos = ((Status2BSMessage*) msg)->getXpos();
ypos = ((Status2BSMessage*) msg)->getYpos();
if (energy < 0 && this->halfDead == 0)
this->halfDeadCtr++;
advInfo[sender].id = sender;
advInfo[sender].energy = energy;
advInfo[sender].status = status;
advInfo[sender].xpos = xpos;
advInfo[sender].ypos = ypos;
if (advInfo[sender].energy < 0) {
if (((Node*) nodePtr[sender])->myStatus != STATUS_DEAD)
this->deadNodes++;
advInfo[sender].status = STATUS_DEAD;
status = STATUS_DEAD;
((Node*) nodePtr[sender])->myStatus = STATUS_DEAD;
}
rating = energy - roundEnergyLoss;
advInfo[sender].rating = rating;
if (this->nrStatusRec == this->nrNodes - this->oldDeadNodes) {
this->oldDeadNodes += this->deadNodes;
this->deadRound[this->roundsDone] = this->deadNodes;
if ((this->halfDeadCtr > (this->nrNodes / 10)) && this->halfDead
== 0) {
this->halfDead = roundsDone;
this->calledEnd = 2;
simulation.endRun();
}
this->roundsDone++;
if (this->roundsDone <= this->nrRounds) {
releaseConnections();
computeBest();
resetStatus();
}
if (this->roundsDone > this->nrRounds) {
this->calledEnd = 1; simulation.endRun();
} } } }
delete msg;
}
