INSAT_MiniPRoject
Dependencies: MQTT NDefLib NetworkSocketAPI Servo Light_Sensor_Nucleo X_NUCLEO_IDW01M1v2 mbed
Fork of IDW01M1_Cloud_IBM by
Revision 25:9dab18979609, committed 2018-02-20
- Comitter:
- Hamdi
- Date:
- Tue Feb 20 19:24:38 2018 +0000
- Parent:
- 24:a59eb8bdc431
- Commit message:
- INSAT mini Project
Changed in this revision
diff -r a59eb8bdc431 -r 9dab18979609 MQTT.lib --- 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
diff -r a59eb8bdc431 -r 9dab18979609 NDefLib.lib --- 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
diff -r a59eb8bdc431 -r 9dab18979609 Servo.lib --- /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
diff -r a59eb8bdc431 -r 9dab18979609 X_NUCLEO_6180XA1.lib --- /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
diff -r a59eb8bdc431 -r 9dab18979609 X_NUCLEO_IDW01M1v2.lib --- 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
diff -r a59eb8bdc431 -r 9dab18979609 X_NUCLEO_IKS01A1.lib --- 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
diff -r a59eb8bdc431 -r 9dab18979609 X_NUCLEO_NFC01A1.lib --- 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
diff -r a59eb8bdc431 -r 9dab18979609 main.cpp --- 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();
diff -r a59eb8bdc431 -r 9dab18979609 mbed.bld --- 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