Cuprins:

Control inteligent al ventilatorului Raspberry Pi folosind Python și Thingspeak: 7 pași
Control inteligent al ventilatorului Raspberry Pi folosind Python și Thingspeak: 7 pași

Video: Control inteligent al ventilatorului Raspberry Pi folosind Python și Thingspeak: 7 pași

Video: Control inteligent al ventilatorului Raspberry Pi folosind Python și Thingspeak: 7 pași
Video: 15 Python Projects Ideas on Raspberry Pi in 5 minutes 2024, Iulie
Anonim
Control inteligent al ventilatorului Raspberry Pi folosind Python și Thingspeak
Control inteligent al ventilatorului Raspberry Pi folosind Python și Thingspeak

Prezentare scurta

În mod implicit, ventilatorul este conectat direct la GPIO - aceasta implică funcționarea sa constantă. În ciuda funcționării relative silențioase a ventilatorului, funcționarea sa continuă nu este o utilizare eficientă a unui sistem de răcire activ. În același timp, funcționarea constantă a unui ventilator poate fi doar enervantă. De asemenea, dacă Raspberry Pi este oprit, ventilatorul va funcționa în continuare dacă alimentarea este conectată.

Acest articol va arăta cum, folosind manipulări simple și nu complicate, transformă un sistem de răcire existent într-unul inteligent, care va fi pornit doar atunci când procesorul are într-adevăr nevoie de el. Ventilatorul ar fi pornit numai atunci când există o utilizare intensă, reducând astfel consumul de energie al ventilatorului și zgomotul. De asemenea, extindeți durata de viață a ventilatorului, menținându-l oprit atunci când nu este necesar.

Ce vei învăța

Cum să implementați un script Python pentru a controla un ventilator pe baza temperaturii actuale a procesorului Raspberry folosind controlul On-Off cu histerezis de temperatură. Cum să transportați date de la RaspberryPi la Things Speak Cloud.

Provizii

Componentele care vă vor fi necesare pentru acest proiect sunt următoarele

  • Raspberry Pi 4 Computer Model B 4GB
  • Rezistor N80 tranzistor S8050330ohms
  • Carcasă metalică din aluminiu Armor cu ventilatoare duale pentru Raspberry Pi
  • Cabluri jumper
  • Pană de pâine

Pasul 1: Construirea circuitului

Construirea circuitului
Construirea circuitului
Construirea circuitului
Construirea circuitului

Circuitul este destul de simplu. Alimentarea ventilatorului este întreruptă folosind tranzistorul NPN. În această configurație, tranzistorul acționează ca un comutator în partea de jos. Rezistorul este necesar doar pentru a limita curentul prin GPIO. GPIO-ul Raspberry Pi are o putere de curent maximă de 16 mA. Am folosit 330 ohmi, ceea ce ne oferă un curent de bază de aproximativ (5-0,7) / 330 = 13mA. Am selectat un tranzistor NPN S8050, deci comutarea unei sarcini de 400mA de la ambele ventilatoare nu este o problemă.

Pasul 2: Înregistrați temperatura CPU cu ThingSpeak

Înregistrați temperatura CPU cu ThingSpeak
Înregistrați temperatura CPU cu ThingSpeak

ThingSpeak este o platformă pentru proiecte bazate pe conceptul Internetului obiectelor. Această platformă vă permite să creați aplicații pe baza datelor colectate de la senzori. Principalele caracteristici ale ThingSpeak includ: colectarea datelor în timp real, procesarea datelor și vizualizarea. API-ul ThingSpeak nu numai că vă permite să trimiteți, să stocați și să accesați date, dar oferă și diverse metode statistice pentru prelucrarea acestora.

ThingSpeak poate integra dispozitive și servicii populare, cum ar fi:

  • Arduino
  • Zmeura pii
  • oBridge / RealTime.io
  • Imp electric
  • Aplicații mobile și web
  • Retele sociale
  • Analiza datelor în MATLAB

Înainte de a începe, aveți nevoie de un cont la ThingSpeak.

  1. Accesați următorul link și înscrieți-vă la ThingSpeak.
  2. După activarea contului dvs., conectați-vă.
  3. Accesați Canale -> Canalele mele
  4. Faceți clic pe butonul Canal nou.
  5. Introduceți numele, descrierea și câmpurile datelor pe care doriți să le încărcați
  6. Faceți clic pe butonul Salvare canal pentru a salva toate setările.

Avem nevoie de o cheie API, pe care o vom adăuga ulterior la codul python pentru a încărca temperatura procesorului nostru în norul Thingspeak.

Faceți clic pe fila Chei API pentru a obține Scrie cheia API

Odată ce aveți cheia API de scriere, suntem aproape gata să încărcați datele noastre.

Pasul 3: Obținerea temperaturii procesorului de la un Raspberry Pi folosind Python

Scriptul se bazează pe recuperarea temperaturii procesorului, care are loc în fiecare secundă. Poate fi obținut de la terminal executând comanda vcgencmd cu parametrul measure_temp.

vcgencmd măsură_temp

Biblioteca Subprocess.check_output () a fost utilizată pentru a executa comanda și apoi a folosit expresia regulată pentru a extrage valoarea reală din șirul returnat.

din importul subprocesului check_output

din re import findalldef get_temp (): temp = check_output (["vcgencmd", "measure_temp"]). decode () temp = float (findall ('\ d + \. / d +', temp) [0]) return (temp) print (get_temp ())

După preluarea valorii temperaturii, datele trebuie trimise în cloud ThingSpeak. Utilizați cheia API de scriere pentru a modifica variabila myApi din codul Python de mai jos.

din cererea de import urllib

din re import findall din timp import somn din subproces 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) exceptând KeyboardInterrupt: print („Ieșiți apăsat Ctrl + C”)

Pasul 4: Controlul ventilatorului pe baza temperaturii

Scriptul Python prezentat mai jos implementează logica care pornește ventilatorul atunci când temperatura crește peste tempOn și se oprește numai atunci când temperatura scade sub prag. În acest fel, ventilatorul nu se va porni și opri rapid.

importați RPi. GPIO ca 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 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 and not pinState or temp <tempOn - threshold and pinState: pinState = not pinState GPIO.output (controlPin, pinState) print (str (temp) + "" + str (pinState)) sleep (1) exceptie KeyboardInterrupt: print ("Exit press Ctrl + C") exceptie: print ("Other Exception") print ("--- Start Exception Data:") traceback.print_exc (limit = 2, file = sys.stdout) print ("--- End Exception Data:") în cele din urmă: print ("CleanUp") GPIO.cleanup () print ("End of program")

Pasul 5: Codul final Python

Codul principal Python poate fi găsit pe contul meu GitHub în linkul următor. Nu uitați să puneți propria cheie API Write.

  1. Conectați-vă la placa dvs. Raspberry PI
  2. Rulați următoarea comandă pe terminal

python3 cpu.py

Pasul 6: Monitorizarea datelor prin Thingspeak Cloud

Monitorizarea datelor prin Thingspeak Cloud
Monitorizarea datelor prin Thingspeak Cloud

După un timp, deschide-ți canalul pe ThingSpeak și ar trebui să vezi temperatura încărcată în cloud-ul Thingspeak în timp real.

Pasul 7: Rulați scriptul Python la pornire

Pentru a face acest lucru, la sfârșitul fișierului /etc/rc.local:

sudo nano /etc/rc.local

Trebuie să plasați comanda de pornire a scriptului în fața ieșirii de linie 0:

sudo python /home/pi/cpu.py &

Prezența simbolului & la sfârșitul comenzii este obligatorie, deoarece este un steag pentru a începe procesul în fundal. După repornire, scriptul va rula automat și ventilatorul se va activa atunci când sunt îndeplinite condițiile specificate.

Recomandat: