Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import RPi.GPIO as GPIO # Импортируем библиотеку по работе с GPIO
  5. import sys, traceback # Импортируем библиотеки для обработки исключений
  6.  
  7. from time import sleep # Импортируем библиотеку для работы со временем
  8. from re import findall # Импортируем библиотеку по работе с регулярными выражениями
  9. from subprocess import check_output # Импортируем библиотеку по работе с внешними процессами
  10.  
  11. def get_temp():
  12. temp = check_output(["vcgencmd","measure_temp"]).decode() # Выполняем запрос температуры
  13. temp = float(findall('\d+\.\d+', temp)[0]) # Извлекаем при помощи регулярного выражения значение температуры из строки "temp=47.8'C"
  14. return(temp) # Возвращаем результат
  15.  
  16. try:
  17. tempOn = 40 # Температура включения кулера
  18. controlPin = 17 # Пин отвечающий за управление
  19. pinState = False # Актуальное состояние кулера
  20.  
  21. # === Инициализация пинов ===
  22. GPIO.setmode(GPIO.BCM) # Режим нумерации в BCM
  23. GPIO.setup(controlPin, GPIO.OUT, initial=0) # Управляющий пин в режим OUTPUT
  24.  
  25. while True: # Бесконечный цикл запроса температуры
  26. temp = get_temp() # Получаем значение температуры
  27.  
  28. if temp > tempOn and not pinState or temp < tempOn - 10 and pinState:
  29. pinState = not pinState # Меняем статус состояния
  30. GPIO.output(controlPin, pinState) # Задаем новый статус пину управления
  31.  
  32. #print(str(temp) + " " + str(pinState)) # Выводим температуру в консоль
  33. sleep(1) # Пауза - 1 секунда
  34.  
  35. except KeyboardInterrupt:
  36. # ...
  37. print("Exit pressed Ctrl+C") # Выход из программы по нажатию Ctrl+C
  38. except:
  39. # ...
  40. print("Other Exception") # Прочие исключения
  41. print("--- Start Exception Data:")
  42. traceback.print_exc(limit=2, file=sys.stdout) # Подробности исключения через traceback
  43. print("--- End Exception Data:")
  44. finally:
  45. print("CleanUp") # Информируем о сбросе пинов
  46. GPIO.cleanup() # Возвращаем пины в исходное состояние
  47. print("End of program") # Информируем о завершении работы программы
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement