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.

50 lines
1.1 KiB
C

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/i2c-dev.h>
#include <sys/ioctl.h>
#include "bmp180.h"
#define I2C_BUS "/dev/i2c-2"
#define BMP180_ADDR 0x77
int main() {
int fd = open(I2C_BUS, O_RDWR);
if (fd < 0) {
perror("Error abriendo el bus I2C");
return 1;
}
if (ioctl(fd, I2C_SLAVE, BMP180_ADDR) < 0) {
perror("Error configurando la dirección I2C");
close(fd);
return 1;
}
bmp180_calib_data_t calib;
if (bmp180_init(fd, &calib) < 0) {
fprintf(stderr, "Error leyendo datos de calibración BMP180\n");
close(fd);
return 1;
}
double temperature, pressure;
if (bmp180_read_temperature(fd, &calib, &temperature) < 0) {
fprintf(stderr, "Error leyendo temperatura BMP180\n");
close(fd);
return 1;
}
if (bmp180_read_pressure(fd, &calib, &pressure) < 0) {
fprintf(stderr, "Error leyendo presión BMP180\n");
close(fd);
return 1;
}
printf("{\"temperature\": %.2f, \"pressure\": %.2f}\n", temperature, pressure);
close(fd);
return 0;
}