Skip to content

Commit 45f3644

Browse files
committed
source added
1 parent 70c9d0c commit 45f3644

15 files changed

Lines changed: 453 additions & 0 deletions

File tree

SW02/.DS_Store

6 KB
Binary file not shown.

SW02/LOOP.ino

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
void main_program(void) {
2+
while (1) {
3+
delay(0);
4+
TaskScheduler();
5+
}
6+
}
7+

SW02/MAIN.ino

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
void main_code(void) {
2+
3+
OD01.set2X();
4+
OD01.print(bme.gas_resistance / 1000.0);
5+
OD01.println("KOhms");
6+
7+
OD01.set1X();
8+
OD01.println(" Gas");
9+
OD01.println("Breathe on the sensor");
10+
OD01.println("to increase CO2");
11+
12+
13+
OD01.print("Temp = ");
14+
OD01.print(bme.temperature);
15+
OD01.println(" *C");
16+
17+
OD01.print("Pressure = ");
18+
OD01.print(bme.pressure / 100.0);
19+
OD01.println(" hPa");
20+
21+
OD01.print("Humidity = ");
22+
OD01.print(bme.humidity);
23+
OD01.print(" %");
24+
}
25+

SW02/RGB.ino

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
void red_fade(const long interval, int LED, int limit, int increment) {
2+
currentMilli = millis();
3+
if (currentMilli - previousMilli1 >= interval) {
4+
previousMilli1 = currentMilli;
5+
if (fade_flag1 == true) {
6+
LED_state1 += increment;
7+
if (LED_state1 == limit) {
8+
fade_flag1 = false;
9+
}
10+
}
11+
if (fade_flag1 == false) {
12+
LED_state1 -= increment;
13+
if (LED_state1 == 0) {
14+
fade_flag1 = true;
15+
ledID++;
16+
}
17+
}
18+
}
19+
analogWrite(LED, LED_state1);
20+
}
21+
void blue_fade(const long interval, int LED, int limit, int increment) {
22+
currentMilli = millis();
23+
if (currentMilli - previousMilli2 >= interval) {
24+
previousMilli2 = currentMilli;
25+
if (fade_flag2 == true) {
26+
LED_state2 += increment;
27+
if (LED_state2 == limit) {
28+
fade_flag2 = false;
29+
}
30+
}
31+
if (fade_flag2 == false) {
32+
LED_state2 -= increment;
33+
if (LED_state2 == 0) {
34+
fade_flag2 = true;
35+
ledID = 0;
36+
}
37+
}
38+
}
39+
analogWrite(LED, LED_state2);
40+
}
41+
void green_fade(const long interval, int LED, int limit, int increment) {
42+
currentMilli = millis();
43+
if (currentMilli - previousMilli3 >= interval) {
44+
previousMilli3 = currentMilli;
45+
if (fade_flag3 == true) {
46+
LED_state3 += increment;
47+
if (LED_state3 == limit) {
48+
fade_flag3 = false;
49+
}
50+
}
51+
if (fade_flag3 == false) {
52+
LED_state3 -= increment;
53+
if (LED_state3 == 0) {
54+
fade_flag3 = true;
55+
ledID++;
56+
}
57+
}
58+
}
59+
analogWrite(LED, LED_state3);
60+
}

SW02/SETUP.ino

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
void setup_program(void) {
2+
// Set the I2C Pins for CW01
3+
#ifdef ESP8266
4+
Wire.pins(2, 14);
5+
Wire.setClockStretchLimit(15000);
6+
Wire.begin();
7+
#else
8+
// Start the I2C Comunication
9+
Wire.begin();
10+
#endif
11+
// disable wifi
12+
WiFi.forceSleepBegin();
13+
14+
// set and start i2c bus
15+
Wire.begin(2, 14);
16+
17+
// start sensor
18+
19+
bme.begin(BME680_DEFAULT_ADDRESS);
20+
bme.setTemperatureOversampling(BME680_OS_8X);
21+
bme.setHumidityOversampling(BME680_OS_2X);
22+
bme.setPressureOversampling(BME680_OS_4X);
23+
bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
24+
bme.setGasHeater(320, 150);
25+
26+
27+
// start oled
28+
OLED.begin();
29+
30+
// clear oled
31+
OD01.clear();
32+
33+
// set output leds
34+
pinMode(CW01_RED, OUTPUT);
35+
pinMode(CW01_GREEN, OUTPUT);
36+
pinMode(CW01_BLUE, OUTPUT);
37+
38+
// turn rgb on
39+
digitalWrite(CW01_RED, HIGH);
40+
digitalWrite(CW01_GREEN, HIGH);
41+
digitalWrite(CW01_BLUE, HIGH);
42+
43+
delay(2000);
44+
45+
// turn rgb off
46+
digitalWrite(CW01_RED, LOW);
47+
digitalWrite(CW01_GREEN, LOW);
48+
digitalWrite(CW01_BLUE, LOW);
49+
50+
delay(1000);
51+
t.tick_main = millis();
52+
t.tick_poll = millis();
53+
}
54+

