turbidity sensor

Dependencies:   watersenor_and_temp_code MQTT NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed

Fork of Dissolved_oxygen_sensor_online by wang tang

Files at this revision

API Documentation at this revision

Comitter:
e58136782000
Date:
Fri Nov 03 01:57:41 2017 +0000
Parent:
2:eab5b5c8271d
Child:
4:3642f63079ec
Commit message:
watersensor

Changed in this revision

BME280/BME280.hpp Show annotated file Show diff for this revision Revisions of this file
DS1820.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/BME280/BME280.hpp	Thu Nov 02 04:38:10 2017 +0000
+++ b/BME280/BME280.hpp	Fri Nov 03 01:57:41 2017 +0000
@@ -48,7 +48,8 @@
         }
     }
 }
-void BME280::receive(){
+void BME280::receive()
+{
     for(int i=0;i<BME280_size;i++){
         buf[i] = sensor.getc();  
         //pc.putc(buf[i]);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DS1820.lib	Fri Nov 03 01:57:41 2017 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/e58136782000/code/watersenor_and_temp_code/#af21738cf2da
--- a/main.cpp	Thu Nov 02 04:38:10 2017 +0000
+++ b/main.cpp	Fri Nov 03 01:57:41 2017 +0000
@@ -4,6 +4,7 @@
 #include "TCPSocket.h"
 #include "MQTTClient.h"
 #include "MQTTWiFi.h"
+#include "DS1820.h"
 
 // MQTT use
 #define MQTT_MAX_PACKET_SIZE 250
@@ -12,7 +13,8 @@
 #define BROKER_URL "192.168.20.149";
 #define MQTT_PORT 1883
 //MQTT use Topic 
-#define TOPIC "1"
+#define TOPIC1 "1"
+#define TOPIC2 "3"
 #define SUB_TOPIC "LED"
 
 
@@ -22,7 +24,6 @@
 
 DigitalOut myled(LED1);
 BME280 bmpSensor;
-
 int connack_rc = 0;    // MQTT connack return code
 const char * ip_addr = "";
 char *host_addr = "";
@@ -34,9 +35,16 @@
 int retryAttempt = 0;
 char subscription_url[MQTT_MAX_PAYLOAD_SIZE];
 
+
+DS1820  ds1820(PA_9);
+Serial serial(USBTX, USBRX);
+
+
 MQTT::Message message;
-MQTTString TopicName={TOPIC};
-MQTT::MessageData MsgData(TopicName, message);
+MQTTString TopicName1={TOPIC1};
+MQTTString TopicName2={TOPIC2};
+MQTT::MessageData MsgData1(TopicName1, message);
+MQTT::MessageData MsgData2(TopicName2, message);
 
 void subscribe_LED(char* msg){
 	int value = atoi(msg);
@@ -76,7 +84,8 @@
     LOG("Nucleo IP ADDRESS: %s\n\r", WiFi.get_ip_address());
     LOG("Nucleo MAC ADDRESS: %s\n\r", WiFi.get_mac_address());
     LOG("Server Hostname: %s port: %d\n\r", hostname, MQTT_PORT);
-    LOG("Topic: %s\n\r", TOPIC);
+    LOG("Topic1: %s\n\r", TOPIC1);
+    LOG("Topic2: %s\n\r", TOPIC2);
     //need subscrie
     LOG("=====================================\n\r");
     netConnecting = true;
@@ -139,15 +148,12 @@
             wait(timeout);
     }
 }
-int publish (MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client,MQTTWiFi* ipstack){
+int publish (MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client,MQTTWiFi* ipstack,int data){
 	
     
 	MQTT::Message message;
-	int data = 1;
-	char *pubTopic = TOPIC;
+	char *pubTopic = TOPIC1;
 	char buf[MQTT_MAX_PAYLOAD_SIZE];
-
-
 	printf("Temp = %d\n", data);
 	sprintf(buf,"%d",data);
 	message.qos = MQTT::QOS0;
@@ -164,11 +170,11 @@
 {
 	myled =0;
 	/* code */
+	
 	const char *ssid = SSID;
 	const char *seckey = PASSW;
 	//use SpwfSAInterface connect AP
 	SpwfSAInterface spwf(D8,D2, false);
-
 	printf("\r\nX-NUCLEO-IDW01M1 mbed \n");
 	printf("\r\nconnecting to AP\n");
 	//connect to Wifi
@@ -182,23 +188,43 @@
 
 	MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE> client(ipstack);
 	attemptConnect(&client, &ipstack);
-
-	   
+	ds1820.begin();	   
    int count = 0;    
 //    tyeld.start();    
     while (true)
     {
-        if (++count == 100)
-        {               // Publish a message every second
-            if (publish(&client, &ipstack) != 0) { 
-               
-                attemptConnect(&client, &ipstack);   // if we have lost the connection                
-            }
-            count = 0;
-        }        
-//        int start = tyeld.read_ms();
-        client.yield(10);  // allow the MQTT client to receive messages
-//        printf ("tyeld: %d\n\r",tyeld.read_ms()-start);
+    	int databuffer;
+
+    	//if(ds1820.begin()) 
+    	//{
+    	    //ds1820.startConversion();   // start temperature conversion
+    	    //client.yield(1);           // let DS1820 complete the temperature conversion
+    	    //serial.printf("temp test = %d \r\n", ds1820.read());     // read temperature
+    	    //wait(1);
+    	    //databuffer = ds1820.read()*10;
+    	    //ds1820.startConversion();     // start temperature conversion
+			//client.yield(1);                      // let DS1820 complete the temperature conversion
+    	//}
+    	//else
+    	//{
+		//	serial.printf("No DS1820 sensor found!\r\n");
+		//	databuffer = 0;
+    	//} 
 
-    }
+    	if (++count == 3)
+    	{               // Publish a message every second
+    		if (publish(&client, &ipstack,databuffer) != 0) 
+    		{ 
+	     	   	attemptConnect(&client, &ipstack);   // if we have lost the connection                
+	     	}
+        count = 0;
+    	}
+    	else
+    	{
+    		serial.printf("count: %d \n",count);
+    	}        
+//  	int start = tyeld.read_ms();
+    	client.yield(10);  // allow the MQTT client to receive messages
+//  	printf ("tyeld: %d\n\r",tyeld.read_ms()-start);
+    	}
 }
\ No newline at end of file