You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.5 KiB
C

/*Example code using Htu21d */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
//additional libraries:
#include <fcntl.h>
#include "HTU21D_H.h"
#include "BH1750_H.h"
#include <errno.h>
#define I2C_PATH "/dev/i2c-%d"
#define I2C_PORT_2 2
#define I2C_PORT_1 1
#define HTU21D_json_path "/home/debian/CODIGOS/8-react-ui-sensors/ui/HTU21D.json"
#define BH1750_json_path "/home/debian/CODIGOS/8-react-ui-sensors/ui/BH1750.json"
int sensor;
int main() {
//printf("Select wich sensor would you like to get data: 1 -> HTU21D 2 -> BH1750 \n");
//scanf("%d", &sensor);
//sensor = 2;
while (1) {
//if (sensor == 1){
char filePath[99];
snprintf(filePath, sizeof(filePath), I2C_PATH, I2C_PORT_2);
int fd = open(filePath, O_RDWR);
//to do.... complete the structure for the cases when we cant open the file
if(fd < 0){
fprintf(stderr, "Error: Unable to access HTU21D sensor: %s \n ", strerror(errno));
exit(-1);
}
double Temperature = 10;
double Humidity = 0;
if((get_temp(fd, &Temperature)<0) || (get_hum(fd, &Humidity)<0)){
fprintf(stderr, "Error -404: Cant do the messaurment \n ");
exit(-1);
}
//printf("Temperature : %5.2f <20>C\n", Temperature);
//printf("Humidity : %5.2f % \n", Humidity);
FILE *archivo = fopen(HTU21D_json_path, "w");
if (archivo == NULL){
perror("The file can not open ");
return -1;
} else{
fprintf(archivo, "{\"Temperature\" : %5.2f , \"Humidity\" : %5.2f}", Temperature, Humidity);
}
fclose(archivo);
printf ("{\"Temperature\" : %5.2f , \"Humidity\" : %5.2f}", Temperature, Humidity);
//} else if (sensor == 2){
//char filePath[99];
//snprintf(filePath, sizeof(filePath), I2C_PATH, I2C_PORT_1);
//int
fd = open(filePath, O_RDWR);
//to do.... complete the structure for the cases when we cant open the file
if(fd < 0){
fprintf(stderr, "Error: Unable to access HTU21D sensor: %s \n ", strerror(errno));
exit(-1);
}
double Bright = 0;
if((get_lux(fd, &Bright) < 0)){
fprintf(stderr, "Error -404: Cant do the messaurment \n ");
exit(-1);
}
//printf("Temperature : %5.2f <20>C\n", Temperature);
//printf("Humidity : %5.2f % \n", Humidity);
FILE *archivo_1 = fopen(BH1750_json_path, "w");
if (archivo_1 == NULL){
perror("The file can not open ");
return -1;
} else{
fprintf(archivo_1, "{\"Brightness\" : %5.2f }", Bright);
}
fclose(archivo_1);
printf ("{\"Brightness\" : %5.2f }\n", Bright);
//}
usleep(2000000);
}
return 0;
}