Управление вентилятор на Raspberry
Модератор: immortal
- harrysmith
- Сообщения: 80
- Зарегистрирован: Чт сен 29, 2016 5:49 pm
- Благодарил (а): 5 раз
- Поблагодарили: 2 раза
Управление вентилятор на Raspberry
Добрый день всем
Хочется прикрутить вентилятор к своему Majordomo который установлен на Papberry Pi3
Вот здесь https://docviewer.yandex.ru/view/113000 ... NDMyOX0%3D нашел, судя по задумке не плохой примерчик с управлением и скоростью и включением выключением.
Только вот беда там надо запустить три файла (питоновский скрипт, инсталлятор и докер файл). К сожалению с линуксом опыта общения очень мало, чтобы не сказать никакого. Мо жет уважаемые гуру линукса посмотрят и подскажут куда класть эти файлы и в какой последовательности с какими строками что запускать
Хочется прикрутить вентилятор к своему Majordomo который установлен на Papberry Pi3
Вот здесь https://docviewer.yandex.ru/view/113000 ... NDMyOX0%3D нашел, судя по задумке не плохой примерчик с управлением и скоростью и включением выключением.
Только вот беда там надо запустить три файла (питоновский скрипт, инсталлятор и докер файл). К сожалению с линуксом опыта общения очень мало, чтобы не сказать никакого. Мо жет уважаемые гуру линукса посмотрят и подскажут куда класть эти файлы и в какой последовательности с какими строками что запускать
Harry Smith
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Управление вентилятор на Raspberry
А просто диммер взять, типа ноолайт?
win10 connect https://connect.smartliving.ru/profile/303
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Управление вентилятор на Raspberry
Ой, ссылки не посмотрел. Вам встроенный нужно...
Хотя видали мы и сервера, которые простыми бытовыми вентиляторами охлаждали
Хотя видали мы и сервера, которые простыми бытовыми вентиляторами охлаждали
win10 connect https://connect.smartliving.ru/profile/303
- harrysmith
- Сообщения: 80
- Зарегистрирован: Чт сен 29, 2016 5:49 pm
- Благодарил (а): 5 раз
- Поблагодарили: 2 раза
Re: Управление вентилятор на Raspberry
да нужен встроенный чтобы сам включался и выключался при нужных температурах
Harry Smith
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 400 раз
- Контактная информация:
Re: Управление вентилятор на Raspberry
ну включать/выключать из МД вот так:
устанавливаем wiringpi
ну и если регулировка оборотов задается шим, то вот такой код
ну и думаю как получить температуру процессора в МД разберетесь и как написать обработчик
upd: температуру процессора берем:
cat /sys/class/thermal/thermal_zone0/temp
и делим на 1000
устанавливаем wiringpi
Код: Выделить всё
// включаем ногу 29
exec ("gpio -1 write 29 1");
// выключаем ногу 29
exec ("gpio -1 write 29 0");
Код: Выделить всё
//задаем назначение контакта (один раз при старте системы)
exec ("gpio -1 mode 29 pwm");
// регулировка от 0 до 1023
exec ("gpio -1 pwm 29 500");
upd: температуру процессора берем:
cat /sys/class/thermal/thermal_zone0/temp
и делим на 1000
- За это сообщение автора immortal поблагодарил:
- ypiter2006 (Пн дек 11, 2017 7:02 pm)
- Рейтинг: 1.16%
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 38
- Зарегистрирован: Сб ноя 25, 2017 10:26 pm
- Благодарил (а): 77 раз
- Поблагодарили: 1 раз
Re: Управление вентилятор на Raspberry
Поможете нубу написать обработчик, а то я в этом совсем дуб дубомimmortal писал(а):ну включать/выключать из МД вот так:
устанавливаем wiringpiну и если регулировка оборотов задается шим, то вот такой кодКод: Выделить всё
// включаем ногу 29 exec ("gpio -1 write 29 1"); // выключаем ногу 29 exec ("gpio -1 write 29 0");
ну и думаю как получить температуру процессора в МД разберетесь и как написать обработчикКод: Выделить всё
//задаем назначение контакта (один раз при старте системы) exec ("gpio -1 mode 29 pwm"); // регулировка от 0 до 1023 exec ("gpio -1 pwm 29 500");
upd: температуру процессора берем:
cat /sys/class/thermal/thermal_zone0/temp
и делим на 1000
-
- Сообщения: 1138
- Зарегистрирован: Вт янв 29, 2013 9:16 am
- Откуда: Белозерск
- Благодарил (а): 16 раз
- Поблагодарили: 400 раз
- Контактная информация:
Re: Управление вентилятор на Raspberry
В планах.ypiter2006 писал(а): Поможете нубу написать обработчик, а то я в этом совсем дуб дубом
- Рейтинг: 1.16%
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
-
- Сообщения: 273
- Зарегистрирован: Вс авг 20, 2017 1:46 am
- Благодарил (а): 142 раза
- Поблагодарили: 13 раз
Re: Управление вентилятор на Raspberry
у меня такой скрипт работает
СпойлерПоказать
Код: Выделить всё
#!/usr/bin/python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO # Импортируем библиотеку по работе с GPIO
import sys, traceback # Импортируем библиотеки для обработки исключений
from time import sleep # Импортируем библиотеку для работы со временем
from re import findall # Импортируем библиотеку по работе с регулярными выражениями
from subprocess import check_output # Импортируем библиотеку по работе с внешними процессами
def get_temp():
temp = check_output(["vcgencmd","measure_temp"]).decode() # Выполняем запрос температуры
temp = float(findall('\d+\.\d+', temp)[0]) # Извлекаем при помощи регулярного выражения значение температуры из строки "temp=47.8'C"
return(temp) # Возвращаем результат
try:
tempOn = 60 # Температура включения кулера
controlPin = 17 # Пин отвечающий за управление
pinState = False # Актуальное состояние кулера
# === Инициализация пинов ===
GPIO.setmode(GPIO.BCM) # Режим нумерации в BCM
GPIO.setup(controlPin, GPIO.OUT, initial=0) # Управляющий пин в режим OUTPUT
while True: # Бесконечный цикл запроса температуры
temp = get_temp() # Получаем значение температуры
if temp > tempOn and not pinState or temp < tempOn - 10 and pinState:
pinState = not pinState # Меняем статус состояния
GPIO.output(controlPin, pinState) # Задаем новый статус пину управления
#print(str(temp) + " " + str(pinState)) # Выводим температуру в консоль
sleep(1) # Пауза - 1 секунда
except KeyboardInterrupt:
# ...
print("Exit pressed Ctrl+C") # Выход из программы по нажатию Ctrl+C
except:
# ...
print("Other Exception") # Прочие исключения
print("--- Start Exception Data:")
traceback.print_exc(limit=2, file=sys.stdout) # Подробности исключения через traceback
print("--- End Exception Data:")
finally:
print("CleanUp") # Информируем о сбросе пинов
GPIO.cleanup() # Возвращаем пины в исходное состояние
print("End of program") # Информируем о завершении работы программы
Raspberry Pi3, с образа от Сергея 3.34
Re: Управление вентилятор на Raspberry
Подскажите новичку, куда данный скрипт положить и как запускать? Спасибо
-
- Сообщения: 273
- Зарегистрирован: Вс авг 20, 2017 1:46 am
- Благодарил (а): 142 раза
- Поблагодарили: 13 раз
Re: Управление вентилятор на Raspberry
А как у вас вентилятор подключён?
Если как то так то тогда укажите ваш GPIO (controlPin = 17) на который подключён транзистор, и попробовать запустить скрипт.
- Вложения
-
- FZ1KYEZJCAUBAEB.LARGE.jpg (90.16 КБ) 5545 просмотров
Raspberry Pi3, с образа от Сергея 3.34