Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: DHT11 LPS22HB LSM6DSL VL53L0X
main.cpp
00001 #include "mbed.h" 00002 #include "Sensors.h" 00003 #include "ThingSpeak.h" 00004 #include "CANbus.h" 00005 00006 int main() 00007 { 00008 //ISM43362Interface wifi(MBED_CONF_APP_WIFI_SPI_MOSI, MBED_CONF_APP_WIFI_SPI_MISO, MBED_CONF_APP_WIFI_SPI_SCLK, MBED_CONF_APP_WIFI_SPI_NSS, MBED_CONF_APP_WIFI_RESET, MBED_CONF_APP_WIFI_DATAREADY, MBED_CONF_APP_WIFI_WAKEUP, false); 00009 00010 /******* Connecting to Wi-Fi and ThingSpeak *******/ 00011 int count = 0; 00012 count = scan_demo(&wifi); 00013 if (count == 0) { 00014 printf("No WIFI APNs found - can't continue further.\n"); 00015 return -1; 00016 } 00017 00018 printf("\nConnecting to %s...\n", MBED_CONF_APP_WIFI_SSID); 00019 int ret = wifi.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2); 00020 if (ret != 0) { 00021 printf("\nConnection error\n"); 00022 return -1; 00023 } 00024 printf("Success\n\n"); 00025 00026 /******* Using sensors and publishing to ThingSpeak *******/ 00027 enable_sensors(); 00028 char urlBuffer[100]; 00029 char ThingSpeak_key[20]; 00030 char valBuf[20]; 00031 00032 CANMessage msg; 00033 struct VMS_Msg1 packed_data; 00034 Timer t; 00035 00036 int i; 00037 int speed = 0; 00038 int angle = 0; 00039 int speed_3D[3] = {0,0,0}; 00040 int pos_3D[3] = {0,0,0}; 00041 00042 while(1) 00043 { 00044 for(i=1; i<6; i++) 00045 { 00046 t.start(); //start timer 00047 get_values(); 00048 sprintf(ThingSpeak_key, "MBED_CONF_APP_THINGSPEAK_KEY_SENSORS_%d", i); 00049 memset(ThingSpeak_key, 0, sizeof(ThingSpeak_key)); 00050 00051 sprintf(urlBuffer, "GET http://api.thingspeak.com/update?key=%s", ThingSpeak_key); 00052 00053 //Temperature 00054 sprintf(valBuf, "&field1=%f", temp); 00055 strcat(urlBuffer, valBuf); 00056 memset(valBuf, 0, sizeof(valBuf)); 00057 00058 //Humidity 00059 sprintf(valBuf, "&field2=%f", hum); 00060 strcat(urlBuffer, valBuf); 00061 memset(valBuf, 0, sizeof(valBuf)); 00062 00063 //Light 00064 sprintf(valBuf, "&field3=%d", light); 00065 strcat(urlBuffer, valBuf); 00066 memset(valBuf, 0, sizeof(valBuf)); 00067 00068 //Pressure 00069 if(press_status != VALUE_ERROR) 00070 { 00071 sprintf(valBuf, "&field4=%f", press); 00072 strcat(urlBuffer, valBuf); 00073 memset(valBuf, 0, sizeof(valBuf)); 00074 } 00075 00076 //Motion parameters 00077 00078 00079 while(t.read() < 3) 00080 { 00081 get_motion_data(0.05, &speed, speed_3D, pos_3D, &angle); 00082 wait(0.05); 00083 } 00084 00085 sprintf(valBuf, "&field5=%d", speed); 00086 strcat(urlBuffer, valBuf); 00087 memset(valBuf, 0, sizeof(valBuf)); 00088 00089 sprintf(valBuf, "&field6=%d", pos_3D[0]); 00090 strcat(urlBuffer, valBuf); 00091 memset(valBuf, 0, sizeof(valBuf)); 00092 00093 sprintf(valBuf, "&field7=%d", pos_3D[1]); 00094 strcat(urlBuffer, valBuf); 00095 memset(valBuf, 0, sizeof(valBuf)); 00096 00097 sprintf(valBuf, "&field8=%d", angle); 00098 strcat(urlBuffer, valBuf); 00099 memset(valBuf, 0, sizeof(valBuf)); 00100 00101 send_values(urlBuffer); 00102 memset(urlBuffer, 0, sizeof(urlBuffer)); 00103 00104 //Same with CAN data 00105 00106 if(can.read(msg)) 00107 { 00108 packed_data = data_pack(msg.data); 00109 data_parse(packed_data); 00110 sprintf(ThingSpeak_key, "MBED_CONF_APP_THINGSPEAK_KEY_CAN_%d", i); 00111 sprintf(urlBuffer, "GET http://api.thingspeak.com/update?key=%s", ThingSpeak_key); 00112 memset(ThingSpeak_key, 0, sizeof(ThingSpeak_key)); 00113 00114 sprintf(valBuf, "&field1=%d", battery_current); 00115 strcat(urlBuffer, valBuf); 00116 memset(valBuf, 0, sizeof(valBuf)); 00117 00118 sprintf(valBuf, "&field2=%d", battery_voltage); 00119 strcat(urlBuffer, valBuf); 00120 memset(valBuf, 0, sizeof(valBuf)); 00121 00122 sprintf(valBuf, "&field3=%d", Bat_SOC); 00123 strcat(urlBuffer, valBuf); 00124 memset(valBuf, 0, sizeof(valBuf)); 00125 00126 sprintf(valBuf, "&field4=%d", speed); 00127 strcat(urlBuffer, valBuf); 00128 memset(valBuf, 0, sizeof(valBuf)); 00129 00130 sprintf(valBuf, "&field5=%d", motorTemperature); 00131 strcat(urlBuffer, valBuf); 00132 memset(valBuf, 0, sizeof(valBuf)); 00133 00134 send_values(urlBuffer); 00135 memset(urlBuffer, 0, sizeof(urlBuffer)); 00136 } 00137 else 00138 { 00139 printf("Error reading CAN message. \r\n"); 00140 } 00141 00142 while(t.read() < 3){} //Wait until 3s passes 00143 t.stop(); 00144 t.reset(); 00145 } 00146 00147 } 00148 00149 return 0; 00150 }
Generated on Thu Jul 14 2022 07:12:42 by
1.7.2