Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Käppler
ampel-firmware
Commits
a9ddfba0
Commit
a9ddfba0
authored
Dec 26, 2020
by
Eric Duminil
Browse files
CSV_WRITER can be disabled if desired
parent
81430e88
Changes
5
Hide whitespace changes
Inline
Side-by-side
ampel-firmware.h
View file @
a9ddfba0
...
...
@@ -8,23 +8,25 @@
#ifndef MEASUREMENT_TIMESTEP
# error Missing config.h file. Please copy config.example.h to config.h.
#endif
#ifdef CSV_WRITER
# include "csv_writer.h"
#endif
#ifdef MQTT
# include "mqtt.h"
#endif
#ifdef LORAWAN
# include "lorawan.h"
#endif
#ifdef HTTP
# include "web_server.h"
#endif
#include
"util.h"
#include
"wifi_util.h"
#include
"co2_sensor.h"
#ifdef HTTP
# include "web_server.h"
#endif
#include
"led_effects.h"
#include
"csv_writer.h"
#if defined(ESP8266)
//allows sensor to be seen as SENSOR_ID.local, from the local network. For example : espd03cc5.local
...
...
ampel-firmware.ino
View file @
a9ddfba0
...
...
@@ -100,8 +100,9 @@ void setup() {
#endif
}
//TODO: Add a config to deactivate CSV logging
#ifdef CSV_WRITER
csv_writer
::
initialize
();
#endif
#if defined(LORAWAN) && defined(ESP32)
lorawan
::
initialize
();
...
...
co2_sensor.cpp
View file @
a9ddfba0
...
...
@@ -178,7 +178,10 @@ namespace sensor {
logToSerial
();
//TODO: Move the 3 back to ampel-firmware.ino and remove headers from co2_sensor.h
#ifdef CSV_WRITER
csv_writer
::
logIfTimeHasCome
(
timestamp
,
co2
,
temperature
,
humidity
);
#endif
#ifdef MQTT
mqtt
::
publishIfTimeHasCome
(
timestamp
,
co2
,
temperature
,
humidity
);
...
...
config.public.h
View file @
a9ddfba0
...
...
@@ -26,6 +26,9 @@
// # define MQTT_SENDING_INTERVAL MEASUREMENT_TIMESTEP * 5 // [s]
# define MQTT_SENDING_INTERVAL 300 // [s]
// Should data be written to the sensor Flash memory? Writing too often might damage the ESP memory
# define CSV_WRITER // Comment or remove this line if you want to disable CSV logging.
// How often should measurements be appended to CSV ?
// Probably a good idea to use a multiple of MEASUREMENT_TIMESTEP, so that averages can be calculated
// Set to 0 if you want to send values after each measurement
...
...
web_server.cpp
View file @
a9ddfba0
...
...
@@ -57,11 +57,13 @@ namespace web_server {
"<div class='pure-g'><div class='pure-u-1'><div class='pure-menu'><p class='pure-menu-heading'>HfT-Stuttgart CO<sub>2</sub> Ampel</p></div></div>
\n
"
"<div class='pure-u-1'><ul class='pure-menu pure-menu-horizontal pure-menu-list'>
\n
"
"<li class='pure-menu-item'><a href='#graph' class='pure-menu-link'>Graph</a></li>
\n
"
"<li class='pure-menu-item'><a href='#table' class='pure-menu-link'>Info</a></li>
\n
"
#ifdef CSV_WRITER
"<li class='pure-menu-item'><a href='#graph' class='pure-menu-link'>Graph</a></li>
\n
"
"<li class='pure-menu-item'><a href='#log' class='pure-menu-link'>Log</a></li>
\n
"
"<li class='pure-menu-item'><a href='./%s' class='pure-menu-link'>Download CSV</a></li>
\n
"
"<li class='pure-menu-item' id='led'>⬤</li>
\n
"
// LED
#endif
"<li class='pure-menu-item' id='led'>⬤</li>
\n
"
// LED
"</ul></div></div>
\n
"
"<script>
\n
"
// Show a colored dot on the webpage, with a similar color than on LED Ring.
...
...
@@ -82,8 +84,10 @@ namespace web_server {
"<tr><td>Humidity</td><td>%.1f%%</td></tr>
\n
"
"<tr><td>Last measurement</td><td>%s</td></tr>
\n
"
"<tr><td>Measurement timestep</td><td>%5d s</td></tr>
\n
"
#ifdef CSV_WRITER
"<tr><td>Last CSV write</td><td>%s</td></tr>
\n
"
"<tr><td>CSV timestep</td><td>%5d s</td></tr>
\n
"
#endif
#ifdef MQTT
"<tr><td>Last MQTT publish</td><td>%s</td></tr>
\n
"
"<tr><td>MQTT publish timestep</td><td>%5d s</td></tr>
\n
"
...
...
@@ -103,14 +107,18 @@ namespace web_server {
"<tr><td>Uptime</td><td>%4d h %02d min %02d s</td></tr>
\n
"
"</table>
\n
"
"<div id='log' class='pure-u-1 pure-u-md-1-2'></div>
\n
"
#ifdef CSV_WRITER
"<form action='/delete_csv' method='POST' onsubmit=
\"
return confirm('Are you really sure you want to delete all data?') && (document.body.style.cursor = 'wait');
\"
>"
"<input type='submit' value='Delete CSV'/>"
"</form>
\n
"
#endif
"</div>
\n
"
"<a href='https://transfer.hft-stuttgart.de/gitlab/co2ampel/ampel-firmware' target='_blank'>Source code</a>
\n
"
"<a href='https://transfer.hft-stuttgart.de/gitlab/co2ampel/ampel-documentation' target='_blank'>Documentation</a>
\n
"
);
script_template
=
PSTR
(
"<script>
\n
"
script_template
=
PSTR
(
#ifdef CSV_WRITER
"<script>
\n
"
"document.body.style.cursor = 'default';
\n
"
"fetch('./%s',{credentials:'include'})
\n
"
// Get CSV, fill table and fill diagram
...
...
@@ -150,13 +158,15 @@ namespace web_server {
"return table;}
\n
"
"function addLogTableToPage(table){document.getElementById('log').appendChild(table);}
\n
"
"</script>
\n
"
"</body>
\n
"
"</html>"
);
#endif
"</body>
\n
"
"</html>"
);
// Web-server
http
.
on
(
"/"
,
handleWebServerRoot
);
#ifdef CSV_WRITER
http
.
on
(
"/"
+
csv_writer
::
filename
,
handleWebServerCSV
);
http
.
on
(
"/delete_csv"
,
HTTP_POST
,
handleDeleteCSV
);
#endif
http
.
onNotFound
(
handlePageNotFound
);
http
.
begin
();
...
...
@@ -198,7 +208,9 @@ namespace web_server {
// Body
snprintf_P
(
content
,
sizeof
(
content
),
body_template
,
SENSOR_ID
.
c_str
(),
sensor
::
co2
,
sensor
::
temperature
,
sensor
::
humidity
,
sensor
::
timestamp
.
c_str
(),
config
::
measurement_timestep
,
#ifdef CSV_WRITER
csv_writer
::
last_successful_write
.
c_str
(),
config
::
csv_interval
,
#endif
#ifdef MQTT
mqtt
::
last_successful_publish
.
c_str
(),
config
::
sending_interval
,
#endif
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment