INSAT_MiniPRoject

Dependencies:   MQTT NDefLib NetworkSocketAPI Servo Light_Sensor_Nucleo X_NUCLEO_IDW01M1v2 mbed

Fork of IDW01M1_Cloud_IBM by ST

Files at this revision

API Documentation at this revision

Comitter:
Hamdi
Date:
Tue Feb 20 19:24:38 2018 +0000
Parent:
24:a59eb8bdc431
Commit message:
INSAT mini Project

Changed in this revision

MQTT.lib Show annotated file Show diff for this revision Revisions of this file
NDefLib.lib Show annotated file Show diff for this revision Revisions of this file
Servo.lib Show annotated file Show diff for this revision Revisions of this file
X_NUCLEO_6180XA1.lib Show annotated file Show diff for this revision Revisions of this file
X_NUCLEO_IDW01M1v2.lib Show annotated file Show diff for this revision Revisions of this file
X_NUCLEO_IKS01A1.lib Show diff for this revision Revisions of this file
X_NUCLEO_NFC01A1.lib Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/MQTT.lib	Thu Nov 24 13:22:03 2016 +0000
+++ b/MQTT.lib	Tue Feb 20 19:24:38 2018 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/teams/ST/code/MQTT/#66826ea709ea
+https://developer.mbed.org/teams/ST/code/MQTT/#c66fdbb9eb83
--- a/NDefLib.lib	Thu Nov 24 13:22:03 2016 +0000
+++ b/NDefLib.lib	Tue Feb 20 19:24:38 2018 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/teams/ST/code/NDefLib/#46899fa3d9f2
+http://developer.mbed.org/teams/ST/code/NDefLib/#72c86cbd49be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Tue Feb 20 19:24:38 2018 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/users/simon/code/Servo/#36b69a7ced07
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/X_NUCLEO_6180XA1.lib	Tue Feb 20 19:24:38 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/Hamdi/code/Light_Sensor_Nucleo/#f1110f5e3d90
--- a/X_NUCLEO_IDW01M1v2.lib	Thu Nov 24 13:22:03 2016 +0000
+++ b/X_NUCLEO_IDW01M1v2.lib	Tue Feb 20 19:24:38 2018 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/teams/ST/code/X_NUCLEO_IDW01M1v2/#0368732b5b9d
+https://developer.mbed.org/teams/ST/code/X_NUCLEO_IDW01M1v2/#c8697141ce44
--- a/X_NUCLEO_IKS01A1.lib	Thu Nov 24 13:22:03 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-https://developer.mbed.org/teams/ST/code/X_NUCLEO_IKS01A1/#d17ab29129ce
--- a/X_NUCLEO_NFC01A1.lib	Thu Nov 24 13:22:03 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://developer.mbed.org/teams/ST/code/X_NUCLEO_NFC01A1/#3881985097bb
--- a/main.cpp	Thu Nov 24 13:22:03 2016 +0000
+++ b/main.cpp	Tue Feb 20 19:24:38 2018 +0000
@@ -15,25 +15,50 @@
  */
 
 #include "mbed.h"
+
+
 #include "SpwfInterface.h"
+#include "XNucleo6180XA1.h"
 #include "TCPSocket.h"
 #include "MQTTClient.h"
 #include "MQTTWiFi.h"
+ #include "Servo/Servo.h"
+
 #include <ctype.h>
-#include "x_nucleo_iks01a1.h"
-#include "X_NUCLEO_NFC01A1.h"
-#include "NDefLib/NDefNfcTag.h"
+//#include "x_nucleo_iks01a1.h"
+//#include "X_NUCLEO_NFC01A1.h"
+//#include "NDefLib/NDefNfcTag.h"
 #include "NDefLib/RecordType/RecordURI.h"
 
+/* Definitions ---------------------------------------------------------------*/
+
+#define VL6180X_I2C_SDA   D14 
+#define VL6180X_I2C_SCL   D15 
+
+
+/* Variables -----------------------------------------------------------------*/
+
+static XNucleo6180XA1 *board = NULL;
+int status;
+    
+    
 //------------------------------------
 // Hyperterminal configuration
 // 9600 bauds, 8-bit data, no parity
 //------------------------------------
-Serial pc(SERIAL_TX, SERIAL_RX); 
+//Serial pc(SERIAL_TX, SERIAL_RX); 
 DigitalOut myled(LED1);
 bool quickstartMode = true;    
 
-#define ORG_QUICKSTART           // comment to connect to play.internetofthings.ibmcloud.com
+ Servo myservo(D11);
+
+
+
+ 
+
+ //float Moisture = 0 ;
+
+#define ORG_QUICKSTART           // comment to connect to play.internetofthings.ibmcloud.co
 //#define SUBSCRIBE              // uncomment to subscribe to broker msgs (not to be used with IBM broker) 
 #define X_NUCLEO_NFC01A1_PRESENT // uncomment to add NFC support
     
@@ -48,10 +73,10 @@
 #define AUTH_TOKEN ""
 #define DEFAULT_TYPE_NAME "iotsample-mbed-Nucleo"
 #else   // not def ORG_QUICKSTART
-#define ORG "play"             // connect to play.internetofthings.ibmcloud.com/ For a registered connection, replace with your org
-#define ID ""       // For a registered connection, replace with your id
+#define ORG ""             // connect to play.internetofthings.ibmcloud.com/ For a registered connection, replace with your org
+#define ID ""       // For a registered connection, replace with your id  0080E1B8D765
 #define AUTH_TOKEN ""// For a registered connection, replace with your auth-token
-#define DEFAULT_TYPE_NAME "sensor"
+#define DEFAULT_TYPE_NAME ""
 #endif
 #define TOPIC  "iot-2/evt/status/fmt/json" 
 
@@ -60,8 +85,8 @@
 #define MQTT_TLS_PORT 8883
 #define IBM_IOT_PORT MQTT_PORT
 // WiFi network credential
-#define SSID   ""  // Network must be visible otherwise it can't connect
-#define PASSW  ""
+#define SSID   "STM"  // Network must be visible otherwise it can't connect
+#define PASSW  "STMdemoPWD"
 #warning "Wifi SSID & password empty"
     
 char id[30] = ID;                 // mac without colons  
@@ -79,9 +104,9 @@
 int retryAttempt = 0;
 char subscription_url[MQTT_MAX_PAYLOAD_SIZE];
 
-PressureSensor *pressure_sensor;
-HumiditySensor *humidity_sensor;
-TempSensor *temp_sensor1;
+
+int32_t axes[3];
+
 
 MQTT::Message message;
 MQTTString TopicName={TOPIC};
@@ -112,7 +137,7 @@
     // Construct clientId - d:org:type:id
     char clientId[strlen(org) + strlen(type) + strlen(id) + 5];  
     sprintf(clientId, "d:%s:%s:%s", org, type, id);  
-    sprintf(subscription_url, "%s.%s/#/device/%s/sensor/", org, "internetofthings.ibmcloud.com",id);
+    sprintf(subscription_url, "%s.%s/#/device/%s/light/", org, "internetofthings.ibmcloud.com",id);
 
     // Network debug statements 
     LOG("=====================================\n\r");
@@ -198,19 +223,46 @@
     }
 }
 
