Created
March 19, 2022 21:32
-
-
Save theskanthunt42/cabbe87f2df5d34102b4b116aacbbb34 to your computer and use it in GitHub Desktop.
A rather useless script to show some infomations on your i2c-connected 1602 LCD using https://github.com/sterlingbeason/LCD-1602-I2C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from LCD import LCD | |
import time | |
import os | |
lcd_object = LCD() | |
#lcd_object.message("Test", 1) | |
wait_time = 5 | |
def clock_n_temp(): | |
temp_reading = os.popen("vcgencmd measure_temp").read().split("=")[1].split("\\")[0] | |
arm_clock_freq_hz = int(os.popen("vcgencmd measure_clock arm").read().split("=")[1].split("\\")[0]) | |
arm_clock_freq = round(arm_clock_freq_hz/1000000000, 2) | |
lcd_object.message(f"SoC TEMP: {temp_reading}", 1) | |
lcd_object.message(f"ARM CLK: {arm_clock_freq} GHz", 2) | |
def vc_freq_n_volts(): | |
soc_volts = os.popen("vcgencmd measure_volts core").read().split("=")[1].split("\\")[0] | |
vc_clock_freq_hz = int(os.popen("vcgencmd measure_clock arm").read().split("=")[1].split("\\")[0]) | |
vc_clock_freq = int(vc_clock_freq_hz/1000000) | |
lcd_object.message(f"VC4 CLK: {vc_clock_freq}MHz", 1) | |
lcd_object.message(f"SoC VOLT: {soc_volts}", 2) | |
def current_time_readout(): | |
up_time_raw = os.popen("uptime").read().split(" ") | |
#current_time = up_time_raw.split(" ")[1] | |
current_time = up_time_raw[1].split(":")[0] + ":" + up_time_raw[1].split(":")[1] | |
lcd_object.message(" CURRENT TIME ", 1) | |
lcd_object.message(f"{current_time} UTC+8", 2) | |
def date_n_zone(): | |
current_date = os.popen("date").read().split(" ") | |
#print(current_date[6]) | |
lcd_object.message(f"DATE: {current_date[0]}", 1) | |
lcd_object.message(f"{current_date[1]} {current_date[2]} {current_date[3]} {current_date[6][:3]}", 2) | |
def uptime_show(): | |
uptime_raw = os.popen("uptime").read().split(" ") | |
uptime = uptime_raw[3].split(",")[0] | |
#user = up_time_raw[6] | |
lcd_object.message(f"UPTIME: {uptime}", 1) | |
lcd_object.message(f"USER: {uptime_raw[5]}", 2) | |
def load_average_status(): | |
load_average = os.popen("uptime").read().split(" ") | |
#print(load_average) | |
load_average_finale = load_average[10].split(",")[0] + " " + load_average[11].split(",")[0] + " " + load_average[12][:4] | |
#load_average_finale = load_average_finale - load_average_finale[] | |
lcd_object.message("LOAD AVERGE:", 1) | |
lcd_object.message(load_average_finale[:13], 2) | |
def ip_addresses(): | |
rawinput = os.popen("hostname -I").read() | |
ipv4_address = rawinput.split(" ")[0] | |
#ipv6_address = rawinput.split(" ")[-1] #Always get that last one, for my case | |
#if len(ipv6_address) >= 16: | |
# ipv6_address_a = ipv6_address[:5] | |
# ipv6_address_b = ipv6_address[4:] | |
#else: | |
# pass | |
lcd_object.message("IPv4 addr: ", 1) | |
lcd_object.message(f"{ipv4_address}", 2) | |
#time.sleep(5) | |
#lcd_object.clear() | |
#lcd_object.message(f"IPv6 addr: {ipv6_address_a}", 1) | |
#lcd_object.message(f"{ipv6_address_b}", 2) | |
def vlc_info(): | |
print("Dummy here.") | |
while True: | |
lcd_object.clear() | |
clock_n_temp() | |
time.sleep(wait_time) | |
lcd_object.clear() | |
vc_freq_n_volts() | |
time.sleep(wait_time) | |
lcd_object.clear() | |
current_time_readout() | |
time.sleep(wait_time) | |
lcd_object.clear() | |
date_n_zone() | |
time.sleep(wait_time) | |
lcd_object.clear() | |
uptime_show() | |
time.sleep(wait_time) | |
lcd_object.clear() | |
load_average_status() | |
time.sleep(wait_time) | |
ip_addresses() | |
time.sleep(wait_time) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment