ACKme WiFi module + Nucleo MEMS module example. Connect and publish sensor data to M2X.
Dependencies: M2XStreamClient WiConnect Nucleo_Sensor_Shield jsonlite mbed
Fork of m2x-MEMS_ACKme_Wifi_demo by
Revision 2:e277cdbabbb2, committed 2014-12-16
- Comitter:
- davidkwak
- Date:
- Tue Dec 16 18:56:57 2014 +0000
- Parent:
- 1:276e4607719f
- Child:
- 3:37ed2159c4fd
- Commit message:
- Updated some of the console output.
; Added a message indicating network status.
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Dec 11 21:27:59 2014 +0000 +++ b/main.cpp Tue Dec 16 18:56:57 2014 +0000 @@ -84,9 +84,9 @@ WiconnectResult result; - if(WICONNECT_FAILED(result, wiconnect.init(true))) + if (WICONNECT_FAILED(result, wiconnect.init(true))) { - if(result == WICONNECT_FIRMWARE_OUTDATED) + if (result == WICONNECT_FIRMWARE_OUTDATED) { pc.printf("** The WiFi firmware is not supported. Run the ota example to update the firmware:\r\n"); pc.printf("https://developer.mbed.org/teams/ACKme/code/wiconnect-ota_example\r\n\r\n"); @@ -100,10 +100,12 @@ return -1; } - /* Manually connected to the specified network (to ensure SDK backward compatibility. */ + wait(5); + + /* Manually connected to the specified network (to ensure SDK backward compatibility). */ pc.printf("Setting network SSID: %s\r\n", NETWORK_SSID); - if(WICONNECT_FAILED(result, wiconnect.setSetting("wlan.ssid", NETWORK_SSID))) + if (WICONNECT_FAILED(result, wiconnect.setSetting("wlan.ssid", NETWORK_SSID))) { pc.printf("Failed to set wlan.ssid setting\r\n"); return -1; @@ -111,7 +113,7 @@ pc.printf("Setting network password\r\n"); - if(WICONNECT_FAILED(result, wiconnect.setSetting("wlan.passkey", NETWORK_PASSWORD))) + if (WICONNECT_FAILED(result, wiconnect.setSetting("wlan.passkey", NETWORK_PASSWORD))) { pc.printf("Failed to set wlan.passkey setting\r\n"); return -1; @@ -119,12 +121,48 @@ pc.printf("Saving settings to Non-volatile Memory\r\n"); - if(WICONNECT_FAILED(result, wiconnect.saveSettings())) + if (WICONNECT_FAILED(result, wiconnect.saveSettings())) { pc.printf("Failed save settings\r\n"); return -1; } + NetworkStatus status; + + result = wiconnect.getNetworkStatus(&status); + + switch (status) + { + case NETWORK_STATUS_DOWN: + { + pc.printf("NETWORK_STATUS_DOWN\r\n"); + + return -1; + + break; + } + case NETWORK_STATUS_WIFI_ONLY: + { + pc.printf("NETWORK_STATUS_WIFI_ONLY\r\n"); + break; + } + case NETWORK_STATUS_UP: + { + pc.printf("NETWORK_STATUS_UP\r\n"); + break; + } + case NETWORK_STATUS_JOINING: + { + pc.printf("NETWORK_STATUS_JOINING\r\n"); + break; + } + default: + { + pc.printf("UNKNOWN\r\n"); + break; + } + } + pc.printf("IP Address: %s\r\n", wiconnect.getIpAddress()); pc.printf("Network joined!\r\n"); @@ -141,10 +179,16 @@ pc.printf("updateLocation response code: %d\r\n", m2x_response); + if (m2x_response == -1) + { + printf("Location data update error\n"); + } + /* Main loop */ while(1) { - volatile float TEMPERATURE_Value; + volatile float TEMPERATURE_Value_C; + volatile float TEMPERATURE_Value_F; volatile float HUMIDITY_Value; volatile float PRESSURE_Value; volatile AxesRaw_TypeDef MAG_Value; @@ -152,30 +196,33 @@ volatile AxesRaw_TypeDef GYR_Value; /* Update sensors. */ - mems_expansion_board->hts221.GetTemperature((float *)&TEMPERATURE_Value); + mems_expansion_board->hts221.GetTemperature((float *)&TEMPERATURE_Value_C); mems_expansion_board->hts221.GetHumidity((float *)&HUMIDITY_Value); mems_expansion_board->lps25h.GetPressure((float *)&PRESSURE_Value); mems_expansion_board->lis3mdl.GetAxes((AxesRaw_TypeDef *)&MAG_Value); mems_expansion_board->lsm6ds0.Acc_GetAxes((AxesRaw_TypeDef *)&ACC_Value); mems_expansion_board->lsm6ds0.Gyro_GetAxes((AxesRaw_TypeDef *)&GYR_Value); + /* Convert temperature to degrees Farhenheit. */ + TEMPERATURE_Value_F = (1.8f * TEMPERATURE_Value_C) + 32.0f; + /* Output sensor data. */ - pc.printf("TEMP: %f HUMIDITY: %f PRESSURE: %f\t\r\n", TEMPERATURE_Value, HUMIDITY_Value, PRESSURE_Value); - pc.printf("X_MAG: %d, Y_MAG: %d, Z_MAG: %d\t\r\n", MAG_Value.AXIS_X, MAG_Value.AXIS_Y, MAG_Value.AXIS_Z); - pc.printf("X_ACC: %d, Y_ACC: %d, Z_ACC: %d\t\r\n", ACC_Value.AXIS_X, ACC_Value.AXIS_Y, ACC_Value.AXIS_Z); - pc.printf("X_GYR: %d, Y_GYR: %d, Z_GYR: %d\t\r\n\n", GYR_Value.AXIS_X, GYR_Value.AXIS_Y, GYR_Value.AXIS_Z); - - /* Convert temperature to degrees Farhenheit. */ - float temperature_f = (1.8f * TEMPERATURE_Value) + 32.0f; + pc.printf("Temperature:\t\t %f C / %f F\r\n", TEMPERATURE_Value_C, TEMPERATURE_Value_F); + pc.printf("Humidity:\t\t %f%%\r\n", HUMIDITY_Value); + pc.printf("Pressure:\t\t %f hPa\r\n", PRESSURE_Value); + pc.printf("Magnetometer (mGauss):\t X: %d, Y: %d, Z: %d\r\n", MAG_Value.AXIS_X, MAG_Value.AXIS_Y, MAG_Value.AXIS_Z); + pc.printf("Accelerometer (mg):\t X: %d, Y: %d, Z: %d\r\n", ACC_Value.AXIS_X, ACC_Value.AXIS_Y, ACC_Value.AXIS_Z); + pc.printf("Gyroscope (mdps):\t X: %d, Y: %d, Z: %d\r\n", GYR_Value.AXIS_X, GYR_Value.AXIS_Y, GYR_Value.AXIS_Z); + pc.printf("\r\n"); /* Post temperature to the m2x stream. */ - m2x_response = m2xClient.updateStreamValue(feed, tempStream, temperature_f); + m2x_response = m2xClient.updateStreamValue(feed, tempStream, TEMPERATURE_Value_F); pc.printf("Temperature updateStreamValue response code: %d\r\n", m2x_response); if (m2x_response == -1) { - pc.printf("Temperature data transmit post error\n"); + pc.printf("Temperature data update error\n"); } /* Post humidity to the m2x stream. */ @@ -185,7 +232,7 @@ if (m2x_response == -1) { - pc.printf("Humidity data transmit post error\n"); + pc.printf("Humidity data update error\n"); } /* Post acceleration (x-axis) to the m2x stream. */ @@ -195,7 +242,7 @@ if (m2x_response == -1) { - pc.printf("Acceleration data transmit post error\n"); + pc.printf("Acceleration data update error\n"); } pc.printf("\n");