CoolKitchen

max7219 display mqtt

Apr 17th, 2018
638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.05 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # nutzer auf der Website
  3. # https://github.com/rm-hull/max7219
  4. import paho.mqtt.client as mqtt
  5.  
  6. import max7219.led as led
  7. import sys
  8. import time
  9. import RPi.GPIO as GPIO
  10. bounce_time = 200
  11. PIN_A = 21  #pin 13 , header pin 21 , gpio9
  12. a_value = 0
  13.  
  14.  
  15. def on_connect(client, userdata, flags, rc):
  16.     print("Connected with result code " + str(rc))
  17.  
  18.     client.subscribe("/fhem/Web/ActiveUsers")
  19.  
  20. def on_message(client, userdata, msg):
  21.     visitors_now=str(msg.payload)
  22.     GPIO.setmode(GPIO.BOARD)
  23.     GPIO.setup(PIN_A, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
  24.     #GPIO.add_event_detect(PIN_A, GPIO.RISING, callback=my_callback, bouncetime=bounce_time)
  25.     from max7219.font import proportional, SINCLAIR_FONT, TINY_FONT, CP437_FONT
  26.     device = led.matrix(cascaded=2)
  27.     from random import randrange
  28.     device.brightness(1)
  29.     device.show_message("Besucher:")
  30.     device.show_message(visitors_now)
  31.  
  32. client = mqtt.Client()
  33. client.on_connect = on_connect
  34. client.on_message = on_message
  35.  
  36. client.connect("192.168.178.67", 1883, 60)
  37.  
  38. client.loop_forever()
  39.  
  40.  
  41.  
  42. def my_callback(channel):
  43.     if channel == PIN_A:
  44.                 global a_ok
  45.                 a_value = 1
  46.         device.show_message("Besucher:")
  47.         device.show_message(getVisitorsLast7days())
  48.  
  49.  
  50. def test_callback(channel):
  51.         if channel == PIN_A:
  52.                 global a_ok
  53.                 a_value = 1
  54.                 device.show_message("Besucher:")
  55.                 device.show_message(getVisitorsLast7days())
  56.  
  57. GPIO.setmode(GPIO.BOARD)
  58.  
  59.  
  60. GPIO.setup(PIN_A, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
  61. #GPIO.add_event_detect(PIN_A, GPIO.FALLING, callback=my_callback)
  62. GPIO.add_event_detect(PIN_A, GPIO.RISING, callback=my_callback, bouncetime=bounce_time)
  63.  
  64. #while GPIO.input(PIN_A) == GPIO.LOW:
  65.  #       time.sleep(0.01)
  66.  
  67.  
  68. ##### GPIO 9 ist der Taster!
  69.  
  70. from random import randrange
  71.  
  72. # aktuelle Besucher reinholen
  73. visitors_now=besucher
  74. visitors_7days=777
  75. enum_visitors_now=enumerate(sys.argv[1])
  76. enum_visitors_7days=enumerate(sys.argv[2])
  77.  
  78.  
  79.  
  80.  
  81. def getVisitors():
  82.     if (visitors_now  >  0 ):
  83.             for n, c in enum_visitors_now:
  84.                     device.letter(n, ord(c))
  85.     else:
  86.         device.letter(1, ord('0'))
  87.  
  88. def getVisitors2():
  89.         if (visitors_now  >  0 ):
  90.                 for n in range(c,visitors_now):
  91.                         device.letter(n, ord(c))
  92.         else:
  93.                 device.letter(1, ord('0'))
  94.  
  95.  
  96. def getVisitorsLast7days():
  97.     #for n, c in enum_visitors_7days:                    
  98.     #   device.letter(n, ord(c))
  99.         #time.sleep(2)
  100.     device.show_message(enum_visitors_7days)
  101.     #device.show_message("hallo welt")
  102.  
  103. from max7219.font import proportional, SINCLAIR_FONT, TINY_FONT, CP437_FONT
  104. device = led.matrix(cascaded=2)
  105. from random import randrange
  106. device.brightness(1)
  107.  
  108.  
  109. getVisitors()
  110.  
  111.  
  112. #while True:
  113. #   if ( GPIO.input (9) == True ) :
  114. #       getVisitors()
  115. #       time.sleep(2)
  116. #
  117. #   else :
  118. #       getVisitorsLast7days()
  119. #       time.sleep(2)
  120. #       break
  121.    
  122.  
  123. #device.show_message("Inverse")
  124. #device.show_message(sys.argv[2], font=TINY_FONT)
  125. #device.show_message(sys.argv[2])
Advertisement
Add Comment
Please, Sign In to add comment