void dht_periodic(void) { if (dht_global.polling_delay == 0) { /* read sensor data */ dht_read(); dht_global.polling_delay = DHT_POLLING_INTERVAL * HZ; } else if (--dht_global.polling_delay == 0) { dht_start(); } }
int main(int argc, char **argv) { jlg_init(); JLG_LOG("starting"); JLG_DEBUG_ON(); dht_t *dhtp = dht_create(); properties_set_filename(dhtp->p, "./dht.properties"); properties_reload(dhtp->p); JLG_DEBUG("starting dht"); JLG_TRY(dht_start(dhtp)); // demarrer un client interactif permettant: // imprimer statut reseau // stocker une cle/valeur // retrouver une cle/valeur // trouver le node responsable d'une cle // quitter l'appli en fermant l'agent dht_client_t *clientp = dht_client_create(dhtp); dht_client_start(clientp); dll_node_t *nodep = dhtp->p->hashp->dlistp->nodep; while (nodep) { hash_pair_t *pairp = nodep->valuep; JLG_DEBUG("%s->%s", pairp->key, (char *) pairp->value); nodep = nodep->nextp; } dht_stop(dhtp); int ret = pthread_join(dhtp->tcp_serverp->server_thread, NULL); JLG_CHECK(ret, "Error while using pthread_join. Error code returned: %d\n", ret); dht_delete(&dhtp); cleanup: return JLG_RETURN_CODE; }
void read_dht11(void) { uint8_t i; //u8 j,k; u8 sensor[5]; unsigned char string[10]; //char hum_string[10],temp_string[10]; //char hum_string[80],temp_string[80]; if(dht_start()) { for(i = 0;i < 5;++i) { sensor[i] = read_dht11_byte(); } dht11_output(); DHT11 = 0; //if((sensor[0] + sensor[1] + sensor[2] + sensor[3]) == sensor[4]) if((sensor[0] + sensor[2]) == sensor[4]) { /* for(j=0;j<2;++j) { string[0] = sensor[0+j*2]/10+'0'; string[1] = sensor[0+j*2]%10+'0'; string[2] = '.'; string[3] = sensor[1+j*2]/10+'0'; string[4] = sensor[0+j*2]%10+'0'; string[5] = '\0'; Lcd_Puts(4,j,string); } */ string[0] = sensor[0]/10+'0'; string[1] = sensor[0]%10+'0'; string[2] = '%'; string[3] = ' '; string[4] = sensor[2]/10+'0'; string[5] = sensor[2]%10+'0'; string[6] = 0xdf; string[7] = 'c'; string[8] = '\0'; //rintf(string+7,"c"); Lcd_Puts(0,0,string); /* k=0; k += sprintf(string,"%d.",sensor[0]); k += sprintf(string+k,"%d%% ",sensor[1]);//小数部分读不出来?dht11精度就是5%和1摄氏度,所以没有小数 k += sprintf(string+k,"%d.",sensor[2]); sprintf(string+k,"%d`c",sensor[3]); Lcd_Puts(0,0,string); //Lcd_Puts(0,1,temp_string); */ /* k=0; k += sprintf(string,"hum:%d.",sensor[0]); k += sprintf(string+k,"%2d ",sensor[1]); k += sprintf(string+k,"tem:%d.",sensor[2]); sprintf(string+k,"%2d",sensor[3]); Lcd_Puts(0,0,string); //Lcd_Puts(0,1,temp_string); */ } } }