SW02/SW02.ino

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#include <xCore.h>
2+
#include <xOD01.h>
3+
#include <ESP8266WiFi.h>
4+
#include "TIMER_CTRL.h"
5+
#include <Adafruit_Sensor.h>
6+
#include "Adafruit_BME680.h"
7+
8+
#define BME680_DEFAULT_ADDRESS (0x76)
9+
10+
#define SEALEVELPRESSURE_HPA (1013.25)
11+
12+
Adafruit_BME680 bme; // I2C
13+
14+
unsigned long currentMilli = 0;
15+
int ledID = 0;
16+
17+
bool fade_flag1 = true;
18+
unsigned long previousMilli1 = 0; // timing variable for LEDS
19+
int LED_state1 = 0;
20+
bool fade_flag2 = true;
21+
unsigned long previousMilli2 = 0; // timing variable for LEDS
22+
int LED_state2 = 0;
23+
bool fade_flag3 = true;
24+
unsigned long previousMilli3 = 0; // timing variable for LEDS
25+
int LED_state3 = 0;
26+
27+
28+
void setup() {
29+
// put your setup code here, to run once:
30+
setup_program();
31+
}
32+
33+
void loop() {
34+
// put your main code here, to run repeatedly:
35+
main_program();
36+
}

SW02/TASKS.ino

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
void TaskScheduler(void) {
2+
3+
if (ledID == 0) {
4+
red_fade(30, CW01_RED, 255, 5);
5+
} else if (ledID == 1) {
6+
green_fade(30, CW01_GREEN, 255, 5);
7+
} else if (ledID == 2) {
8+
blue_fade(30, CW01_BLUE, 255, 5);
9+
}
10+
11+
if((millis() - t.tick_main) > 2000) {
12+
OD01.clear();
13+
main_code();
14+
t.tick_main = millis();
15+
}
16+
if((millis() - t.tick_poll) > 30) {
17+
// poll sensor
18+
bme.performReading();
19+
t.tick_poll = millis();
20+
}
21+
}

SW02/TIMER_CTRL.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#ifndef timer_h
2+
#define timer_h
3+
4+
struct TIMER_CTRL {
5+
unsigned long tick_main;
6+
unsigned long tick_poll;
7+
}t;
8+
9+
#endif
10+

SW02_CC03_CS11/LOOP.ino

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
void main_program(void) {
2+
while (1) {
3+
delay(0);
4+
TaskScheduler();
5+
}
6+
}
7+

SW02_CC03_CS11/MAIN.ino

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
void main_code(void) {
2+
3+
OD01.set2X();
4+
OD01.print(bme.gas_resistance / 1000.0);
5+
OD01.println("KOhms");
6+
7+
OD01.set1X();
8+
OD01.println(" Gas");
9+
OD01.println("Breathe on the sensor");
10+
OD01.println("to increase CO2");
11+
12+
13+
OD01.print("Temp = ");
14+
OD01.print(bme.temperature);
15+
OD01.println(" *C");
16+
17+
OD01.print("Pressure = ");
18+
OD01.print(bme.pressure / 100.0);
19+
OD01.println(" hPa");
20+
21+
OD01.print("Humidity = ");
22+
OD01.print(bme.humidity);
23+
OD01.print(" %");
24+
}
25+

0 commit comments

Comments
 (0)