use Dussolved_oxygen_sensor_on_wifi
Dependencies: watersenor_and_temp_code MQTT NetworkSocketAPI X_NUCLEO_IDW01M1v2 mbed
Fork of DS1820_IDW01M1 by
Revision 3:30d9b8d9adc9, committed 2017-11-03
- Comitter:
- e58136782000
- Date:
- Fri Nov 03 01:57:41 2017 +0000
- Parent:
- 2:eab5b5c8271d
- Child:
- 4:3642f63079ec
- Commit message:
- watersensor
Changed in this revision
--- 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
