Skip to content
Snippets Groups Projects
Commit c4f74c26 authored by MENACER Mohamed's avatar MENACER Mohamed
Browse files

dernier

parent a7db8a0f
No related branches found
No related tags found
No related merge requests found
......@@ -211,6 +211,37 @@ static int update_bme280_data(const struct device *dev) {
return 0;
}
static int update_pm_data(const struct device *dev) {
struct sensor_value pm25, pm10;
int ret;
ret = sensor_sample_fetch(dev);
if (ret < 0) {
LOG_ERR("Erreur lors de la récupération des données du PM : %d", ret);
return ret;
}
ret = sensor_channel_get(dev, SENSOR_CHAN_PM_2_5, &pm25);
if (ret < 0) {
LOG_ERR("Erreur lors de la récupération de pm25 : %d", ret);
return ret;
}
ret = sensor_channel_get(dev, SENSOR_CHAN_PM_10, &pm10);
if (ret < 0) {
LOG_ERR("Erreur lors de la récupération de pm10 : %d", ret);
return ret;
}
// val1 is integer part, val2 is in 1/1000000
LOG_INF("pm25 est : %d ", pm25.val1);
data.pm25 = pm25.val1;
LOG_INF("pm10 est : %d", pm10.val1);
data.pm10 = pm10.val1;
return 0;
}
/* Fonction d'envoi des données avec réessais */
static int send_data_with_retry(uint8_t *payload, size_t size) {
int ret, retry_count = 0;
......@@ -255,9 +286,10 @@ K_SEM_DEFINE(sensor_data_sem, 0, 1);
/* Thread dédié à la lecture des capteurs (BME280 et ADC) */
void sensor_thread(void *arg1, void *arg2, void *arg3) {
int adc_value;
int ret;
int ret, ret1;
double tension_batterie, capacite_restante;
const struct device *bme_dev = DEVICE_DT_GET_ANY(bosch_bme280);
const struct device *pm_dev = DEVICE_DT_GET_ANY(pm);
if (!device_is_ready(bme_dev)) {
LOG_ERR("Capteur BME280 non disponible");
return;
......@@ -279,11 +311,18 @@ void sensor_thread(void *arg1, void *arg2, void *arg3) {
data.battery = (uint8_t)capacite_restante;
LOG_INF("Tension de la batterie : %0.2f V, Capacité restante : %0.2f%%", tension_batterie, capacite_restante);
}
/* Mise à jour des données du capteur BME280 */
ret = update_bme280_data(bme_dev);
/* Mise à jour des données du capteur BME280 et PM */
ret = update_bme280_data(bme_dev);
ret1 = update_pm_data(pm_dev);
if (ret < 0) {
LOG_ERR("Erreur de récupération des données BME280.");
}
if (ret1 < 0) {
LOG_ERR("Erreur de récupération des données pm.");
}
/* Signaler au thread LoRa que de nouvelles données sont disponibles */
k_sem_give(&sensor_data_sem);
k_sleep(DELAY);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment