I have this "QinHeng Electronics HL-340 USB-Serial adapter" and a couple of DS18B20 temperature/humidity sensor but I can't get to read data using digitemp
.
Also tried with this
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
int main(int argc, char* argv[]) {
printf("Hllp stpd");
struct termios serial;
char inBuff[100];
char logBuff[100];
char *buffer;
char *logPtr;
int wcount = 0;
int j;
int fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY);
FILE *log;
if (fd == -1) {
perror(argv[2]);
return -1;
}
if (tcgetattr(fd, &serial) < 0) {
perror("Getting configuration");
return -1;
}
//////////////////// Set up Serial Configuration ////////////
serial.c_iflag = 0;
serial.c_oflag = 0;
serial.c_lflag = 0;
serial.c_cflag = 0;
serial.c_cc[VMIN] = 0;
serial.c_cc[VTIME] = 10;
serial.c_cflag = B9600 | CS8 | CREAD;
fcntl(fd,F_SETFL,0);
tcsetattr(fd, TCSANOW, &serial); // Apply configuration
//////////////////////////////////////////////////////////////
int rcount;
buffer = &inBuff[0];
logPtr = &logBuff[0];
while(1)
{
buffer = &inBuff[0];
memset(buffer,0,sizeof(inBuff));
logPtr = &logBuff[0];
memset(logPtr,0,sizeof(logBuff));
while( (rcount = read(fd,buffer,1)) > 0)
{
if (rcount < 0) {
perror("Read");
return -1;
}
buffer++;
}
for(j=0;j<sizeof(inBuff);j++)
{
if(inBuff[j] == '+') {
while(inBuff[j++] != '\r'){
*logPtr = inBuff[j-1];logPtr++;
}
*logPtr = '\r';logPtr++;
*logPtr = '\n';logPtr++;
}
}
printf("%s",logBuff);
printf("\r\n");
log = fopen("log.txt","w");
fwrite(logBuff,1,sizeof(logBuff),log);
fclose(log);
}
close(fd);
}
no success at all. Any hints?