watersensor and DS1280 temp sensor

Dependencies:   watersenor_and_temp_code MQTT NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed

Fork of DS1820_IDW01M1 by CHANG rozen

Revision:
5:06af79bf75a5
Parent:
4:3642f63079ec
--- a/main.cpp	Sat Nov 04 00:14:23 2017 +0800
+++ b/main.cpp	Sun Nov 05 06:50:14 2017 +0000
@@ -10,17 +10,17 @@
 #define MQTT_MAX_PACKET_SIZE 250
 #define MQTT_MAX_PAYLOAD_SIZE 300
 //Configuration value needed to connect Red-node
-#define BROKER_URL "192.168.20.116";
+#define BROKER_URL "192.168.1.111";
 #define MQTT_PORT 1883
 //MQTT use Topic 
-#define TOPIC1 "1"
-#define TOPIC2 "3"
+#define TOPIC2 "1"
+#define TOPIC1 "3"
 #define SUB_TOPIC "LED"
 
 
 //Wifi network
-#define SSID "tnta"
-#define PASSW "tnta2355818"
+#define SSID "18-2F"
+#define PASSW "062432779"
 
 DigitalOut myled(LED1);
 //BME280 bmpSensor;
@@ -39,7 +39,7 @@
 
 Serial serial(USBTX, USBRX);
 DS1820  ds1820(PA_8);    // substitute PA_9 with actual mbed pin name connected to the DS1820 data pin
-
+DigitalIn  sensor_in(D4);
 
 
 MQTT::Message message;
@@ -150,13 +150,13 @@
             wait(timeout);
     }
 }
-int publish (MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client,MQTTWiFi* ipstack,int data){
+int publish1(MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client,MQTTWiFi* ipstack,int data){
 	
     
 	MQTT::Message message;
 	char *pubTopic = TOPIC1;
 	char buf[MQTT_MAX_PAYLOAD_SIZE];
-	printf("Temp = %d\n", data);
+//	printf("Temp = %d\n", data);
 	sprintf(buf,"%d",data);
 	message.qos = MQTT::QOS0;
 	message.retained = false;
@@ -164,10 +164,31 @@
     message.payload = (void*)buf;
     message.payloadlen = strlen(buf);
 
-    printf("Publishing %s\n\r", buf);
+    printf("Temp = %s\n\r", buf);
     return client->publish(pubTopic, message);
 }
-
+int publish2(MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client,MQTTWiFi* ipstack,int data){
+	
+    
+	MQTT::Message message;
+	char *pubTopic = TOPIC1;
+	char buf[MQTT_MAX_PAYLOAD_SIZE];
+    if(data)
+    {
+		printf("LED:OFF \n");    	
+    }
+    else
+    {
+		printf("LED:ON \n");     	
+    }
+	sprintf(buf,"%d",data);
+	message.qos = MQTT::QOS0;
+	message.retained = false;
+    message.dup = false;
+    message.payload = (void*)buf;
+    message.payloadlen = strlen(buf);
+    return client->publish(pubTopic, message);
+}
 int main()
 {
 	myled =0;
@@ -192,21 +213,38 @@
 	attemptConnect(&client, &ipstack);
 	   
    int count = 0;  
-   int databuffer=0;  
+   int databuffer1;
+   int databuffer2;  
 //    tyeld.start();    
     while (true){
         if(!ds1820.begin())
+        {
             return -1;
+        }
         else
+        {
             ds1820.startConversion();
-    
-    	if (++count == 3)
+        }
+        
+        if(sensor_in)
+        {
+        	databuffer2 = 0;
+        }
+        else
+        {
+        	databuffer2 = 1;
+        }
+    	if (++count == 20)
     	{               // Publish a message every second
-            serial.printf("temp = %3.1f\r\n", ds1820.read());     // read temperature
-            databuffer = ds1820.read();
+//            serial.printf("temp = %3.1f\r\n", ds1820.read());     // read temperature
+            databuffer1 = ds1820.read();
             ds1820.startConversion();     // start temperature conversion
             wait(1.0);                    // let DS1820 complete the temperature conversion
-    		if (publish(&client, &ipstack,databuffer) != 0) 
+    		if (publish1(&client, &ipstack,databuffer1) != 0) 
+    		{ 
+	     	   	attemptConnect(&client, &ipstack);   // if we have lost the connection                
+	     	}
+	     	if (publish2(&client, &ipstack,databuffer2) != 0) 
     		{ 
 	     	   	attemptConnect(&client, &ipstack);   // if we have lost the connection                
 	     	}
@@ -214,7 +252,7 @@
     	}
     	else
     	{
-    		serial.printf("count: %d \n",count);
+//    		serial.printf("count: %d \n",count);
     	}      
 //  	int start = tyeld.read_ms();
     	//client.yield(10);  // allow the MQTT client to receive messages