Deep Slumber, codename ISA, is a program made for the arm MBED during Hack The Burgh 2018 that analyses light, temperature, humidity and CO2 levels in a room. It uploads this information onto an SQL server through a rest API, providing the necessary environment for data processing. Further improvements we hope to provide are the regulation of said parameters by wifi connection to electric heaters, wifi enabled controllable lightbulbs and other iot gadgets as well as a website that will provide recommendations for sleep cycle improvements.
Dependencies: C12832 CCS811 Sht31 TSL2561
Fork of ARM_HACK_THE_BURGH by
Diff: main.cpp
- Revision:
- 57:a2340579d7ad
- Parent:
- 56:bea82468efd3
- Child:
- 58:44e839410957
--- a/main.cpp Fri Mar 09 11:30:49 2018 +0000 +++ b/main.cpp Sat Mar 10 17:46:39 2018 +0000 @@ -17,6 +17,11 @@ #include "mbed.h" #include "TCPSocket.h" #include "C12832.h" +#include "Sht31.h" +#include "CCS811.h" +#include "TSL2561.h" +#include <string> +using std::string; #define WIFI_ESP8266 1 #define WIFI_IDW0XX1 2 @@ -43,6 +48,11 @@ Serial pc(USBTX, USBRX); // tx, rx C12832 lcd(PE_14, PE_12, PD_12, PD_11, PE_9); +Sht31 sht31(PF_0, PF_1); //TEMP SENSOR: I2C_SDA, I2C_SCL +CCS811 ccs811(PF_0, PF_1); //IAQ SENSOR: I2C_SDA, I2C_SCL +TSL2561 tsl2561(PF_0, PF_1, TSL2561_ADDR_HIGH); //LIGHT SENSOR: I2C_SDA, I2C_SCL + + void lcd_print(const char* message) { @@ -139,6 +149,9 @@ // Close the socket to return its memory and bring down the network interface socket.close(); } +void display(const char* out){ + printf("%s\n", out); + } int main() { @@ -171,4 +184,65 @@ wifi.disconnect(); printf("\nDone\n"); + + ccs811.init(); + tsl2561.begin(); + tsl2561.setGain(TSL2561_GAIN_0X); + tsl2561.setTiming(TSL2561_INTEGRATIONTIME_402MS); + + while(1) { + + string json = "{\n"; + + //Light + + int x = tsl2561.getLuminosity(TSL2561_VISIBLE); + + //printf("VIS: %d\n", x); + + char buffer [8]; + int n; + n = sprintf (buffer, "%d", x); + + json += "\t \"Light\" : "; + json += buffer; + json += ".0,\n"; + + //Air + + uint16_t eco2, tvoc; + ccs811.readData(&eco2, &tvoc); + + //printf("eCO2:%dppm\n", eco2); + + n = sprintf (buffer, "%d", eco2); + + json += "\t \"eCO2\" : "; + json += buffer; + json += ".0,\n"; + + //Hum and Temp + + float t = sht31.readTemperature(); + float h = sht31.readHumidity(); + + //printf("TEMP:%3.2fC\n", t); + //printf("HUM:%3.2f%%\n", h); + + n = sprintf (buffer, "%3.2f", t); + + json += "\t \"Tempr\" : "; + json += buffer; + json += ",\n"; + + n = sprintf (buffer, "%3.2f", h); + + json += "\t \"Humid\" : "; + json += buffer; + json += ",\n"; + + json += "}\n\n"; + printf("%s", json); + wait(1); + } }