-
-
Save anonymous/d9f5762555f9de662aade7e4b0af308b to your computer and use it in GitHub Desktop.
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
import LCD_I2C_driver | |
import socket | |
import fcntl | |
import struct | |
import time | |
import os | |
import psutil | |
import commands | |
import Adafruit_DHT | |
import sys | |
import subprocess | |
from time import * | |
from datetime import datetime, timedelta | |
lcd = LCD_I2C_driver.lcd() | |
def get_ip_address(ifname): | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24]) | |
def get_cpu_tempC(): | |
tempFile = open("/sys/class/thermal/thermal_zone0/temp") | |
cpu_temp = tempFile.read() | |
tempFile.close() | |
return float(cpu_temp)/1000 | |
def get_uptime(): | |
boot_time = datetime.fromtimestamp( psutil.boot_time() ) | |
elapsed = (datetime.now() - boot_time).seconds | |
return str( timedelta( 0, elapsed ) ) | |
def get_ram_info(): | |
av_ram = psutil.virtual_memory().available | |
av_mb = int(av_ram/1024/1024) | |
used_ram = psutil.virtual_memory().active | |
used_mb = int(used_ram/1024/1024) | |
buffer = psutil.virtual_memory().buffers | |
buffer_mb = int(buffer/1024/1024) | |
cache = psutil.virtual_memory().cached | |
cache_mb = int(cache/1024/1024) | |
buffer_cache = int(buffer_mb+cache_mb) | |
av_mb = str(av_mb) | |
used_mb = str(used_mb) | |
buffer_cache = str(buffer_cache) | |
RAM_overall = str(used_mb+"M/"+av_mb+"M/"+buffer_cache+"M") | |
return str(RAM_overall) | |
def get_sd_storage(): | |
used_space = psutil.disk_usage('/').used | |
used_space_mb = int(used_space/1024/1024) | |
used_space_mb = str(used_space_mb) | |
free_space = psutil.disk_usage('/').free | |
free_space_mb = int(free_space/1024/1024) | |
free_space_mb = str(free_space_mb) | |
overall_space = str(used_space_mb+"MB/"+free_space_mb+"MB") | |
return str(overall_space) | |
def get_hdd_storage(): | |
used_space = psutil.disk_usage('/mnt/HDD').used | |
used_space_mb = int(used_space/1024/1024/1024) | |
used_space_mb = str(used_space_mb) | |
free_space = psutil.disk_usage('/mnt/HDD').free | |
free_space_mb = int(free_space/1024/1024/1024) | |
free_space_mb = str(free_space_mb) | |
overall_space = str(used_space_mb+"GB/"+free_space_mb+"GB") | |
return str(overall_space) | |
def room_temp(): | |
humidity, temperature = Adafruit_DHT.read_retry(11, 4) | |
temp = str(temperature) | |
hum = str(humidity) | |
room_data = str("T:"+temp+chr(223)+"C "+"H:"+hum+"%") | |
return str(room_data) | |
def public_ip(): | |
pub_ip = open("/home/tom/ext_ip.txt").read() | |
return str(pub_ip.replace("\n","")) | |
#def net_speed(): | |
# netw_speed = subprocess.call(['/home/tom/netspeed.sh wlan0'], stdout=subprocess.PIPE) call/run n/a in python2.7 | |
# return str(netw_speed) | |
def main(): | |
while 1: | |
t_end_1 = time() + 10 | |
while time() < t_end_1: | |
lcd.lcd_display_string_pos("BlackBox", 1, 6) | |
lcd.lcd_display_string(datetime.now().strftime(' %d %b %H:%M:%S'), 2) | |
total_uptime = get_uptime() | |
lcd.lcd_display_string(' Uptime: %s' % (total_uptime), 3) | |
temp_hum = room_temp() | |
lcd.lcd_display_string(' %s' % (temp_hum), 4) | |
else: | |
lcd.lcd_clear() | |
t_end_2 = time() + 10 | |
while time() < t_end_2: | |
CPU_usage = psutil.cpu_percent(interval = 1) | |
cpu_tempC = get_cpu_tempC() | |
lcd.lcd_display_string('CPU: %s%% ' % (CPU_usage) + "%.2f" % (cpu_tempC) + chr(223) + "C", 1) | |
ram_overall = get_ram_info() | |
lcd.lcd_display_string('RAM: %s' % (ram_overall), 2) | |
sd_space = get_sd_storage() | |
lcd.lcd_display_string('SD: %s' % (sd_space), 3) | |
hdd_space = get_hdd_storage() | |
lcd.lcd_display_string('HDD: %s' % (hdd_space), 4) | |
else: | |
lcd.lcd_clear() | |
t_end_3 = time() + 10 | |
while time() < t_end_3: | |
lcd.lcd_display_string("IP:"+get_ip_address('eth0'), 1) | |
ext_ip = public_ip() | |
lcd.lcd_display_string('ExtIP:%s' % (ext_ip), 2) | |
# network_speed = net_speed() | |
# lcd.lcd_display_string('%s' % (network_speed), 3) | |
else: | |
lcd.lcd_clear() | |
if __name__=="__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment