Integration of multiple sensors with ROS Serial

Dependencies:   mbed HCSR04 VEML7700

main.cpp

Committer:
zillkhan
Date:
2021-10-23
Revision:
2:b847309a754d
Parent:
1:3a7e10c8a325
Child:
3:c23614e6262f

File content as of revision 2:b847309a754d:

#include <ros.h>
#include <std_msgs/Float32.h>
#include <std_msgs/String.h>
#include "SHARPIR.h"
#include "hcsr04.h"


//Sharp IR sensor analog pin defination
SHARPIR Sensor(A0); 

//Ultrasonic sensor pin defination
//D8 TRIGGER D9 ECHO
HCSR04 sensor(D8, D9);

ros::NodeHandle  nh;


//SharpIR publisher initialization
std_msgs::Float32 data_ir;
ros::Publisher sharpir("sharpir", &data_ir);

//Ultrasonic sensor publisher initialization
std_msgs::String data_ul;
ros::Publisher ultrasonic("ultrasonic", &data_ul);

int main() {
    float DistanceCM; //Variable to store distance in CM from SharpIR sensor
    char buffer[50]; // buffer for Ultrasonic sensor values
    
    //Initalizing and advertising topics
    nh.initNode();
    nh.advertise(sharpir); //SharpIR sensor
    nh.advertise(ultrasonic); //Ultrasonic Sensor
    
    while (1) { //creates an eternal loop
    
        DistanceCM=Sensor.cm(); //Reading SharpIR sensor value from analog pin
        long distance = sensor.distance(); //Reading ultrasonic sensor value
        sprintf (buffer, "%d", distance);  //converting value into string
        
        data_ir.data = DistanceCM;
        sharpir.publish( &data_ir );
        
        data_ul.data = buffer;
        ultrasonic.publish( &data_ul );
        
        nh.spinOnce();
        wait_ms(1000);
    }
}