Оглавление:
- Запасы
- Шаг 1: построение схемы
- Шаг 2. Зарегистрируйте температуру процессора с помощью ThingSpeak
- Шаг 3. Получение температуры процессора от Raspberry Pi с помощью Python
- Шаг 4: Управление вентилятором в зависимости от температуры
- Шаг 5: окончательный код Python
- Шаг 6. Мониторинг данных через Thingspeak Cloud
- Шаг 7. Запустите скрипт Python при запуске
Видео: Интеллектуальное управление вентилятором Raspberry Pi с помощью Python и Thingspeak: 7 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Краткий обзор
По умолчанию вентилятор напрямую подключен к GPIO - это подразумевает его постоянную работу. Несмотря на относительно тихую работу вентилятора, его непрерывная работа не является эффективным использованием активной системы охлаждения. При этом постоянная работа вентилятора может просто раздражать. Кроме того, если Raspberry Pi выключен, вентилятор все равно будет работать при подключении питания.
В этой статье будет показано, как с помощью простых и несложных манипуляций превратить имеющуюся систему охлаждения в умную, которая будет включаться только тогда, когда это действительно нужно процессору. Вентилятор будет включаться только при интенсивной эксплуатации, что снижает энергопотребление вентилятора и уровень шума. Также продлевает срок службы вентилятора, отключая его, когда он не нужен.
Что вы узнаете
Как реализовать скрипт Python для управления вентилятором в зависимости от текущей температуры процессора Raspberry с помощью двухпозиционного управления с температурным гистерезисом. Как передать данные с вашего RaspberryPi в Things Speak Cloud.
Запасы
Компоненты, которые вам потребуются для этого проекта, следующие:
- Компьютер Raspberry Pi 4, модель B, 4 ГБ
- NPN транзистор S8050330ohms резистор
- Бронированный алюминиевый металлический корпус с двумя вентиляторами для Raspberry Pi
- Соединительные кабели
- Макетная плата
Шаг 1: построение схемы
Схема довольно простая. Питание вентилятора отключается с помощью NPN-транзистора. В этой конфигурации транзистор действует как переключатель нижнего уровня. Резистор нужен только для ограничения тока через GPIO. Максимальный выходной ток GPIO Raspberry Pi составляет 16 мА. Я использовал 330 Ом, что дает нам базовый ток около (5-0,7) / 330 = 13 мА. Я выбрал NPN-транзистор S8050, поэтому переключить нагрузку 400 мА от обоих вентиляторов не проблема.
Шаг 2. Зарегистрируйте температуру процессора с помощью ThingSpeak
ThingSpeak - это платформа для проектов, основанных на концепции Интернета вещей. Эта платформа позволяет создавать приложения на основе данных, собранных с датчиков. Основные возможности ThingSpeak включают: сбор данных в реальном времени, обработку и визуализацию данных. ThingSpeak API не только позволяет отправлять, хранить и получать доступ к данным, но также предоставляет различные статистические методы их обработки.
ThingSpeak может интегрировать популярные устройства и сервисы, такие как:
- Ардуино
- Малиновый пии
- oBridge / RealTime.io
- Электрический чертенок
- Мобильные и веб-приложения
- Социальные сети
- Анализ данных в MATLAB
Прежде чем мы начнем, вам понадобится учетная запись на ThingSpeak.
- Перейдите по следующей ссылке и зарегистрируйтесь в ThingSpeak.
- После активации учетной записи войдите в систему.
- Перейдите в "Каналы" -> "Мои каналы".
- Нажмите кнопку «Новый канал».
- Введите название, описание и поля данных, которые вы хотите загрузить
- Нажмите кнопку «Сохранить канал», чтобы сохранить все свои настройки.
Нам нужен ключ API, который мы позже добавим в код Python, чтобы загрузить температуру нашего процессора в облако Thingspeak.
Щелкните вкладку Ключи API, чтобы получить Ключ API записи.
Когда у вас есть ключ API записи, мы почти готовы загрузить наши данные.
Шаг 3. Получение температуры процессора от Raspberry Pi с помощью Python
Сценарий основан на получении температуры процессора, которое происходит каждую секунду. Его можно получить из терминала, запустив команду vcgencmd с параметром measure_temp.
vcgencmd measure_temp
Библиотека Subprocess.check_output () использовалась для выполнения команды, а затем с использованием регулярного выражения для извлечения фактического значения из возвращаемой строки.
из подпроцесса импорта check_output
из повторного импорта findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp) печать (get_temp ())
После получения значения температуры данные необходимо отправить в облако ThingSpeak. Используйте свой ключ API записи, чтобы изменить переменную myApi в приведенном ниже коде Python.
из запроса на импорт urllib
from re import findall from time import sleep from subprocess import check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s '% myAPIdef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall (' / d + \. / d + ', temp) [0]) return (temp) try: while True: temp = get_temp () conn = request.urlopen (baseURL + '& field1 =% s'% (temp)) print (str (temp)) conn.close () sleep (1) за исключением KeyboardInterrupt: print ("Выход нажал Ctrl + C")
Шаг 4: Управление вентилятором в зависимости от температуры
Скрипт Python, показанный ниже, реализует логику, которая включает вентилятор, когда температура поднимается выше tempOn, и выключается только тогда, когда температура опускается ниже порогового значения. Таким образом, вентилятор не будет быстро включаться и выключаться.
импортировать RPi. GPIO как GPIO
import sys from re import findall from time import sleep from subprocess import check_output def get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d + ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 threshold = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0), а True: temp = get_temp (), если temp> tempOn, а не pinState или temp <tempOn - threshold и pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) за исключением KeyboardInterrupt: print («Exit нажат Ctrl + C») except: print («Other Exception») print («--- Start Exception Data:») traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") наконец: print ("CleanUp") GPIO.cleanup () print ("Конец программы")
Шаг 5: окончательный код Python
Основной код Python можно найти в моей учетной записи GitHub по следующей ссылке. Не забудьте указать свой собственный ключ API записи.
- Войдите в свою доску Raspberry PI
- Выполните следующую команду на терминале
python3 cpu.py
Шаг 6. Мониторинг данных через Thingspeak Cloud
Через некоторое время откройте свой канал на ThingSpeak, и вы увидите, как температура загружается в облако Thingspeak в режиме реального времени.
Шаг 7. Запустите скрипт Python при запуске
Для этого в конце файла /etc/rc.local:
sudo nano /etc/rc.local
Вам нужно поместить команду запуска скрипта перед строкой exit 0:
sudo python /home/pi/cpu.py &
Наличие символа & в конце команды обязательно, так как это флаг для запуска процесса в фоновом режиме. После перезагрузки скрипт автоматически запустится и вентилятор включится при выполнении заданных условий.
Рекомендуемые:
Интеллектуальное садоводство и интеллектуальное сельское хозяйство на основе Интернета вещей с использованием ESP32: 7 шагов
Интеллектуальное садоводство и интеллектуальное сельское хозяйство на основе Интернета вещей с использованием ESP32: Мир меняется со временем, как и сельское хозяйство. В настоящее время люди интегрируют электронику во все области, и сельское хозяйство не является исключением. Это слияние электроники в сельском хозяйстве помогает фермерам и людям, которые занимаются садоводством. В этом
Термостатное управление вентилятором теплообмена: 7 шагов (с изображениями)
Термостатное управление вентилятором теплообмена: Привет всем! В этой инструкции я покажу вам, как автоматизировать вентилятор теплообмена с помощью дешевого модуля термостата. Предупреждение: в этом проекте используется сетевое напряжение, и с ним нужно обращаться должным образом. Вы не уверены, что делаете, не пытайтесь
NexArdu: Интеллектуальное управление освещением: 5 шагов
NexArdu: Интеллектуальное управление освещением: Обновление Если те же функции были разработаны с помощью Home Assistant. Домашний помощник предлагает огромный спектр возможностей. Вы можете найти разработку здесь .----------------- Эскиз для интеллектуального управления домашним освещением через 433,92 МГц (
Управление охлаждающим вентилятором на Raspberry Pi 3: 9 шагов
Управление охлаждающим вентилятором на Raspberry Pi 3: добавьте вентилятор к Raspberry Pi 3, с контролем, чтобы включать и выключать его по мере необходимости. Простой способ добавить вентилятор - просто подключить выводы вентилятора к 3,3 В или 5 В. штифт и заземлить. При таком подходе вентилятор будет работать все время. Я думаю, что это гораздо больше, чем я
Датчик температуры (LM35), взаимодействующий с ATmega32 и ЖК-дисплеем - Управление вентилятором автоматики: 6 шагов
Датчик температуры (LM35), взаимодействующий с ATmega32 и ЖК-дисплеем | Автоматическое управление вентилятором: датчик температуры (LM35), взаимодействующий с ATmega32 и ЖК-дисплеем