Управление вентилятор на Raspberry

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
harrysmith
Сообщения: 80
Зарегистрирован: Чт сен 29, 2016 5:49 pm
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Управление вентилятор на Raspberry

Сообщение harrysmith » Чт ноя 23, 2017 1:53 am

Добрый день всем
Хочется прикрутить вентилятор к своему Majordomo который установлен на Papberry Pi3
Вот здесь https://docviewer.yandex.ru/view/113000 ... NDMyOX0%3D нашел, судя по задумке не плохой примерчик с управлением и скоростью и включением выключением.
Только вот беда там надо запустить три файла (питоновский скрипт, инсталлятор и докер файл). К сожалению с линуксом опыта общения очень мало, чтобы не сказать никакого. Мо жет уважаемые гуру линукса посмотрят и подскажут куда класть эти файлы и в какой последовательности с какими строками что запускать
Harry Smith
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Управление вентилятор на Raspberry

Сообщение xor » Чт ноя 23, 2017 2:15 am

А просто диммер взять, типа ноолайт?
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Управление вентилятор на Raspberry

Сообщение xor » Чт ноя 23, 2017 2:20 am

Ой, ссылки не посмотрел. Вам встроенный нужно...
Хотя видали мы и сервера, которые простыми бытовыми вентиляторами охлаждали
Аватара пользователя
harrysmith
Сообщения: 80
Зарегистрирован: Чт сен 29, 2016 5:49 pm
Благодарил (а): 5 раз
Поблагодарили: 2 раза

Re: Управление вентилятор на Raspberry

Сообщение harrysmith » Чт ноя 23, 2017 10:49 pm

да нужен встроенный чтобы сам включался и выключался при нужных температурах
Harry Smith
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Управление вентилятор на Raspberry

Сообщение immortal » Пт ноя 24, 2017 10:23 am

ну включать/выключать из МД вот так:

устанавливаем 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
ypiter2006
Сообщения: 38
Зарегистрирован: Сб ноя 25, 2017 10:26 pm
Благодарил (а): 77 раз
Поблагодарили: 1 раз

Re: Управление вентилятор на Raspberry

Сообщение ypiter2006 » Ср дек 13, 2017 9:44 pm

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
Поможете нубу написать обработчик, а то я в этом совсем дуб дубом :)
immortal
Сообщения: 1138
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 16 раз
Поблагодарили: 400 раз
Контактная информация:

Re: Управление вентилятор на Raspberry

Сообщение immortal » Чт дек 14, 2017 12:44 am

ypiter2006 писал(а): Поможете нубу написать обработчик, а то я в этом совсем дуб дубом :)
В планах.
За это сообщение автора immortal поблагодарил:
Logrus (Чт фев 01, 2018 8:59 pm)
Рейтинг: 1.16%
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

Re: Управление вентилятор на Raspberry

Сообщение viktor6 » Пт янв 11, 2019 3:59 pm

у меня такой скрипт работает
СпойлерПоказать

Код: Выделить всё

#!/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
SerJay
Сообщения: 5
Зарегистрирован: Ср фев 27, 2019 2:44 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Управление вентилятор на Raspberry

Сообщение SerJay » Пт мар 01, 2019 5:19 am

viktor6 писал(а):
Пт янв 11, 2019 3:59 pm
у меня такой скрипт работает
Подскажите новичку, куда данный скрипт положить и как запускать? Спасибо
viktor6
Сообщения: 273
Зарегистрирован: Вс авг 20, 2017 1:46 am
Благодарил (а): 142 раза
Поблагодарили: 13 раз

Re: Управление вентилятор на Raspberry

Сообщение viktor6 » Пт мар 01, 2019 10:12 am

SerJay писал(а):
Пт мар 01, 2019 5:19 am
viktor6 писал(а):
Пт янв 11, 2019 3:59 pm
у меня такой скрипт работает
Подскажите новичку, куда данный скрипт положить и как запускать? Спасибо
А как у вас вентилятор подключён?
Если как то так то тогда укажите ваш GPIO (controlPin = 17) на который подключён транзистор, и попробовать запустить скрипт.
Вложения
FZ1KYEZJCAUBAEB.LARGE.jpg
FZ1KYEZJCAUBAEB.LARGE.jpg (90.16 КБ) 5505 просмотров
Raspberry Pi3, с образа от Сергея 3.34
Ответить