Joeseph Arnoux
Published © MIT

Red Chile Temp

A thermometer that tells the temperature, while signaling hot or cold through pixels illuminating red chiles and a transparent logo design.

BeginnerShowcase (no instructions)Over 2 days71
Red Chile Temp

Things used in this project

Hardware components

Photon 2
Particle Photon 2
×1
Gravity: I2C BME280 Environmental Sensor
DFRobot Gravity: I2C BME280 Environmental Sensor
×1
OLED Expansion
Onion Corporation OLED Expansion
×1

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)
Laser cutter (generic)
Laser cutter (generic)

Story

Read more

Custom parts and enclosures

Red Chile Temp

Red Chile Temp gauge

Schematics

Drawing

Drawing notes for project.

Red Chile Fritz

Fritzing diagram.

Fritz

Schematics

Code

Red Chile Temp

C/C++
Temperature sensing chiles.
#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);

}

Credits

Joeseph Arnoux
3 projects • 7 followers
Deep Dive Artist designing for the CABQ Rail Trail. (2024)
Contact

Comments

Please log in or sign up to comment.