diff options
| author | nasrlol <nsrddyn@gmail.com> | 2024-11-24 12:59:50 +0100 |
|---|---|---|
| committer | nasrlol <nsrddyn@gmail.com> | 2024-11-24 12:59:50 +0100 |
| commit | deadf64d1b05985f52cd64fd72232cfdb628b832 (patch) | |
| tree | 04ca44c335185ebcba54b075269279e538f60d99 /bin/main.py | |
| parent | 3a6928a0189bfe8d481c7eeac7a3d3df5dd9cdc0 (diff) | |
moved the source files to a seperate folder
Diffstat (limited to 'bin/main.py')
| -rw-r--r-- | bin/main.py | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/bin/main.py b/bin/main.py deleted file mode 100644 index bf556ca..0000000 --- a/bin/main.py +++ /dev/null @@ -1,183 +0,0 @@ -import time -import os -import speech_recognition as speech -import sounddevice -import bin.hardware_driver as lcd -from gpiozero import CPUTemperature - -ERROR_BAD_REQUEST = "400 Bad Request" -ERROR_UNAUTHORIZED = "401 Unauthorized" -ERROR_NOT_FOUND = "404 Not Found" -SPEECH_NOT_RECOGNIZED = "404-1 Speech is not recognized" -ERROR_TIMEOUT = "408 Request Timeout" - -lcd_instance = lcd.LCD() -cpu_temp = CPUTemperature() -recognizer = speech.Recognizer() -microphone = speech.Microphone() - - -# greeting that starts upon the boot of the device: -# shows a hello line; shorter than 16 chars -# and some small information on the second line -def custom_greeting(): - with open('quotes.txt', 'r') as file: - quotes = file.readlines() - - # Strip newline characters and use the quotes - quotes = [quote.strip() for quote in quotes] - - # Print the quotes - for quote in quotes: - print(quote) - first_line = "" - second_line = "" - count = 0 - for i in quote: - if count < 16: - first_line += i - count += 1 - else: - second_line += i - lcd.text(first_line,1) - lcd.text(secon_line,2) -def pomodoro(): - time = input("How long do you want to wait? : ") - print("Okay \nStarting Now...") - while time > 0: - time.sleep(1) - print(time + "Seconds") - lcd.text(time + " Seconds remaining...", 1) - time -= 1 - - -def weather(): - pass - - -# ram usage, internet speed, -def system_readings(): - lcd_instance.clear() - while True: - load = os.getloadavg()[0] - temperature = cpu_temp.temperature - lcd_instance.clear() - lcd_instance.text(f"CPU Load: {load}", 1) - lcd_instance.text(f"Temp: {temperature:.1f}C", 2) - time.sleep(5) - - -def display_uptime(): - lcd_instance.clear() - with open("/proc/uptime") as f: - uptime_seconds = float(f.readline().split()[0]) - uptime_str = time.strftime("%H:%M:%S", time.gmtime(uptime_seconds)) - lcd_instance.clear() - lcd_instance.text(f"Uptime: {uptime_str}", 1, "center") - - -def recognize_speech(): - - lcd_instance.clear() - try: - with microphone as source: - recognizer.adjust_for_ambient_noise(source) - print("Listening...") - audio = recognizer.listen(source) - text = recognizer.recognize_google(audio) - lcd_instance.clear() - lcd_instance.text(text, 1) - - print("Speech recognized:", text) - except speech.UnknownValueError: - lcd_instance.text(ERROR_BAD_REQUEST, 1) - print(ERROR_BAD_REQUEST) - except speech.RequestError: - lcd_instance.text(ERROR_UNAUTHORIZED, 1) - print(ERROR_UNAUTHORIZED) - - return text - - -def save_notes(): - print("Type your notes (type 'stop' to exit):") - print("Type line=1 or line=2 to print something to a specific line") - while True: - line = 1 - output = input(":") - output_length = len(output) - if output.lower() in ["stop", "break", "quit", "exit"]: - break - if output == "line=1": - line = 1 - elif output == "line=2": - line = 2 - - if output_length < 16: - lcd_instance.text(output, line) - time.sleep(2) - else: - output_list = output.split("") - first_line = "" - second_line = "" - for i in output_list: - count = 0 - if count > 16: - first_line += output_list[i] - count += 1 - else: - second_line += output_list[i] - lcd.text(first_line,1) - lcd.text(secon_line,2) - -def command_center(commands): - # checking if we can reconize commands within the user speech - # requires -> - # converting the commands to human readable text - # no under scars - command = recognize_speech() - list = [] - try: - for i in commands: - if i == command: - print("I think i found what you ment...") - command() - except: - print("ERROR 404 - COMMAND NOT RECOGNIZED") - - -FEATURES = { - "READINGS": system_readings, - "UPTIME": display_uptime, - "SPEECH_TRANSCRIBER": recognize_speech, - "NOTES": save_notes, - "COMMAND CENTER": command_center, - } - - -def main(): - lcd_instance.clear() - os.system("cls" if os.name == "nt" else "clear") - print("FEATURES:", ", ".join(FEATURES.keys())) - - while True: - user_input = input("Enter command: ").upper() - action = FEATURES.get(user_input) - - if action: - action() - else: - lcd_instance.text(ERROR_NOT_FOUND, 1) - print(ERROR_NOT_FOUND) - - -def destroy(): - lcd_instance.clear() - os.system("cls" if os.name == "nt" else "clear") - - -if __name__ == "__main__": - try: - main() - except KeyboardInterrupt: - destroy() |
