Demo for the Mbed Connect Cloud board
Dependencies: C12832 CCS811 MMA7660 Sht31 TSL2561
View the tutorial for this demo here.
working/main_working.h
- Committer:
- Jenny Plunkett
- Date:
- 2017-11-09
- Revision:
- 1:6791f0504ab0
- Parent:
- 0:801b555a3dd8
File content as of revision 1:6791f0504ab0:
//----------------------------------------------------------------------------
// The confidential and proprietary information contained in this file may
// only be used by a person authorised under and to the extent permitted
// by a subsisting licensing agreement from ARM Limited or its affiliates.
//
// (C) COPYRIGHT 2016 ARM Limited or its affiliates.
// ALL RIGHTS RESERVED
//
// This entire notice must be reproduced on all copies of this file
// and copies of this file may only be made by a person if such person is
// permitted to do so under the terms of a subsisting license agreement
// from ARM Limited or its affiliates.
//----------------------------------------------------------------------------
#include "mbed.h"
#include "C12832.h"
#include "CCS811.h"
#include "Sht31.h"
#include "TSL2561.h"
#include "MMA7660.h"
// GLOBAL VARIABLES HERE
C12832 lcd(PE_14, PE_12, PD_12, PD_11, PE_9);
Sht31 temp_sensor(PF_0, PF_1);
DigitalOut led(PB_8, 1);
InterruptIn button(PF_2);
CCS811 air_sensor(PF_0, PF_1);
TSL2561 light_sensor(PF_0, PF_1, TSL2561_ADDR_HIGH);
MMA7660 accel(PF_0, PF_1);
// FUNCTION DEFINTIONS HERE
void lcd_print(const char* message) {
lcd.cls();
lcd.locate(0, 3);
lcd.printf(message);
}
void toggle_led() {
led = !led;
}
void read_temp() {
float t = temp_sensor.readTemperature();
float h = temp_sensor.readHumidity();
char val[32];
sprintf(val, "TEMP: %3.2fC, HUM: %3.2f%%", t, h);
lcd_print(val);
}
void read_air() {
air_sensor.init();
uint16_t eco2, tvoc;
air_sensor.readData(&eco2, &tvoc);
char val[32];
sprintf(val, "eCO2: %dppm, TVOC: %dppb", eco2, tvoc);
lcd_print(val);
}
void read_light() {
int vis = light_sensor.getLuminosity(TSL2561_VISIBLE);
int infr = light_sensor.getLuminosity(TSL2561_INFRARED);
char val[32];
sprintf(val, "VIS: %d, INFR: %d ", vis, infr);
lcd_print(val);
}
void read_accel() {
float x = accel.x();
float y = accel.y();
float z = accel.z();
char val[32];
sprintf(val, "x=%.2f y=%.2f z=%.2f", x, y, z);
lcd_print(val);
}
int main() {
// MAIN CODE HERE
lcd_print("Hello World!");
button.rise(&toggle_led);
light_sensor.begin();
light_sensor.setGain(TSL2561_GAIN_0X);
light_sensor.setTiming(TSL2561_INTEGRATIONTIME_402MS);
while(1) {
// WHILE LOOP CODE HERE
read_temp();
wait_ms(2000);
read_air();
wait_ms(2000);
read_light();
wait_ms(2000);
read_accel();
wait_ms(2000);
}
}
Cambridge Hackathon


