Съдържание:

Интелигентно управление на Raspberry Pi вентилатор с помощта на Python и Thingspeak: 7 стъпки
Интелигентно управление на Raspberry Pi вентилатор с помощта на Python и Thingspeak: 7 стъпки

Видео: Интелигентно управление на Raspberry Pi вентилатор с помощта на Python и Thingspeak: 7 стъпки

Видео: Интелигентно управление на Raspberry Pi вентилатор с помощта на Python и Thingspeak: 7 стъпки
Видео: Raspberry Pi 4B в корпусе Argon ONE M.2 c SSD диском 128 ГБ, собираем сервер для Home Assistant 2024, Юли
Anonim
Интелигентно управление на Raspberry Pi вентилатор с помощта на Python & Thingspeak
Интелигентно управление на Raspberry Pi вентилатор с помощта на Python & Thingspeak

Кратък преглед

По подразбиране вентилаторът е директно свързан към GPIO - това предполага неговата постоянна работа. Въпреки относително тихата работа на вентилатора, неговата непрекъсната работа не е ефективно използване на активна охладителна система. В същото време постоянната работа на вентилатора може просто да бъде досадна. Също така, ако Raspberry Pi е изключен, вентилаторът ще продължи да работи, ако захранването е свързано.

Тази статия ще покаже как, използвайки прости и не сложни манипулации, превръщате съществуваща охладителна система в интелигентна, която ще бъде включена само когато процесорът наистина се нуждае от нея. Вентилаторът ще се включи само при интензивна употреба, като по този начин ще намали консумацията на енергия и шума. Също така удължава живота на вентилатора, като го изключва, когато не е необходимо.

Какво ще научите

Как да внедрите скрипт на Python за управление на вентилатор въз основа на текущата температура на Raspberry CPU с помощта на On-Off контрол с температурна хистерезис. Как да транспортирате данни от вашия RaspberryPi към Things Speak Cloud.

Консумативи

Компонентите, които ще са ви необходими за този проект, са както следва

  • Raspberry Pi 4 Компютърен модел B 4GB
  • NPN транзистор S8050330ohms резистор
  • Armor алуминиев метален калъф с двойни вентилатори за Raspberry Pi
  • Кабелни кабели
  • Платка

Стъпка 1: Изграждане на веригата

Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата

Схемата е доста проста. Захранването на вентилатора се прекъсва с помощта на NPN транзистор. В тази конфигурация транзисторът действа като превключвател от долната страна. Резисторът е необходим само за ограничаване на тока чрез GPIO. GPIO на Raspberry Pi има максимален токов изход от 16mA. Използвах 330 ома, което ни дава базов ток от около (5-0.7)/330 = 13mA. Избрах NPN транзистор S8050, така че превключването на 400mA натоварване от двата вентилатора не е проблем.

Стъпка 2: Влезте в температурата на процесора с ThingSpeak

Регистрирайте температурата на процесора с ThingSpeak
Регистрирайте температурата на процесора с ThingSpeak

ThingSpeak е платформа за проекти, базирани на концепцията за Интернет на нещата. Тази платформа ви позволява да изграждате приложения въз основа на данни, събрани от сензори. Основните характеристики на ThingSpeak включват: събиране на данни в реално време, обработка на данни и визуализация. API на ThingSpeak не само ви позволява да изпращате, съхранявате и осъществявате достъп до данни, но също така предоставя различни статистически методи за тяхната обработка.

ThingSpeak може да интегрира популярни устройства и услуги като:

  • Arduino
  • Малина пий
  • oBridge / RealTime.io
  • Електрически имп
  • Мобилни и уеб приложения
  • Социални мрежи
  • Анализ на данни в MATLAB

Преди да започнем, имате нужда от акаунт в ThingSpeak.

  1. Отидете на следната връзка и се регистрирайте в ThingSpeak.
  2. След активиране на вашия акаунт влезте.
  3. Отидете на Канали -> Моите канали
  4. Щракнете върху бутона Нов канал.
  5. Въведете името, описанието и полетата на данните, които искате да качите
  6. Щракнете върху бутона Запазване на канал, за да запазите всичките си настройки.

Нуждаем се от API ключ, който по -късно ще добавим към кода на python, за да качим температурата на процесора си в облака Thingspeak.

Щракнете върху раздела API Keys, за да получите API API Key

След като имате API API ключ, ние сме почти готови да качим нашите данни.

Стъпка 3: Получаване на температурата на процесора от Raspberry Pi с помощта на Python

Скриптът се основава на извличане на температурата на процесора, което се случва всяка секунда. Тя може да бъде получена от терминала, като изпълните командата vcgencmd с параметъра mjera_temp.

vcgencmd мярка_темп

Библиотеката Subprocess.check_output () беше използвана за изпълнение на командата и след това с помощта на регулярен израз за извличане на действителната стойност от върнатия низ.

от подпроцес импортиране check_output

от повторно импортиране findalldef get_temp (): temp = check_output (["vcgencmd", "asure_temp "]). decode () temp = float (findall ('\ d+\. / d+', temp) [0]) return (temp) print (get_temp ())

След извличане на температурната стойност, данните трябва да бъдат изпратени в облака ThingSpeak. Използвайте своя API API Key, за да промените променливата myApi в долния код на Python.

от заявка за импортиране на urllib

от повторно импортиране findall от време импортиране на сън от подпроцес внос check_output myAPI = '###############' baseURL = 'https://api.thingspeak.com/update?api_key=% s ' % myAPIdef get_temp (): temp = check_output (["vcgencmd", "asure_temp "]). decode () temp = float (findall (' / d+\. / d+', temp) [0]) return (temp) опитайте: докато 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

импортиране на sys от повторно импортиране findall от време импортиране на сън от подпроцес импорт check_output def get_temp (): temp = check_output (["vcgencmd", "измерване_темп"]). decode () temp = float (findall ('\ d+\. / d+ ', temp) [0]) return (temp) try: GPIO.setwarnings (False) tempOn = 50 prag = 10 controlPin = 14 pinState = False GPIO.setmode (GPIO. BCM) GPIO.setup (controlPin, GPIO. OUT, initial = 0) while True: temp = get_temp () if temp> tempOn и не pinState или temp <tempOn - праг и pinState: pinState = не pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) с изключение на KeyboardInterrupt: print ("Изход натиснат Ctrl+C") с изключение на: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- Данни за изключение на край:") накрая: print ("CleanUp") GPIO.cleanup () print ("Край на програмата")

Стъпка 5: Окончателен код на Python

Основният код на python може да бъде намерен в моя акаунт в GitHub на следната връзка. Не забравяйте да поставите свой собствен API API Key.

  1. Влезте в своята платка за Raspberry PI
  2. Изпълнете следната команда на терминала

python3 cpu.py

Стъпка 6: Мониторинг на данни чрез Thingspeak Cloud

Мониторинг на данни чрез Thingspeak Cloud
Мониторинг на данни чрез Thingspeak Cloud

След известно време отворете канала си в ThingSpeak и трябва да видите как се качва температурата в облака Thingspeak в реално време.

Стъпка 7: Стартирайте Python Script при стартиране

За да направите това, в края на /etc/rc.local файла:

sudo nano /etc/rc.local

Трябва да поставите командата за стартиране на скрипта пред изхода на ред 0:

sudo python /home/pi/cpu.py &

Наличието на символа & в края на командата е задължително, тъй като това е флаг за стартиране на процеса във фонов режим. След рестартирането скриптът ще се стартира автоматично и вентилаторът ще се включи, когато са изпълнени посочените условия.

Препоръчано: