Commit ad23cb4c6dc8673b239e416c41253478927736c6
1 parent
1a74fac0
--no commit message
Showing
8 changed files
with
39 additions
and
14 deletions
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
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
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 |