示例#1
0
文件: main.c 项目: vasik041/openlab
void show()
{
	if(++swcnt > (sw?10:30)) {
		swcnt = 0;
		sw++;
		sw &= 3;
	}
	switch(sw) {
		case 0:
			get_time();
			putchr(0,(hour+dst)/10);
			putchr(1,(hour+dst)%10);
			putchr(2,minute/10);
			putchr(3,minute%10);
			break;

		case 1:
			if(swcnt == 0) {
				temp = readTemperature() / 10;
			}
			putchr(2,temp%10);
			t = temp / 10;
			putchr(0,t/10);
			putchr(1,t%10);
			putchr(3,0x0c);
			break;

		case 2:
			if(swcnt == 0) {
				hum = readHumidity() * 5 / 512;
			}
			putchr(2,hum%10);
			t = hum / 10;
			putchr(0,t/10);
			putchr(1,t%10);
			dsp_buf[3] = chrH;
			break;

		case 3:
			if(swcnt == 0) {
				pres = readPressure() / 100;
			}
			t = pres;
			if(t > 999) {
				putchr(3,t%10); t /= 10;
				putchr(2,t%10); t /= 10;
				putchr(1,t%10); t /= 10;
				putchr(0,t);
			} else {
				dsp_buf[0] = chrP;
				putchr(3,t%10); t /= 10;
				putchr(2,t%10); t /= 10;
				putchr(1,t%10);
			}
			break;

		default:;
	}
}
示例#2
0
boolean DHT11::readVal( HardwareTypeIdentifier type, HardwareCommandResult* result ) {
	if(result == NULL)
		return false;
	
	if(type == HWType_temprature) {
		readTemperature(result);
		return true;
	} else if(type == HWType_humidity) {
		readHumidity(result);
		return true;
	}
	
	return false;
}
示例#3
0
文件: HTU21D.c 项目: anadigi/HTU21D
double readDewPoint(int file) {

	double A = 8.1332;
	double B = 1762.39;
	double C = 235.66;
	double dewpoint;
	double temp = readTemperature(file);
	double humi = readHumidity(file);

	//CALCULATE PARTIAL PRESSURE
	double exponent = (A - (B / (temp + C)));
	double PPtamb = pow(10, exponent);
	dewpoint = - ((B / (log10(humi * (PPtamb / 100)) - A)) + C);

	//printf("DewPoint %f C\n", dewpoint);
	return dewpoint;
}
void wuclass_temperature_humidity_sensor_update(wuobject_t *wuobject) {
    sbi(TCCR0B, CS01);
    sbi(TCCR0B, CS00);	
    sbi(TIMSK0, TOIE0);    
    SHT1x(5,6);
    
    int temperature, temperatureRaw, humidityRaw, humidity;
    temperatureRaw=readTemperatureRaw();
    temperatureRaw=temperatureRaw-4000;
    temperature=temperatureRaw/100;
    
    humidityRaw=readHumidity();
    humidity=(temperature*(100000+800*humidityRaw) + (405000+28*humidityRaw)*humidityRaw - 4*10000000)/10000000 - 11;
    
    DEBUG_LOG(DBG_WKPFUPDATE, "WKPFUPDATE(TemperatureHumiditySensor): Sensed temperature value: %d.%dC\n", temperature, temperatureRaw%100);
    DEBUG_LOG(DBG_WKPFUPDATE, "WKPFUPDATE(TemperatureHumiditySensor): Sensed humidity value: %d %% \n", humidity);
    wkpf_internal_write_property_int16(wuobject, WKPF_PROPERTY_TEMPERATURE_HUMIDITY_SENSOR_CURRENT_VALUE_TEMPERATURE, temperature);
    wkpf_internal_write_property_int16(wuobject, WKPF_PROPERTY_TEMPERATURE_HUMIDITY_SENSOR_CURRENT_VALUE_HUMIDITY, humidity);
}
示例#5
0
文件: dht.cpp 项目: ITMGR/OW-2
float DHT::getDewPoint() {
	return computeDewPoint(readTemperature(), readHumidity());
}
示例#6
0
文件: dht.cpp 项目: ITMGR/OW-2
float DHT::getHeatIndex() {
	return convertFtoC(computeHeatIndex(convertCtoF(readTemperature()), readHumidity()));
}
示例#7
0
文件: dht.cpp 项目: ITMGR/OW-2
float DHT::getHumidity() {
	return readHumidity();
}
示例#8
0
文件: server.c 项目: edboel/projects
int main(int argc, char *argv[ ])
{
/* listen on sock_fd, new connection on new_fd */
int sockfd, new_fd;
/* my address information */
struct sockaddr_in my_addr;
/* connector’s address information */
struct sockaddr_in their_addr;
int sin_size;
struct sigaction sa;
int yes = 1;
 
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
    perror("Server-socket() error lol!");
    exit(1);
}
else
printf("Server-socket() sockfd is OK...\n");
 
if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1)
{
    perror("Server-setsockopt() error lol!");
    exit(1);
}
else
    printf("Server-setsockopt is OK...\n");
 
/* host byte order */
my_addr.sin_family = AF_INET;
/* short, network byte order */
my_addr.sin_port = htons(MYPORT);
/* automatically fill with my IP */
my_addr.sin_addr.s_addr = INADDR_ANY;
 
printf("Server-Using %s and port %d...\n", inet_ntoa(my_addr.sin_addr), MYPORT);
 
/* zero the rest of the struct */
memset(&(my_addr.sin_zero), '\0', 8);
 
if(bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)
{
    perror("Server-bind() error");
    exit(1);
}
else
    printf("Server-bind() is OK...\n");
 
if(listen(sockfd, BACKLOG) == -1)
{
    perror("Server-listen() error");
    exit(1);
}
printf("Server-listen() is OK...Listening...\n");
 
/* clean all the dead processes */
sa.sa_handler = sigchld_handler;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART;
 
if(sigaction(SIGCHLD, &sa, NULL) == -1)
{
    perror("Server-sigaction() error");
    exit(1);
}
else
    printf("Server-sigaction() is OK...\n");
 
/* accept() loop */
while(1)
{
sin_size = sizeof(struct sockaddr_in);
if((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)
{
    perror("Server-accept() error");
    continue;
}
else
    printf("Server-accept() is OK...\n");
printf("Server-new socket, new_fd is OK...\n");
printf("Server: Got connection from %s\n", inet_ntoa(their_addr.sin_addr));
 
/* this is the child process */
if(!fork())
{
    /* child doesn’t need the listener */
   close(sockfd);
   bool contins = true;
   char *hup;
   while(contins){

     hup = readHumidity();

     if(send(new_fd, hup, strlen(hup), 0) == -1){
        perror("Server-send() error lol!");
	contins = false;
      }
      sleep(10);
   }
   close(new_fd);
   exit(0);
}
else
    printf("Server-send is OK...!\n");
 
/* parent doesn’t need this*/
close(new_fd);
printf("Server-new socket, new_fd closed successfully...\n");
}
return 0;
}
示例#9
0
文件: DHT22.cpp 项目: moa/dht22
uint8_t DHT::getHumidity()
{
  return readHumidity();
}
示例#10
0
文件: HTU21D.c 项目: anadigi/HTU21D
int main(int argc, char **argv)
{
	int next_option;
	option_struct own_options;
	own_options.temperature = 0;
	own_options.humidity = 0;
	own_options.dewpoint = 0;
	own_options.output = 0;

	do {
		next_option = getopt_long(argc, argv, short_options, long_options, NULL);

		switch (next_option)
		{
			case 'h':
			own_options.humidity = 1;
			break;

			case 't':
			own_options.temperature = 1;
			break;

			case 'd':
                        own_options.dewpoint = 1;
                        break;

			case 'o':
			own_options.output = 1;
			own_options.path = optarg;
			break;

			case '?':
			printf("To be updated...\n");
			break;

			case -1:
			break;

			default:
			printf("To be updated...\n");
			break;
		}
	} while (next_option != -1);

	if(!own_options.output)
		printf("**** TEMPERATURE & HUMIDITY SENSOR TEST PROGRAM ****\n");

	int file;
	char *filename = "/dev/i2c-1";
	char buf[5];

	file = open(filename, O_RDWR);
	if(file<0)
	{
		perror("HTU21D:Fail opening i2c device file");
		close(file);
		exit(EXIT_FAILURE);
	}

	if((ioctl(file, I2C_SLAVE, I2C_ADDR)) < 0)
	{
		perror("HTU21D:Fail selecting i2c device");
		close(file);
                exit(EXIT_FAILURE);
	}

	if(own_options.temperature) {
		if(own_options.output) {
			WriteToFile(own_options.path, "temperature.txt", readTemperature(file));
		}
		else {
			printf("Temperature: %.2f C\n", readTemperature(file));
		}
	}

	if(own_options.humidity) {
		if(own_options.output) {
                        WriteToFile(own_options.path, "humidity.txt", readHumidity(file));
                }
                else {
                        printf("Relative Humidity: %.2f %%\n", readHumidity(file));
                }
	}

	if(own_options.dewpoint) {
		if(own_options.output) {
                        WriteToFile(own_options.path, "dewpoint.txt", readDewPoint(file));
                }
                else {
                        printf("Dew Point: %.2f C\n", readDewPoint(file));
                }
	}

	close(file);

	return(EXIT_SUCCESS);
}