#include "Particle.h"
#include "Adafruit_BME280.h"
#include "Adafruit_SSD1306.h"
#include "Adafruit_GFX.h"
#include <neopixel.h>
#include "colors.h"
#include "Joebitmap.h"
#include "IotClassroom_CNM.h"
#include "Button.h"
void PixelFill(int startPixel, int endPixel, int color);
SYSTEM_MODE(MANUAL);
bool status;
float tempC;
float tempF;
int currentTime;
int lastSecond;
int color;
const int PIXELCOUNT = 16;
const int OLED_RESET=-1;
int inputValue;
const int WEMOone=0;
const int BULBone=1;
Button encoButton(D3);
bool onoff;
int currentPosition;
int lastPosition;
int Brightness = 255;
const int pin = D3;
Adafruit_SSD1306 display(OLED_RESET);
Adafruit_BME280 bme;
Adafruit_NeoPixel pixel(PIXELCOUNT,SPI1,WS2812B);
void setup() {
Serial.begin(9600);
waitFor(Serial.isConnected,10000);
status = bme.begin(0x76);
if (status == false) {
Serial.printf("BME280 at address 0x%02X failed to start",0x76);
}
display.clearDisplay();
display.drawBitmap(0, 0, wheel, 128, 64, 1);
display.display();
delay(1000);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.setTextSize(4);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.display();
delay(500);
pixel.begin();
pixel.setBrightness(100);
pixel.show();
WiFi.on();
WiFi.clearCredentials();
WiFi.setCredentials("IoTNetwork");
WiFi.connect();
{
pinMode(pin,INPUT);
pinMode(BULBone,OUTPUT);
}
}
void loop() {
tempC = bme.readTemperature();
tempF = (tempC*9/5)+32;
currentTime = millis();
if((currentTime-lastSecond)>500) {
lastSecond = millis();
display.clearDisplay();
display.setCursor(0,0);
display.printf("TEMP: %f\n",tempF);
}
display.display();
if (tempF > 66) {
PixelFill(0,16,red);
}
pixel.show();
if (tempF < 66) {
PixelFill(0,16,green);
}
pixel.show();
if (encoButton.isClicked()) {
onoff = !onoff;
color++;
}
if (onoff == true) {
wemoWrite(WEMOone,HIGH);
setHue(BULBone,true,HueRed,Brightness,255);
}
else {
wemoWrite(WEMOone,LOW);
setHue(BULBone,true,HueGreen,Brightness,255);
}
}
void PixelFill(int startPixel, int endPixel, int color) {
int litPixel;;
for(litPixel=startPixel;litPixel<=endPixel;litPixel++) {
pixel.setPixelColor(litPixel,color);
}
pixel.show();
//delay(100);
}
Comments
Please log in or sign up to comment.