Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kozuto98/411cd6ef57123a16cf2ba42c29c2414c to your computer and use it in GitHub Desktop.
Save Kozuto98/411cd6ef57123a16cf2ba42c29c2414c to your computer and use it in GitHub Desktop.
/*
* Tercel SR5 Wagon Water Pump Conversion
* Jan 6, 2021
* Completed Jan 24, 2021
*/
// Load essential libs
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Declare data wire from temp sensor to D4 pin
#define ONE_WIRE_BUS 4
// OneWire instance setup
OneWire oneWire(ONE_WIRE_BUS);
// Pass reference to temp sensor
DallasTemperature sensors(&oneWire);
// Declare display res, type, and data format
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Displays logo
#define LOGO_HEIGHT 16
#define LOGO_WIDTH 16
// define pins for pump and fan
const int pumpRelayPin = 13;
const int fanRelayPin = 12;
void setup()
{
Serial.begin(9600);
//Starts temp sensor lib
sensors.begin();
//Generates display voltage from 3.3v internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.println(F("SSD1306 ALLOCATION FAILED"));
for(;;);
}
//Display initial display buffer and setup for text draw in void loop()
display.display();
display.clearDisplay();
display.drawPixel(10, 10, SSD1306_WHITE);
display.display();
display.clearDisplay();
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(20, 30);
pinMode(fanRelayPin, OUTPUT); //pin 12 is fan relay
pinMode(pumpRelayPin, OUTPUT); //pin 13 is pump relay
}
void loop()
{
digitalWrite(pumpRelayPin, LOW); // turn on pump
sensors.requestTemperatures();
double currentTemp = sensors.getTempCByIndex(0);
if (currentTemp > 100)
{
display.setCursor(10, 30);
display.setTextSize(3);
display.print(currentTemp);
}
else if (currentTemp < 99.99)
{
display.setCursor(20, 30);
display.setTextSize(3);
display.print(currentTemp);
}
if (currentTemp > 90.00) // turn rad fan on above given temp
{
display.setCursor(20, 0);
display.setTextSize(1);
display.print("FAN STATE: ON");
digitalWrite(fanRelayPin, LOW);
digitalWrite(pumpRelayPin, LOW);
}
else if (currentTemp < 89.99) // turn rad fan off below given temp
{
display.setCursor(20, 0);
display.setTextSize(1);
display.print("FAN STATE: OFF");
digitalWrite(fanRelayPin, HIGH);
digitalWrite(pumpRelayPin, LOW);
}
display.display();
display.clearDisplay();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment