Commit ad23cb4c6dc8673b239e416c41253478927736c6

Authored by Imanol-Mikel Barba Sabariego
1 parent 1a74fac0

--no commit message

Project/applications/smartcities/Makefile
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 SDK_ROOT = ../../ 10 SDK_ROOT = ../../
11 PROJECT_OUT = smartcities 11 PROJECT_OUT = smartcities
12 12
13 -USER_SRC = main2.c configServer.c httpClient.c callbacks.c module.c sensors.c json.c i2c.c ntp.c buffer.c timer-loop.c adc.c 13 +USER_SRC = main2.c configServer.c httpClient.c callbacks.c sensors.c json.c i2c.c ntp.c buffer.c timer-loop.c adc.c
14 USER_INCDIR = include/ makefsdata/ 14 USER_INCDIR = include/ makefsdata/
15 15
16 # if you need to add build Defines options add to USER_DEFS define 16 # if you need to add build Defines options add to USER_DEFS define
Project/applications/smartcities/i2c.c
@@ -165,4 +165,5 @@ void I2C_scan(uint8_t *addresses) @@ -165,4 +165,5 @@ void I2C_scan(uint8_t *addresses)
165 I2C_reset(); 165 I2C_reset();
166 } 166 }
167 } 167 }
  168 + register_sensor(battery);
168 } 169 }
169 \ No newline at end of file 170 \ No newline at end of file
Project/applications/smartcities/include/globals.h
@@ -6,5 +6,6 @@ @@ -6,5 +6,6 @@
6 #define MODULE_ID_LENGTH 6 6 #define MODULE_ID_LENGTH 6
7 #define BUFFER_LENGTH 30 7 #define BUFFER_LENGTH 30
8 #define MAX_RAM 30000 8 #define MAX_RAM 30000
  9 +#define MODULE_ID "123456"
9 10
10 #endif 11 #endif
11 \ No newline at end of file 12 \ No newline at end of file
Project/applications/smartcities/include/module.h
1 #ifndef MODULE_H 1 #ifndef MODULE_H
2 #define MODULE_H 2 #define MODULE_H
3 3
  4 +#include "globals.h"
  5 +
4 typedef struct { 6 typedef struct {
5 - char* ID;  
6 - char* geoloc; 7 + char ID[MODULE_ID_LENGTH +1];
  8 + char geoloc[20];
7 } module; 9 } module;
8 10
9 extern module mod; 11 extern module mod;
Project/applications/smartcities/json.c
@@ -19,7 +19,8 @@ uint8_t register_sensor(sensor sens) @@ -19,7 +19,8 @@ uint8_t register_sensor(sensor sens)
19 printf("%s\r\n",statement); 19 printf("%s\r\n",statement);
20 char sensor_ID[3]; 20 char sensor_ID[3];
21 sprintf(sensor_ID,"%d",sens.ID); 21 sprintf(sensor_ID,"%d",sens.ID);
22 - result = send_json(statement,strlen(statement),mod.ID,sensor_ID); 22 + printf("REMOVE COMMENTARY IN send_json ON json.c LINE 23!!!!!!!\r\n");
  23 + //result = send_json(statement,strlen(statement),mod.ID,sensor_ID);
23 chHeapFree(statement); 24 chHeapFree(statement);
24 return result; 25 return result;
25 } 26 }
@@ -52,7 +53,7 @@ char* prepare_json_register_statement(module mod, sensor sens) @@ -52,7 +53,7 @@ char* prepare_json_register_statement(module mod, sensor sens)
52 char ID[MODULE_ID_LENGTH+3]; 53 char ID[MODULE_ID_LENGTH+3];
53 length = 23; 54 length = 23;
54 strcpy(ID,mod.ID); 55 strcpy(ID,mod.ID);
55 - sprintf(ID+MODULE_ID_LENGTH,"%X",sens.ID); 56 + sprintf(ID+MODULE_ID_LENGTH,"%02X",sens.ID);
56 str_aux = join_strings("{\"sensors\":[{\"sensor\":\"",ID,length,MODULE_ID_LENGTH+2,JOIN_NO_FREE); 57 str_aux = join_strings("{\"sensors\":[{\"sensor\":\"",ID,length,MODULE_ID_LENGTH+2,JOIN_NO_FREE);
57 length += MODULE_ID_LENGTH+2; 58 length += MODULE_ID_LENGTH+2;
58 str_aux2 = join_strings(str_aux,"\",\"description\":\"",length,17,JOIN_NO_FREE); 59 str_aux2 = join_strings(str_aux,"\",\"description\":\"",length,17,JOIN_NO_FREE);
Project/applications/smartcities/main2.c
@@ -34,6 +34,8 @@ uint8_t retries=0; @@ -34,6 +34,8 @@ uint8_t retries=0;
34 uint8_t sensors_length=0; 34 uint8_t sensors_length=0;
35 uint8_t registry_opened=0; 35 uint8_t registry_opened=0;
36 36
  37 +module mod;
  38 +
37 void update_time(unsigned long *time) 39 void update_time(unsigned long *time)
38 { 40 {
39 printf("Requesting new NTP time...\r\n"); 41 printf("Requesting new NTP time...\r\n");
@@ -70,6 +72,7 @@ void init_registry(void) @@ -70,6 +72,7 @@ void init_registry(void)
70 printf("Geo Localization = %s\r\n", config.localization); 72 printf("Geo Localization = %s\r\n", config.localization);
71 73
72 strcpy(mod.geoloc,config.localization); 74 strcpy(mod.geoloc,config.localization);
  75 + strcpy(mod.ID,MODULE_ID);
73 printf("%s\r\n", mod.geoloc); 76 printf("%s\r\n", mod.geoloc);
74 if(config.security == PROFILE_SECURITY_OPEN) 77 if(config.security == PROFILE_SECURITY_OPEN)
75 { 78 {
@@ -178,6 +181,19 @@ void wifi_connect(void) @@ -178,6 +181,19 @@ void wifi_connect(void)
178 } 181 }
179 } 182 }
180 183
  184 +void send_battery_level(unsigned long timestamp)
  185 +{
  186 + char *batt_level = battery_value(get_battery_data());
  187 + char *batt_data = timestamp_data(batt_level,getDate(timestamp));
  188 + chHeapFree(batt_level);
  189 + char *statement = prepare_json_observation_statement(&batt_data,1);
  190 + chHeapFree(batt_data);
  191 + char id[3];
  192 + sprintf(id,"%d",battery.ID);
  193 + send_json(statement,strlen(statement),id,mod.ID);
  194 + chHeapFree(statement);
  195 +}
  196 +
181 void wifi_disconnect(void){ 197 void wifi_disconnect(void){
182 uint8_t res=libwismart_WiFiDisconnect(); 198 uint8_t res=libwismart_WiFiDisconnect();
183 if(res) 199 if(res)
@@ -204,6 +220,7 @@ int main(void) @@ -204,6 +220,7 @@ int main(void)
204 char* valueSensors[TOTAL_SENSORS]; 220 char* valueSensors[TOTAL_SENSORS];
205 memset (valueSensors, 0, TOTAL_SENSORS); 221 memset (valueSensors, 0, TOTAL_SENSORS);
206 222
  223 +
207 printf("Connecting to wifi...\r\n"); 224 printf("Connecting to wifi...\r\n");
208 wifi_connect(); 225 wifi_connect();
209 226
@@ -262,6 +279,8 @@ int main(void) @@ -262,6 +279,8 @@ int main(void)
262 /* Send data to server, empty the buffer */ 279 /* Send data to server, empty the buffer */
263 send_data(buffers, ind, sizes, sensors); 280 send_data(buffers, ind, sizes, sensors);
264 printf("Data sent!\r\n"); 281 printf("Data sent!\r\n");
  282 + //Now sending battery level
  283 + send_battery_level(timestamp);
265 //time = getNTPTime(); 284 //time = getNTPTime();
266 update_time(&time); 285 update_time(&time);
267 delay = getSystemTime(); 286 delay = getSystemTime();
@@ -277,6 +296,8 @@ int main(void) @@ -277,6 +296,8 @@ int main(void)
277 printf("--------------soft limit-------------\r\n"); 296 printf("--------------soft limit-------------\r\n");
278 wifi_connect(); 297 wifi_connect();
279 send_data(buffers, ind, sizes, sensors); 298 send_data(buffers, ind, sizes, sensors);
  299 + //Now sending battery level
  300 + send_battery_level(timestamp);
280 //disconect_wifi() 301 //disconect_wifi()
281 wifi_disconnect(); 302 wifi_disconnect();
282 } 303 }
@@ -314,6 +335,8 @@ int main(void) @@ -314,6 +335,8 @@ int main(void)
314 } 335 }
315 336
316 } 337 }
  338 + //Now sending battery level
  339 + send_battery_level(timestamp);
317 wifi_disconnect(); 340 wifi_disconnect();
318 } 341 }
319 time += getElapsedTime(delay); 342 time += getElapsedTime(delay);
Project/applications/smartcities/module.c deleted
1 -#include "module.h"  
2 -  
3 -module mod = {"123456", "41.39479 2.148768"}; /* append 0/1 flag for read write */  
4 \ No newline at end of file 0 \ No newline at end of file
Project/applications/smartcities/sensors.c
1 #include "sensors.h" 1 #include "sensors.h"
2 2
3 -sensor light_sensor = {LIGHT_ADDR, "Light sensor", "illumination", "lux",NULL};  
4 -sensor ultrasound_sensor = {DISTANCE_ADDR, "Ultrasound sensor", "distance", "cm",NULL};  
5 -sensor pressure_sensor = {PRESSURE_ADDR, "Pressure sensor", "pressure", "hPa",NULL};  
6 -sensor humidity_temp_sensor = {HUMIDITY_TEMP_ADDR, "Humidity and Temperature","ºC,RH",NULL};  
7 -sensor sound_sensor = {SOUND_ADDR, "Sound sensor","mV",NULL};  
8 -sensor battery = {BATTERY_ADDR, "Battery Level","mV",NULL}; 3 +sensor light_sensor = {LIGHT_ADDR, "Light sensor", "illumination", "lux", NULL};
  4 +sensor ultrasound_sensor = {DISTANCE_ADDR, "Ultrasound sensor", "distance", "cm", NULL};
  5 +sensor pressure_sensor = {PRESSURE_ADDR, "Pressure sensor", "pressure", "hPa", NULL};
  6 +sensor humidity_temp_sensor = {HUMIDITY_TEMP_ADDR, "Temperature and humidity sensor", "temperature,humidity", "ºC,RH",NULL};
  7 +sensor sound_sensor = {SOUND_ADDR, "Sound sensor", "sound", "mV", NULL};
  8 +sensor battery = {BATTERY_ADDR, "Battery Level", "power", "mV", NULL};
9 9
10 sensor* sensors[TOTAL_SENSORS+1] = {&light_sensor,&ultrasound_sensor,&pressure_sensor,&humidity_temp_sensor,&sound_sensor,&battery}; 10 sensor* sensors[TOTAL_SENSORS+1] = {&light_sensor,&ultrasound_sensor,&pressure_sensor,&humidity_temp_sensor,&sound_sensor,&battery};
11 11