mirror of
				https://gitlab.sectorq.eu/jaydee/ansible.git
				synced 2025-10-31 10:21:09 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| # Import LCD library
 | |
| from RPLCD import i2c
 | |
| import psutil
 | |
| import datetime
 | |
| import os
 | |
| from uptime import uptime
 | |
| # Import sleep library
 | |
| from time import sleep
 | |
| 
 | |
| # constants to initialise the LCD
 | |
| lcdmode = 'i2c'
 | |
| cols = 20
 | |
| rows = 4
 | |
| charmap = 'A00'
 | |
| i2c_expander = 'PCF8574'
 | |
| 
 | |
| # Generally 27 is the address;Find yours using: i2cdetect -y 1 
 | |
| address = 0x27 
 | |
| port = 0 # 0 on an older Raspberry Pi
 | |
| 
 | |
| # Initialise the LCD
 | |
| lcd = i2c.CharLCD(i2c_expander, address, port=port, charmap=charmap,
 | |
|                   cols=cols, rows=rows)
 | |
| 
 | |
| 
 | |
| while True:
 | |
|     myCmd = ""
 | |
|     # Write a string on first line and move to next line
 | |
|     mem_data = psutil.virtual_memory()
 | |
|     net_sum = psutil.net_if_addrs()["eth0"]
 | |
|     eth0_ip = (net_sum[0][1])
 | |
|     cpu_load = round(psutil.getloadavg()[0],2)
 | |
|     uptime_s = int(uptime())
 | |
|     uptime_f = str(datetime.timedelta(seconds=uptime_s))
 | |
|     line1 = f'{"Mem: " + str(mem_data.percent): <20}'
 | |
|     line2 = f'{"IP : " + str(eth0_ip): <20}'
 | |
|     line4 = f'{"CPU: " + str(cpu_load): <20}'
 | |
|     print(cpu_load)
 | |
|     lcd.backlight_enabled =  True
 | |
|     lcd.cursor_pos = (0, 0)
 | |
|     lcd.write_string(line1)
 | |
|     lcd.crlf()
 | |
|     lcd.write_string(line2)
 | |
|     lcd.crlf()
 | |
|     lcd.write_string('Up : ' + str(uptime_f))
 | |
|     lcd.crlf()
 | |
|     lcd.write_string(line4)
 | |
|     sleep(5)
 | |
|     #lcd.clear()
 | |
|     # Switch off backlight
 | |
|     #lcd.backlight_enabled =  False
 | |
|     #sleep(3)
 | |
|     # Clear the LCD screen
 | |
|     #lcd.close(clear=True) | 
