Advertisement
AverageMan

MCP23017 Temperature Monitor

Sep 21st, 2014
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.96 KB | None | 0 0
  1. #! /usr/bin/python
  2.  
  3. #Imports
  4. import smbus
  5. import sys
  6. import getopt
  7. import time
  8. import os
  9.  
  10. #Set up SMBus
  11. bus = smbus.SMBus(0)  #for revision 2 board...use 1
  12.  
  13. #Set the I2C address
  14. address1 = 0x20
  15. address2 = 0x21
  16.  
  17. # Set both banks to outputs
  18. bus.write_byte_data(address1,0x00,0x00)
  19. bus.write_byte_data(address1,0x01,0x00)
  20. bus.write_byte_data(address2,0x00,0x00)
  21. bus.write_byte_data(address2,0x01,0x00)
  22.  
  23. #Bank mapping
  24. bank1 = 1 #Port A on 0x20
  25. bank2 = 2 #Port B on 0x20
  26. bank3 = 3 #Port A on 0x21        
  27.  
  28.  
  29. #More Bank Mapping
  30. def set_led(data,bank):
  31.   if bank == 1:
  32.    bus.write_byte_data(address1,0x12,data) #Bank 1 = MCP port A
  33.   if bank == 2:
  34.    bus.write_byte_data(address1,0x13,data) #Bank 2 = MCP port B
  35.   if bank == 3:
  36.    bus.write_byte_data(address2,0x12,data) #Bank 3 = MCP port A (second chip)
  37.   return
  38.  
  39.   #Clear all Segments
  40.  
  41.   set_led(0,bank1)
  42.   set_led(0,bank2)
  43.   set_led(0,bank3)
  44.   time.sleep(1)
  45.  
  46. def main():
  47.  
  48.   #Define supporting variable
  49.  
  50.   timelastchecked = 0
  51.  
  52.   #Main Program
  53.      
  54.   while 1:
  55.     if time.time() >= timelastchecked:
  56.       timelastchecked = time.time()+3 #Check every 3 seconds
  57.       mytemp = ""
  58.       firstchar = ""
  59.       secondchar = ""
  60.       thirdchar = ""
  61.       f=os.popen("/opt/vc/bin/vcgencmd measure_temp") #Temperature command for terminal
  62.       for i in f.readlines():
  63.         mytemp += i
  64.         firstchar = mytemp[5:-6] #removes 5 characters from the front of the string, and 6 from the back
  65.         secondchar = mytemp[6:-5] #second character string
  66.         thirdchar = mytemp[8:-3] #third character string
  67.         while 1: #first segment
  68.           if firstchar == '0': #If first digit is 1
  69.             set_led(119,bank1)
  70.           if firstchar == '1': #If first digit is 1
  71.             set_led(20,bank1)
  72.           elif firstchar == '2': #if not 1, try 2
  73.             set_led(79,bank1)
  74.           elif firstchar == '3': #if not 2, try 3
  75.             set_led(182,bank1)
  76.           elif firstchar == '4': #and so on...
  77.             set_led(212,bank1)
  78.           elif firstchar == '5':
  79.             set_led(230,bank1)
  80.           elif firstchar == '6':
  81.             set_led(231,bank1)
  82.           elif firstchar == '7': #and so on...
  83.             set_led(52,bank1)
  84.           elif firstchar == '8':
  85.             set_led(247,bank1)
  86.           elif firstchar == '9':
  87.             set_led(244,bank1)
  88.  
  89.           while 1: #second segment
  90.             if secondchar == '0':
  91.               set_led(127,bank2)
  92.             elif secondchar == '1':
  93.               set_led(28,bank2)
  94.             elif secondchar == '2':
  95.               set_led(187,bank2)
  96.             elif secondchar == '3':
  97.               set_led(190,bank2)
  98.             elif secondchar == '4':
  99.               set_led(220,bank2)
  100.             elif secondchar == '5':
  101.               set_led(238,bank2)
  102.             elif secondchar == '6':
  103.               set_led(239,bank2)
  104.             elif secondchar == '7':
  105.               set_led(60,bank2)
  106.             elif secondchar == '8':
  107.               set_led(255,bank2)
  108.             elif secondchar == '9':
  109.               set_led(252,bank2)
  110.  
  111.             while 1: #third segment
  112.               if thirdchar == '0':
  113.                 set_led(119,bank3)
  114.               elif thirdchar == '1':
  115.                 set_led(20,bank3)
  116.               elif thirdchar == '2':
  117.                 set_led(179,bank3)
  118.               elif thirdchar == '3':
  119.                 set_led(182,bank3)
  120.               elif thirdchar == '4':
  121.                 set_led(212,bank3)
  122.               elif thirdchar == '5':
  123.                 set_led(230,bank3)
  124.               elif thirdchar == '6':
  125.                 set_led(231,bank3)
  126.               elif thirdchar == '7':
  127.                 set_led(52,bank3)
  128.               elif thirdchar == '8':
  129.                 set_led(247,bank3)
  130.               elif thirdchar == '9':
  131.                 set_led(244,bank3)
  132.               time.sleep(2)
  133.               main()
  134.  
  135.  
  136. if __name__ == "__main__":
  137.    main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement