static void ICACHE_FLASH_ATTR networkConnectedCb(void *arg) {

    struct espconn* conn = arg;
    char buf[384];
	char buf2[255];
	char t1[32];
	char t2[32];
	char t3[32];
	
	//double expand as sysCfg.broadcastd_url cntains placeholders as well
	os_sprintf(buf2,"GET %s HTTP/1.1\r\nHost: %s\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; esp8266; Windows NT 5.1)\r\n\r\n",sysCfg.broadcastd_url,sysCfg.broadcastd_host);
	
	if(sysCfg.sensor_dht22_enable)  {
		dht_temp_str(t2);
		dht_humi_str(t3);
		os_sprintf(buf,buf2,currGPIO12State,currGPIO13State,currGPIO15State,"N/A",t2,t3);
	}
	
	if(sysCfg.sensor_ds18b20_enable)  { // If DS18b20 daemon is enabled, then send up to 3 sensor's data instead
		ds_str(t1,0);
		if(numds>1) ds_str(t2,1); //reuse to save space
		if(numds>2)  ds_str(t3,2); //reuse to save space
		os_sprintf(buf,buf2,currGPIO12State,currGPIO13State,currGPIO15State,t1,t2,t3);
	}
	
	
    espconn_sent(conn, (uint8*)buf, os_strlen(buf));

	os_printf("Sent HTTP GET: %s\n\r",buf);
}
Exemplo n.º 2
0
//Template code for the DHT 22 page.
void ICACHE_FLASH_ATTR tplDHT(HttpdConnData *connData, char *token, void **arg) {
	char buff[128];
	if (token==NULL) return;
	
	os_strcpy(buff, "Unknown");
	if (os_strcmp(token, "temperature")==0) {
			dht_temp_str(buff);
	}
	if (os_strcmp(token, "humidity")==0) {
			dht_humi_str(buff);
	}	
	
	httpdSend(connData, buff, -1);
}
Exemplo n.º 3
0
int ICACHE_FLASH_ATTR cgiDHT22(HttpdConnData *connData) {
	char buff[256];
	char temp[32];
	char humi[32];

	httpdStartResponse(connData, 200);
	httpdHeader(connData, "Content-Type", "text/json");
	httpdHeader(connData, "Access-Control-Allow-Origin", "*");
	httpdEndHeaders(connData);

	dht_temp_str(temp);
	dht_humi_str(humi);
	
	os_sprintf(buff, "{ \n\"temperature\": \"%s\"\n , \n\"humidity\": \"%s\"\n}\n", temp, humi );
	
	httpdSend(connData, buff, -1);
	return HTTPD_CGI_DONE;
}
static ICACHE_FLASH_ATTR void MQTTbroadcastReading(void* arg){

	if(sysCfg.mqtt_enable==1) {
		//os_printf("Sending MQTT\n");
		
		if(sysCfg.sensor_dht22_enable) {
			struct sensor_reading* result = readDHT();
			if(result->success) {
				char temp[32];
				char topic[128];
				int len;
				
				dht_temp_str(temp);
				len = os_strlen(temp);
				os_sprintf(topic,"%s",sysCfg.mqtt_dht22_temp_pub_topic);
				MQTT_Publish(&mqttClient,topic,temp,len,0,0);
				os_printf("Published \"%s\" to topic \"%s\"\n",temp,topic);
				
				dht_humi_str(temp);
				len = os_strlen(temp);
				os_sprintf(topic,"%s",sysCfg.mqtt_dht22_humi_pub_topic);
				MQTT_Publish(&mqttClient,topic,temp,len,0,0);
				os_printf("Published \"%s\" to topic \"%s\"\n",temp,topic);
			}
		}
		

		if(sysCfg.sensor_ds18b20_enable) {
			struct sensor_reading* result = read_ds18b20();
			if(result->success) {
				char temp[32];
				char topic[128];
				int len;
				ds_str(temp,0);
				len = os_strlen(temp);
				os_sprintf(topic,"%s",sysCfg.mqtt_ds18b20_temp_pub_topic);
				MQTT_Publish(&mqttClient,topic,temp,len,0,0);
				os_printf("Published \"%s\" to topic \"%s\"\n",temp,topic);
			}
		}

	
    }
}