+
+    
 int publish(MQTT::Client<MQTTWiFi, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTWiFi* ipstack)
 {
     MQTT::Message message;
     char* pubTopic = TOPIC;
-            
+              /* Creates the 6180XA1 expansion board singleton obj. */
+              
+
+
+
+    /* Initializes the 6180XA1 expansion board with default values. */
+    status = board->init_board(); 
+    
     char buf[MQTT_MAX_PAYLOAD_SIZE];
-    float temp, press, hum;
-    temp_sensor1->GetTemperature(&temp);
-    pressure_sensor->GetPressure(&press);
-    humidity_sensor->GetHumidity(&hum);
+   
+  uint32_t lux, dist;
+ 
+     board->sensor_top->get_distance(&dist);
+        board->sensor_top->get_lux(&lux);
+        
+
+if ((lux<40)&&(lux>10))
+  {   for(int i=5; i<160; i++) {
+             myservo = i/160.0;
+             wait(0.01);
+         }
+      }   
+     else    
+   if ((lux<180)&&(lux>150)) 
+     {    for(int i=5; i<170; i++) {
+             myservo = i/170.0;
+             wait(0.01);
+             }
+         }
+         
+//
     sprintf(buf,
-     "{\"d\":{\"ST\":\"Nucleo-IoT-mbed\",\"Temp\":%0.4f,\"Pressure\":%0.4f,\"Humidity\":%0.4f}}",
-              temp, press, hum);
+     "{\"d\":{\"ST\":\"Nucleo-IoT-mbed\",\"Distance\": %1.0d, \"Lux\": %1.0d}}",    
+              dist,lux);
     message.qos = MQTT::QOS0;
     message.retained = false;
     message.dup = false;
@@ -228,18 +280,18 @@
     const char * seckey = PASSW;
     SpwfSAInterface spwf(D8, D2, false);
     
+    DevI2C *device_i2c = new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL);
+  board = XNucleo6180XA1::instance(device_i2c, A3, A0, D13, D0);
+
+
+ 
+    
 //    Timer tyeld;
     myled=0;
-    DevI2C *i2c = new DevI2C(I2C_SDA, I2C_SCL);
-    i2c->frequency(400000);    
+
     
-    X_NUCLEO_IKS01A1 *mems_expansion_board = X_NUCLEO_IKS01A1::Instance(i2c);   
-    pressure_sensor = mems_expansion_board->pt_sensor;
-    temp_sensor1 = mems_expansion_board->ht_sensor;  
-    humidity_sensor = mems_expansion_board->ht_sensor;  
-    
-    pc.printf("\r\nX-NUCLEO-IDW01M1 mbed Application\r\n");     
-    pc.printf("\r\nconnecting to AP\r\n");            
+    printf("\r\nX-NUCLEO-IDW01M1 mbed Application\r\n");     
+    printf("\r\nconnecting to AP\r\n");            
 
    quickstartMode=false;
    if (strcmp(org, "quickstart") == 0){quickstartMode = true;}
@@ -263,27 +315,7 @@
       while (true)
       wait(1.0); // Permanent failures - don't retry
    }
-#ifdef X_NUCLEO_NFC01A1_PRESENT      
-   // program NFC with broker URL        
-   X_NUCLEO_NFC01A1 *nfcNucleo = X_NUCLEO_NFC01A1::Instance(*i2c, NULL, X_NUCLEO_NFC01A1::DEFAULT_GPO_PIN, X_NUCLEO_NFC01A1::DEFAULT_RF_DISABLE_PIN, NC,NC,NC);  
-   NDefLib::NDefNfcTag& tag = nfcNucleo->getM24SR().getNDefTag();
-   printf("NFC Init done: !\r\n");
-   //open the i2c session with the nfc chip
-   if(tag.openSession()){
-       //create the NDef message and record
-       NDefLib::Message msg;
-       NDefLib::RecordURI rUri(NDefLib::RecordURI::HTTPS, subscription_url);
-       msg.addRecord(&rUri);
-        //write the tag
-        if(tag.write(msg)){
-            printf("Tag writed \r\n");
-        }
-        //close the i2c session
-        if(!tag.closeSession()){
-            printf("Error Closing the session\r\n");
-        }
-    }else printf("Error open Session\r\n");             
-#endif    
+
    myled=1;         
    int count = 0;    
 //    tyeld.start();    
--- a/mbed.bld	Thu Nov 24 13:22:03 2016 +0000
+++ b/mbed.bld	Tue Feb 20 19:24:38 2018 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/2e9cc70d1897
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/5571c4ff569f
\ No newline at end of file