include <Servo.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SERVO_PIN 9
#define OPEN_ANGLE 90
#define CLOSED_ANGLE 0
#define HEATING_PIN 10
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
Servo servo;
void setup() {
servo.attach(SERVO_PIN);
servo.write(CLOSED_ANGLE);
pinMode(HEATING_PIN, OUTPUT);
digitalWrite(HEATING_PIN, LOW);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Smart Shoe Cabinet");
display.display();
delay(2000);
display.clearDisplay();
}
void loop() {
// 检测是否有鞋子放入或取出
if (digitalRead(A0) == HIGH) {
// 鞋子被放入柜子
servo.write(OPEN_ANGLE);
delay(1000);
display.clearDisplay();
display.setCursor(0, 0);
display.println("Shoes Added");
display.display();
delay(2000);
display.clearDisplay();
servo.write(CLOSED_ANGLE);
// 开启加热功能
digitalWrite(HEATING_PIN, HIGH);
delay(5000); // 加热5秒
digitalWrite(HEATING_PIN, LOW);
} else if (digitalRead(A1) == HIGH) {
// 鞋子被取出柜子
servo.write(OPEN_ANGLE);
delay(1000);
display.clearDisplay();
display.setCursor(0, 0);
display.println("Shoes Removed");
display.display();
delay(2000);
display.clearDisplay();
servo.write(CLOSED_ANGLE);
}
}