//#include <ESP8266WiFi.h>
//#include <ArduinoOTA.h>
//DISPLAY
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// SYStem
const int RELAY_PIN = 2; // the Arduino pin, which connects to the IN pin of relay
const int ledPin = 13; // the number of the LED pin
const int buttonPin = 8; // the number of the pushbutton pin
const int buttonPin7 = 7; // the number of the pushbutton pin
const int buttonPin6 = 6; // the number of the pushbutton pin
const int buttonPin5 = 5; // the number of the pushbutton pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
int buttonState7 = 0; // variable for reading the pushbutton status
int buttonState6 = 0; // variable for reading the pushbutton status
int buttonState5 = 0; // variable for reading the pushbutton status
// Navigation
int navi_home = 0;
void setup() {
Serial.begin(9600);
Serial.println("Booting...");
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}
display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println(F("Booting...")); display.display();
pinMode(ledPin, OUTPUT); // initialize the LED pin as an output:
pinMode(RELAY_PIN, OUTPUT); // initialize the Relay pin as an output:
digitalWrite(RELAY_PIN, HIGH);
pinMode(buttonPin, INPUT); // initialize the pushbutton pin as an input:
pinMode(buttonPin7, INPUT); // initialize the pushbutton pin as an input:
pinMode(buttonPin6, INPUT); // initialize the pushbutton pin as an input:
pinMode(buttonPin5, INPUT); // initialize the pushbutton pin as an input:
display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 16); display.println(F("Welcome..."));
display.setCursor(0, 30); display.setTextSize(2); display.println(F("Infinity"));
display.display();
//delay(1000);
display.clearDisplay();
}
void loop() {
//drawRoundRect(X, Y, W, H, R, Color);display.fillRect(0, 0, 128,16, 1);
display.setCursor(0, 0); display.setTextSize(2); display.println(F("HOME"));
display.drawLine(0,15,128,15,1);
display.display();
if (navi_home==0){
display.fillRoundRect(0, 18, 120, 13, 4, WHITE);//Item 1
display.setCursor(20, 21); display.setTextSize(1); display.setTextColor(BLACK); display.println(F("SEALER"));
display.drawRoundRect(0, 32, 120, 13, 4, SSD1306_WHITE);//Item 2
display.setCursor(20, 35); display.setTextSize(1); display.setTextColor(WHITE); display.println(F("CARD CUT"));
display.drawRoundRect(0, 46, 120, 13, 4, SSD1306_WHITE);//Item 3
display.setCursor(20, 49); display.setTextSize(1); display.setTextColor(WHITE); display.println(F("LAMI. AUTO OFF"));
display.display();
}
//SEALER();
//CARDCUT();
delay(500);
}
//FUNCTIONS-----------------------------------------------
void CARDCUT() {
display.clearDisplay(); display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 16); display.setTextSize(2); display.println(F("Cutter"));
display.setCursor(0, 40); display.setTextSize(1); display.println(F("Press Blue Button to Start"));
display.display();
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH); digitalWrite(RELAY_PIN, LOW);
display.clearDisplay(); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.println(F("Ready!")); display.display();
display.drawRoundRect(0, 17, 127, 47, 0, SSD1306_WHITE); //Progress Bar
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("8"); display.display();
display.fillRoundRect(2, 19, 1, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("7"); display.display();
display.fillRoundRect(2, 19, 16, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("6"); display.display();
display.fillRoundRect(2, 19, 32, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("5"); display.display();
display.fillRoundRect(2, 19, 48, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("4"); display.display();
display.fillRoundRect(2, 19, 64, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("3"); display.display();
display.fillRoundRect(2, 19, 80, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("2"); display.display();
display.fillRoundRect(2, 19, 96, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("1"); display.display();
display.fillRoundRect(2, 19, 112, 43, 0, SSD1306_WHITE);
display.display();
delay(1000);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Cutting"); display.setCursor(115, 0); display.print("0"); display.display();
display.fillRoundRect(2, 19, 126, 43, 0, SSD1306_WHITE);
display.display();
delay(500);
display.fillRoundRect(0, 0, 127,16, 0, SSD1306_BLACK); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.print("Complete"); display.setCursor(115, 0); display.print(">>"); display.display();
display.fillRoundRect(2, 19, 16, 43, 0, SSD1306_WHITE);
display.display();
delay(500);
//delay(8500);
digitalWrite(RELAY_PIN, HIGH);
display.clearDisplay(); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.setTextSize(2); display.println(F("Ready!")); display.display();
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
void SEALER() {
//read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
//Sealer Activation
digitalWrite(RELAY_PIN, LOW);
delay(1750);
digitalWrite(RELAY_PIN, HIGH);
//Lid Open Indication
delay(3000);
digitalWrite(RELAY_PIN, LOW);
delay(100);
digitalWrite(RELAY_PIN, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}