Creating an IoT platform for smart agriculture. Collecting data and sending them to thingspeak for analysis
Dependencies: DHT11 LPS22HB LSM6DSL VL53L0X
Sensors.cpp
- Committer:
- kaoriw
- Date:
- 2018-06-08
- Revision:
- 0:07ff689741d2
File content as of revision 0:07ff689741d2:
#include "Sensors.h" using namespace std; void enable_sensors() { /* Init all sensors with default params */ press_s.init(NULL); acc_gyro.init(NULL); range.init_sensor(VL53L0X_DEFAULT_ADDRESS); /* Enable all sensors */ press_s.enable(); acc_gyro.enable_x(); acc_gyro.enable_g(); } void get_values() { press_status = 0; //Temperature sensor temp = hum_temp_s.getCelsius(); //Humidity sensor hum = hum_temp_s.getHumidity(); //Light sensor light = light_s.read(); //Pressure sensor if(press_s.get_pressure(&press) != 0) { printf("Error getting pressure\r\n"); press_status = VALUE_ERROR; } } void get_motion_data(int dt, int* speed, int* prev_speed, int* prev_pos, int* prev_angle) { //Accelerometer if(acc_gyro.get_x_axes(acc_axes) != 0) { printf("Error getting acceleration\n"); } //Gyroscope if(acc_gyro.get_g_axes(gyro_axes) != 0) { printf("Error getting data from gyroscope\r\n"); } prev_speed[0] += acc_axes[0]*dt; prev_speed[1] += acc_axes[1]*dt; //prev_speed[2] += acc_axes[2]*dt; *speed = (int)sqrt(pow(prev_speed[0],2.0)+pow(prev_speed[1],2.0)); //+pow(prev_speed[2],2.0)); //restrain to 2D prev_pos[0] += prev_speed[0]*dt; //x prev_pos[1] += prev_speed[1]*dt; //y *prev_angle += gyro_axes[2]*dt; //rotation around z axis }