From 2abb9a2b8a30899a3a0f86ac1698b5b9f8d64ece Mon Sep 17 00:00:00 2001 From: dariolesa Date: Thu, 8 Oct 2026 10:59:41 -0600 Subject: [PATCH] Added htu21d.h, htu21d.c and main.c, temperature test OK --- .htu21d.c.swp | Bin 0 -> 12288 bytes .main.c.swp | Bin 0 -> 12288 bytes htu21d | Bin 0 -> 70936 bytes htu21d.c | 34 ++++++++++++++++++++++++++++++++++ htu21d.h | 4 +++- main.c | 30 ++++++++++++++++++++++++++++++ 6 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 .htu21d.c.swp create mode 100644 .main.c.swp create mode 100755 htu21d create mode 100644 htu21d.c create mode 100644 main.c diff --git a/.htu21d.c.swp b/.htu21d.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..1e65dadb65f5c2a3e670e00e25558486e60f2ecb GIT binary patch literal 12288 zcmeI2&ubGw7>1|fCD5wq!ILtkmn2QH`C-y(YoXYP1q;&FBGj<#W+!IrW;e{vT4PZ! z-tEP^(z|C7y(v9-6Z{th!K3KacQ#3DDn;q7_$@rl&bKq)zWd~~WbMN0!Xm$vFESjb z7<>D1XZ_sSQ8s>_F~^c_pzD7*;&nM`g&kW+**$Re<9MObc5>cE!)U3fRK%%kOG|e9 z(|qH=-E@Hrkby%Rh*UE-HO9)NVnO#9PhQ|>PTx9oJK9JF$N(8217v^qk%a$B}(we@X)xAOmE843GgbKnBPF86X2>fDDiUGH?V9SPoVl_WinJ7+H z@{^@Z%8r^%A=e7^OsP_x=+BDvv{9{8%GGI>K$k(3ToLm`2VZIjGL^h$xt?&i3b+&& zMzj~wLT166GHCNq_+cRV9Y2}IHn*9QBJ2cyC}s*sn=s9=T*B5~4Z++}!wlPY6q>r9 zsi(FVH13&>rL2^G=#|>y%`7ixc`v4J+h|#`KV2)=cU7$*%pb0F!aYxVw%^fSgbnE` zVcK0K;yW+ZmTN2ee*a)2=m?*ymf#DetB4j})(h&&|&- zrDHStCq|GZy{Z2Uz0`vuKEZYUh8H=4Cwrg5=UaIB-Yw3A%5j5yYxcJi_8PI=;j-uY a(E|e)bB?$_d@1aPMx1oG9QiKV>)J2P5eypu literal 0 HcmV?d00001 diff --git a/.main.c.swp b/.main.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..2ea50125352af287f8a8daa11c7359ec90515859 GIT binary patch literal 12288 zcmeI2y>8P`6vt1Qu*8>OD9Utk1xir9oK7f#i3K5q6cHHG3f=f#$3}^5uCI$)DBXDm z7F=UGLxAfEfI_LQ0w?)2_?&Et8#I1Hf{9Gcs`sMqx z+WI;AQ6o~)B$?a)&r`*@(GSR?rh#h5;CW0T_S*7=Qs7 zfB_hQ0T@`qz&?3K+tQ?>+b3_T?IS(U>p@f8usqR5@|kY%QPK;Cy3n>BDYxXjqr_Ig zYmZ}1X6pVZm6MqkHWM-obx{Z#Yr)B4QWheYHr`78s$RsE2HnO>@**W}i!9e^-JLhZ z!>7Z$Plhh2NOO~!pX{KRQR0VGGd}qAPz0pRJhO<&>;U8X>Z^!;$n}aA!?W`T& XIgT3?mRp{l+*5qX{-3=hb6bA^d7GwU literal 0 HcmV?d00001 diff --git a/htu21d b/htu21d new file mode 100755 index 0000000000000000000000000000000000000000..1ce0bf6a203c7de7c20478fed155ca6d86538837 GIT binary patch literal 70936 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 XPkNGbzwEoHLj22W;Rieco+|tY{%_(e literal 0 HcmV?d00001 diff --git a/htu21d.c b/htu21d.c new file mode 100644 index 0000000..8591706 --- /dev/null +++ b/htu21d.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include + +#include "htu21d.h" + +// i2cReset +int i2cReset(int fd){ + if(ioctl(fd, I2C_SLAVE, ADDR)<0){ + perror("Failed to open the I2C bus: reset\n"); + return -1; + } + i2c_smbus_write_byte(fd, RESET); + return 0; +} + +// get temp +int getTemp(int fd, double *temp){ + char buffer[3]; + __s32 response = i2c_smbus_read_i2c_block_data(fd, TEMP, 3, buffer); + if(response<0){ + perror("Failed to read temperature from sensor \n"); + return -1; + } + *temp = -46.85+175.72*(buffer[0]*256+buffer[1])/65536; + return 0; +} + +// get humidity +int getHum(int fd, double *humidity){ + return 0; +} diff --git a/htu21d.h b/htu21d.h index 2377b8e..12dd59e 100644 --- a/htu21d.h +++ b/htu21d.h @@ -12,8 +12,10 @@ #define RESET 0xFE // prototype functions: +int i2cReset(int fs); + int getTemp(int fd, double *temp); int getHum(int fd, double *hum); -#endif // HTU21D_H +#endif // HTUD_H diff --git a/main.c b/main.c new file mode 100644 index 0000000..b08afe9 --- /dev/null +++ b/main.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +#include "htu21d.h" + +int main(int argc, char *argv[]){ + int fd; + int status; + double temperature; + + char path[20]; + + snprintf(path, sizeof(path), "/dev/i2c-%d", 1); + fd = open(path, O_RDWR); + if(fd<0){ + perror("Unable to access the i2c bus path\n"); + return -1; + } + i2cReset(fd); + status = getTemp(fd, &temperature); + if(status<0){ + perror("Unable to get temperature \n"); + return -1; + } + printf("%5.2f C\n", temperature); + return 0; +} +