print('\n\nThis program is to make Vending Machine')
print('Date : 04/12/2023')
print('By : AKMAL FAIZ\n\n')
#Import all necessary libraries
import library_ssd1306
import library_sg90
#import library_keypad4x4
from machine import Pin, SoftI2C, PWM
from utime import sleep
#import threading
#Pin Declaration
led_red = Pin(2, Pin.OUT) #LED
servo = Pin(14, Pin.OUT) #SERVO
buzzer = PWM(Pin(26), Pin.OUT)
#SSD1306 OLED display Library
i2c_oled = SoftI2C(scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
#Create the object name for sensor with library --> LIBRARYNAME.CLASSNAME
#bagi nama = Import Library Name.Class Name (trigger_pin, echo_pin,)
gate = library_sg90.Servo(pin=servo)
screen = library_ssd1306.SSD1306_I2C(width=oled_width, height=oled_height, i2c=i2c_oled) #library name.class name()
#pad = library_keypad4x4.Keypad_Timer()
#Main Program
screen.fill(1)
screen.text("Akmal's",40,10,0) #Text, Column, Colour code
screen.text("Vending",40,30,0)
screen.text("Machine",40,50,0)
screen.show()
#initial condition
counter10 = 2
counter20 = 2
counter30 = 2
counter40 = 2
while True: #to endless repeating
print("1-PLEASE PRESS '1' TO ORDER NASI LEMAK")
print("2-PLEASE PRESS '2' TO ORDER KUEY TEOW GORENG")
print("3-PLEASE PRESS '3' TO ORDER CENDOL")
print("4-PLEASE PRESS '4' TO ORDER ICED TEH TARIK")
print("THERE WILL BE A BEEPING SOUND ACCORDING TO THE NUMBER YOU PRESSED")
print("PLEASE WAIT 5 SECONDS IF YOU ORDER FOOD")
print("PLEASE WAIT 3 SECONDS IF YOU ORDER DRINK\n")
print("NASI LEMAK REMAINING: {}".format(counter10))
print("AYAM RENDANG REMAINING: {}".format(counter20))
print("CENDOL REMAINING: {}".format(counter30))
print("ICE TEH TARIK REMAINING: {}".format(counter40))
c = input("\nEnter a value: ")
if c == "'1'" :
try:
c = input()
number = int(c)
# if counter10 > 0:
buzzer.init(freq=1000, duty=200)
print("\nYOU HAVE ORDERED NASI LEMAK!\n")
print("PLEASE WAIT 5 SECONDS IF YOU ORDER FOR FOOD\n")
sleep(5)
for counter in range(5, 0, -1):
sleep(1)
gate.move(90)
sleep(1)
gate.move(0)
sleep(5)
buzzer.init(freq=1000, duty=1023)
sleep(0.5)
gate.move(90)
sleep(1)
print("\nFOOD READY!\n")
print("\nHERE IS YOUR NASI LEMAK\n")
print("THANK YOU AND COME AGAIN!\n")
counter10 -= 1
except ValueError:
print("Invalid input. Please enter a number.")
else:
print("NASI LEMAK IS UNAVAILABLE!")
print("PLEASE ORDER SOMETHING ELSE\n")
if c == '2':
try:
user_input = input()
number = int(user_input)
# if counter10 > 0:
buzzer.init(freq=1000, duty=200)
print("\nYOU HAVE ORDERED KUEY TEOW GORENG!\n")
print("PLEASE WAIT 5 SECONDS IF YOU ORDER FOR FOOD\n")
sleep(5)
for counter in range(5, 0, -1):
sleep(1)
gate.move(90)
sleep(1)
gate.move(0)
sleep(5)
buzzer.init(freq=1000, duty=1023)
sleep(0.5)
gate.move(90)
sleep(1)
print("\nFOOD READY!\n")
print("\nHERE IS YOUR KUEY TEOW GORENG\n")
print("THANK YOU AND COME AGAIN!\n")
counter20 -= 1
except ValueError:
print("Invalid input. Please enter a number.")
else:
print("KUEY TEOW GORENG IS UNAVAILABLE!")
print("PLEASE ORDER SOMETHING ELSE\n")
if c == '3':
try:
user_input = input()
number = int(user_input)
# if counter10 > 0:
buzzer.init(freq=1000, duty=200)
print("\nYOU HAVE ORDERED CENDOL!\n")
print("PLEASE WAIT 5 SECONDS IF YOU ORDER FOR FOOD\n")
sleep(5)
for counter in range(5, 0, -1):
sleep(1)
gate.move(90)
sleep(1)
gate.move(0)
sleep(5)
buzzer.init(freq=1000, duty=1023)
sleep(0.5)
gate.move(90)
sleep(1)
print("\nFOOD READY!\n")
print("\nHERE IS YOUR CENDOL\n")
print("THANK YOU AND COME AGAIN!\n")
counter30 -= 1
except ValueError:
print("Invalid input. Please enter a number.")
else:
print("CENDOL IS UNAVAILABLE!")
print("PLEASE ORDER SOMETHING ELSE\n")
if c == '4':
try:
user_input = input()
number = int(user_input)
# if counter10 > 0:
buzzer.init(freq=1000, duty=200)
print("\nYOU HAVE ORDERED ICED TEH TARIK!\n")
print("PLEASE WAIT 3 SECONDS IF YOU ORDER FOR DRINK\n")
sleep(3)
for counter in range(5, 0, -1):
sleep(1)
gate.move(90)
sleep(1)
gate.move(0)
sleep(5)
buzzer.init(freq=1000, duty=1023)
sleep(0.5)
gate.move(90)
sleep(1)
print("\nDRINK READY!\n")
print("\nHERE IS YOUR ICED TEH TARIK\n")
print("THANK YOU AND COME AGAIN!\n")
counter40 -= 1
except ValueError:
print("Invalid input. Please enter a number.")
else:
print("ICED TEH TARIK IS UNAVAILABLE!")
print("PLEASE ORDER SOMETHING ELSE\n")